本文整理汇总了C++中XmlRpcServer::shutdown方法的典型用法代码示例。如果您正苦于以下问题:C++ XmlRpcServer::shutdown方法的具体用法?C++ XmlRpcServer::shutdown怎么用?C++ XmlRpcServer::shutdown使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XmlRpcServer
的用法示例。
在下文中一共展示了XmlRpcServer::shutdown方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: _tmain
int _tmain(int argc, _TCHAR* argv[])
{
DWORD dwXmlRpcThreadID;
PROCESS_INFORMATION pi;
HANDLE hXMLRpcClientThread;
bool ThreadCreated=false;
LogLevel=1;
Log(1,L"ITEScreenWatch V 0.1");
MyGetIpAdress(); // read IP into g_pLocalIP
InitScreenContent();
CreateProcess(L"\\Program Files\\Intermec\\ITE\\intermte.exe", L"", NULL, NULL, FALSE, 0, NULL, NULL, NULL, &pi);
Sleep(10000);
hWndITEWindow = FindWindow(_T("IntermTE"), _T("ITE"));
if (hWndITEWindow==NULL)
{
Log(1,L"FindWindows ITE failes");
}
else
{
hXMLRpcClientThread=CreateThread(NULL, 0, XMLRpcClientThread, (VOID *)0, 0,&dwXmlRpcThreadID);
if (hXMLRpcClientThread == NULL)
{
Log(1,L"CreateThread failed");
}
else
{
Log(1,L"CreateThread OK");
ThreadCreated=true;
}
}
Log(1,L"Waiting for TE exit");
do{
WaitForSingleObject(pi.hProcess,INFINITE);
}while((FindWindow(_T("IntermTE"), _T("ITE")))!=NULL);
Log(1,L"ITE Exit");
if (ThreadCreated)
{
s.exit();
s.shutdown();
}
//Sleep(2000);
TerminateThread(hXMLRpcClientThread,1);
//Log(L"Wait Thread end");
//WaitForSingleObject(hXMLRpcClientThread,INFINITE);
Sleep(1000);
closeMsgQueue(g_hMsgQueue);
Log(1,L"Program Exit");
return 0;
}
示例2: main
int main(int argc, char **argv)
{
ros::init(argc, argv, "mmaster", ros::init_options::AnonymousName);
if (!mmaster.readAddressMaster())
{
cout << "There is no ROS_MASTER environment variable. Exiting ..." << endl;
exit(1);
}
mmaster.getIPAddress();
srand(time(NULL));
mmaster.setPort((rand() % 64512) + 1024); // choose a random a port between 1024 and 65536 // ports below 1024 requires root privileges and
// max port number is 65536
// XmlRpc::setVerbosity(3);
thread_exit = false;
boost::thread xml_rpc_server_thread(xml_rpc_server_listen);
// Set false on first call to test later if I choose a port not used
mmaster.alreadyAddMyAddress(false);
boost::thread update_mmaster_addresses_thread(update_mmaster_addresses);
#ifdef DEBUG
cout << "main: Vou entrar no laço de leitura do teclado" << endl;
#endif
string keyboard_input;
while(true)
{
cin >> keyboard_input;
if (keyboard_input == "exit")
{
cout << "main: Finishing this master" << endl;
break;
}
if (keyboard_input == "print")
{
mmaster.printServerInfo();
}
}
thread_exit = true;
// Shutdown XML RPC Server
s.shutdown();
ros::NodeHandle node_handle;
string mmaster_addresses;
ROS_INFO("Consulting param /mmaster_addresses");
// Get updated list from parameter server
node_handle.getParam("/mmaster_addresses", mmaster_addresses);
// TODO
// send a notification to others masters to notify that i am leaving
mmaster_addresses = mmaster.removeMyAddress(mmaster_addresses);
if (mmaster_addresses != "")
{
// Remove my address from parameter server
node_handle.setParam("/mmaster_addresses", mmaster_addresses);
}
else
// I am the last server, remove the param
node_handle.deleteParam("/mmaster_addresses");
return 0;
}