void bridgeDiscoveryHandler(SsdpSearchPtr aSsdpSearch, ErrorPtr aError) { if (Error::isOK(aError)) { // check device for possibility of being a hue bridge if (aSsdpSearch->server.find("IpBridge")!=string::npos) { LOG(LOG_INFO, "hue bridge candidate device found at %s, server=%s, uuid=%s", aSsdpSearch->locationURL.c_str(), aSsdpSearch->server.c_str(), aSsdpSearch->uuid.c_str()); // put into map bridgeCandiates[aSsdpSearch->uuid.c_str()] = aSsdpSearch->locationURL.c_str(); } } else { FOCUSLOG("discovery ended, error = %s (usually: timeout)", aError->description().c_str()); aSsdpSearch->stopSearch(); // now process the results currentBridgeCandidate = bridgeCandiates.begin(); processCurrentBridgeCandidate(); } }
void bridgeRefindHandler(SsdpSearchPtr aSsdpSearch, ErrorPtr aError) { if (!Error::isOK(aError)) { // could not find bridge, return error callback(ErrorPtr(new HueCommError(HueCommErrorUuidNotFound))); keepAlive.reset(); // will delete object if nobody else keeps it return; // done } else { // found, now get description to get baseURL // - put it into queue as the only candidate bridgeCandiates.clear(); bridgeCandiates[aSsdpSearch->uuid.c_str()] = aSsdpSearch->locationURL.c_str(); // process the candidate currentBridgeCandidate = bridgeCandiates.begin(); processCurrentBridgeCandidate(); } }
void fillAndPrint(StringStringMap& coll) { //fill insert elements in random order coll["Deutschland"] = "Germany"; coll["deutsch"] = "German"; coll["Haken"] = "snag"; coll["arbeiten"] = "work"; coll["Hund"] = "dog"; coll["gehen"] = "go"; coll["Unternehmen"] = "enterprise"; coll["unternehmen"] = "undertake"; coll["gehen"] = "walk"; coll["Bestatter"] = "undertaker"; //print elements StringStringMap::iterator pos; cout.setf(ios::left, ios::adjustfield); for (pos=coll.begin(); pos!=coll.end(); ++pos) { cout << setw(15) << pos->first.c_str() << " " << pos->second << endl; } cout << endl; }
void herschel::xml::displayStringStringMap(Port<Octet>& port, zstring outerTagName, zstring tagName, zstring firstPairTagName, zstring secPairTagName, const StringStringMap& strMap) { if (!strMap.empty()) displayOpenTag(port, outerTagName); for (StringStringMap::const_iterator it = strMap.begin(); it != strMap.end(); it++) { displayOpenTag(port, tagName); displayTag(port, firstPairTagName, it->first); displayTag(port, secPairTagName, it->second); displayCloseTag(port, tagName); } if (!strMap.empty()) displayCloseTag(port, outerTagName); }
void attemptPairingWithCandidates() { currentAuthCandidate = authCandidates.begin(); processCurrentAuthCandidate(); }