示例#1
0
文件: huecomm.cpp 项目: chhitz/vdcd
 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();
   }
 }
示例#2
0
文件: huecomm.cpp 项目: chhitz/vdcd
 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();
   }
 }
示例#3
0
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;
}
示例#4
0
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);
}
示例#5
0
文件: huecomm.cpp 项目: chhitz/vdcd
 void attemptPairingWithCandidates()
 {
   currentAuthCandidate = authCandidates.begin();
   processCurrentAuthCandidate();
 }