void CClientDlg::OnTimer(UINT nIDEvent) { // think if our timer was called if(nIDEvent == m_timerID) ServerBrowserThink(m_serverBrowser); CSubDlg::OnTimer(nIDEvent); }
void CSbmfcsampleDlg::OnTimer(UINT nIDEvent) { // think if our timer was called if(nIDEvent == m_timerID) { ServerBrowserThink(m_serverBrowser); } CDialog::OnTimer(nIDEvent); }
static SBError WaitForTriggerUpdate(ServerBrowser sb, SBBool viaMaster) { SBError err = sbe_noerror; //wait until info is received for the triggerIP while (sb->triggerIP != 0 && err == sbe_noerror) { msleep(10); err = ServerBrowserThink(sb); if (viaMaster && sb->list.state == sb_disconnected) //we were supposed to get from master, and it's disconnected break; } return err; }
SBError ServerBrowserLANUpdate(ServerBrowser sb, SBBool async, unsigned short startSearchPort, unsigned short endSearchPort) { SBError err = sbe_noerror; ServerBrowserHalt(sb); SBServerListGetLANList(&sb->list, startSearchPort, endSearchPort, sb->engine.queryversion); if (!async) { while ((sb->list.state == sl_lanbrowse) || ((sb->engine.querylist.count > 0) && (err == sbe_noerror))) { msleep(10); err = ServerBrowserThink(sb); } } return err; }
//internal version that allows passing of additional options SBError ServerBrowserBeginUpdate2(ServerBrowser sb, SBBool async, SBBool disconnectOnComplete, const unsigned char *basicFields, int numBasicFields, const char *serverFilter, int updateOptions, int maxServers) { char keyList[MAX_FIELD_LIST_LEN] = ""; int listLen = 0; int i; int keylen; SBError err; sb->disconnectFlag = disconnectOnComplete; //clear this out in case it was already set sb->engine.numserverkeys = 0; //build the key list... for (i = 0 ; i < numBasicFields ; i++) { keylen = (int)strlen(qr2_registered_key_list[basicFields[i]]); if (listLen + keylen + 1 >= MAX_FIELD_LIST_LEN) break; //can't add this field, too long listLen += sprintf(keyList + listLen, "\\%s", qr2_registered_key_list[basicFields[i]]); //add to the engine query list SBQueryEngineAddQueryKey(&sb->engine, basicFields[i]); } #if defined(SN_SYSTEMS) && defined(SB_ICMP_SUPPORT) { // reset SNSystems internal ICMP ping structures sndev_set_ping_reset_type optval; optval.timeout_ms = MAX_QUERY_MSEC; // this gets rounded up to 3 sec optval.reserved = 0; sndev_set_options(0, SN_DEV_SET_PING_RESET, &optval, sizeof(optval)); } #endif err = SBServerListConnectAndQuery(&sb->list, keyList, serverFilter, updateOptions, maxServers); if (err != sbe_noerror) return err; if (!async) //loop while we are still getting the main list and the engine is updating... { while ((sb->list.state == sl_mainlist) || ((sb->engine.querylist.count > 0) && (err == sbe_noerror))) { msleep(10); err = ServerBrowserThink(sb); } } return err; }