void MiscDevice::loadPeers() { try { std::shared_ptr<BaseLib::Database::DataTable> rows = raiseGetPeers(); for(BaseLib::Database::DataTable::iterator row = rows->begin(); row != rows->end(); ++row) { int32_t peerID = row->second.at(0)->intValue; GD::out.printMessage("Loading Miscellaneous peer " + std::to_string(peerID)); std::shared_ptr<MiscPeer> peer(new MiscPeer(peerID, row->second.at(3)->textValue, _deviceID, isCentral(), this)); if(!peer->load(this)) continue; if(!peer->getRpcDevice()) continue; _peersMutex.lock(); if(!peer->getSerialNumber().empty()) _peersBySerial[peer->getSerialNumber()] = peer; _peersByID[peerID] = peer; _peersMutex.unlock(); } } catch(const std::exception& ex) { GD::out.printEx(__FILE__, __LINE__, __PRETTY_FUNCTION__, ex.what()); _peersMutex.unlock(); } catch(BaseLib::Exception& ex) { GD::out.printEx(__FILE__, __LINE__, __PRETTY_FUNCTION__, ex.what()); _peersMutex.unlock(); } catch(...) { GD::out.printEx(__FILE__, __LINE__, __PRETTY_FUNCTION__); _peersMutex.unlock(); } }
std::shared_ptr<BaseLib::Database::DataTable> DeviceFamily::onGetPeers(uint64_t deviceID) { return raiseGetPeers(deviceID); }