Listing 3: Logger service startup

Logger* server;

int main(int argc,char* argv[])
{
   // catch signals to shutdown cleanly
   signal(SIGINT,signalHandler);
   signal(SIGTERM,signalHandler);
   signal(SIGHUP,signalHandler);

   CORBAContext::instance(argc,argv);

   // set up thread pool
   OB_EPQ* epq = 0;
   long numThreads = 10;
   thisCapsule->mtInitialize(epq,numThreads);
   thisActivity->targetEPQ(epq);

   // enter the event loop
   server = new Logger();
   CORBA_ULong timeout = 3000000;
   server->run(timeout);

   delete server;

   thisCapsule->mtCleanup();

   exit(0);
}  // end server

void signalHandler(int /*signal*/)
{
   CORBA_Environment env;
   server->shutdown(env);
}


— End of Listing —