本文整理汇总了C++中BBWinNet::ClientData方法的典型用法代码示例。如果您正苦于以下问题:C++ BBWinNet::ClientData方法的具体用法?C++ BBWinNet::ClientData怎么用?C++ BBWinNet::ClientData使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BBWinNet
的用法示例。
在下文中一共展示了BBWinNet::ClientData方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: run
void BBWinCentralHandler::run() {
DWORD dwWait;
std::list<BBWinHandler *>::iterator itr;
clientLocalCfgPath = m_data.setting["tmppath"] + (string)"\\clientlocal.cfg";
for (;;) {
std::ofstream report(reportPath.c_str(), std::ios_base::trunc | ios_base::binary);
bool created = false;
if (report) {
report << "client " << m_data.setting["hostname"] << ".bbwin " << m_data.setting["configclass"] << "\n";
report.close();
created = true;
GetClock();
string osversion;
uname(osversion);
bbwinClientData_callback("osversion", osversion);
} else {
string mess, err;
mess = (string)"failed to create the report file " + reportPath;
GetLastErrorString(err);
LPCTSTR args[] = {mess.c_str(), err.c_str(), NULL};
m_log->reportErrorEvent(BBWIN_SERVICE, EVENT_HOBBIT_FAILED_CLIENTDATA, 2, args);
}
for (itr = m_agents.begin(); itr != m_agents.end(); ++itr) {
(*itr)->Run();
dwWait = WaitForMultipleObjects(m_hCount, m_hEvents , FALSE, 0);
if (( dwWait >= WAIT_OBJECT_0 && dwWait <= (WAIT_OBJECT_0 + m_hCount - 1) ) || (dwWait >= WAIT_ABANDONED_0 && dwWait <= (WAIT_ABANDONED_0 + m_hCount - 1) )) {
DeleteFile(reportPath.c_str());
return ;
}
}
if (created) {
bbdisplay_t::iterator itr;
string result;
for (itr = m_bbdisplay.begin(); itr != m_bbdisplay.end(); ++itr) {
BBWinNet hobNet;
hobNet.SetBBDisplay((*itr));
try {
hobNet.ClientData(reportPath, clientLocalCfgPath);
} catch (BBWinNetException ex) {
string mess, err;
GetLastErrorString(err);
mess = ex.getMessage();
LPCTSTR args[] = {mess.c_str(), err.c_str(), NULL};
m_log->reportErrorEvent(BBWIN_SERVICE, EVENT_HOBBIT_FAILED_CLIENTDATA, 2, args);
}
}
DeleteFile(reportSavePath.c_str());
MoveFile(reportPath.c_str(), reportSavePath.c_str());
DeleteFile(reportPath.c_str());
}
dwWait = WaitForMultipleObjects(m_hCount, m_hEvents , FALSE, m_timer * 1000 );
if ( dwWait >= WAIT_OBJECT_0 && dwWait <= (WAIT_OBJECT_0 + m_hCount - 1) ) {
break ;
} else if (dwWait >= WAIT_ABANDONED_0 && dwWait <= (WAIT_ABANDONED_0 + m_hCount - 1) ) {
break ;
}
}
}