本文整理汇总了C++中ACE_Service_Config::close方法的典型用法代码示例。如果您正苦于以下问题:C++ ACE_Service_Config::close方法的具体用法?C++ ACE_Service_Config::close怎么用?C++ ACE_Service_Config::close使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ACE_Service_Config
的用法示例。
在下文中一共展示了ACE_Service_Config::close方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
int
ACE_TMAIN(int, ACE_TCHAR ** argv)
{
int result = 0;
#if !defined (ACE_LACKS_FORK)
ACE_Sig_Action sigUSR2((ACE_SignalHandler) shutdown_func, SIGUSR2);
ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) SIGUSR2 shutdown handler installed\n")));
ACE_UNUSED_ARG(sigUSR2);
pid_t pid = -1;
pid = ACE_OS::fork();
ACE_Log_Msg::instance ()->sync (argv[0]); // Make %P|%t work right
if (pid == 0) // child
{
ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) child waiting\n")));
ACE_OS::sleep(5);
ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) signaling parent\n")));
result = ACE_OS::kill(ACE_OS::getppid(), SIGUSR2);
ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) signaled parent\n")));
// ACE_OS::sleep (100000);
return 0;
}
else if (pid > 0) // parent
{
ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) parent using ACE_Service_Config, pid=%d\n"), pid));
ACE_Service_Config serviceConfig;
ACE_TCHAR signum[64];
ACE_OS::sprintf(signum, ACE_TEXT("%d"), SIGUSR1);
ACE_ARGV args;
args.add(argv[0]);
args.add(ACE_TEXT("-s"));
args.add(signum);
result = serviceConfig.open (
args.argc(),
args.argv(),
ACE_DEFAULT_LOGGER_KEY,
1, // ignore_static_svcs = 1,
1, // ignore_default_svc_conf_file = 0,
0 // ignore_debug_flag = 0
);
if(0 != result)
{
ACE_ERROR ((LM_ERROR, ACE_TEXT ("(%P|%t) Error: serviceConfig.open failed\n")));
return result;
}
ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) serviceConfig.open done\n")));
ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) serviceConfig.process_file ...\n")));
#if (ACE_USES_CLASSIC_SVC_CONF == 1)
result = serviceConfig.process_file(ACE_TEXT("Bug_3251.conf"));
#else
result = serviceConfig.process_file(ACE_TEXT("Bug_3251.conf.xml"));
#endif
if(0 != result)
{
ACE_ERROR ((LM_ERROR, ACE_TEXT ("(%P|%t) Error: serviceConfig.process_file failed\n")));
return result;
}
ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) serviceConfig.process_file done\n")));
ACE_DEBUG ((LM_INFO, ACE_TEXT ("run_event_loop ...\n")));
while(!bShutdown)
{
ACE_OS::last_error(0);
result = ACE_Reactor::run_event_loop();
// reenter loop on EINTR
if(0 != result && EINTR == ACE_OS::last_error())
{
if(bShutdown)
break;
}
else if(0 != result)
{
ACE_DEBUG ((
LM_INFO,
ACE_TEXT ("(%P|%t) run_event_loop failed (%s, %d)\n"),
ACE_OS::strerror(ACE_OS::last_error()),
ACE_OS::last_error()
));
}
}
ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) run_event_loop done\n")));
ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) serviceConfig.fini_svcs ...\n")));
result = serviceConfig.fini_svcs();
if(0 != result)
{
ACE_ERROR ((LM_ERROR, ACE_TEXT ("(%P|%t) Error: serviceConfig.fini_svcs failed\n")));
return result;
}
ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) serviceConfig.fini_svcs done\n")));
ACE_DEBUG ((LM_INFO, ACE_TEXT ("(%P|%t) serviceConfig.close ...\n")));
result = serviceConfig.close();
if(0 != result)
//.........这里部分代码省略.........