OCStackResult ThingsMaintenance::factoryReset(std::shared_ptr< OCResource > resource, MaintenanceCallback callback) { if (!resource) { std::cout << "resource is NULL\n"; return OC_STACK_ERROR; } std::string mnt = "fr"; // Check the request queue if a previous request is still left. If so, remove it. std::map< std::string, MaintenanceRequestEntry >::iterator iter = maintenanceRequestTable.find(mnt); if (iter != maintenanceRequestTable.end()) maintenanceRequestTable.erase(iter); // Create new request entry stored in the queue MaintenanceRequestEntry newCallback(mnt, callback, resource, "true"); maintenanceRequestTable.insert(std::make_pair(mnt, newCallback)); QueryParamsMap query; OCRepresentation rep; if (isSimpleResource(resource)) { // This resource is a simple resource. Just send a PUT message OCRepresentation rep; rep.setValue < std::string > ("value", "true"); return resource->put(resource->getResourceTypes().at(0), DEFAULT_INTERFACE, rep, query, std::function< void(const HeaderOptions& headerOptions, const OCRepresentation& rep, const int eCode) >( std::bind(&ThingsMaintenance::onPut, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, mnt))); } else { // This resource is a collection resource. It just acquires child resource's URI and // send GET massages to the child resources in turn. // First, request the child resources's URI. // TODO: Add a deletion of actionset return resource->get(resource->getResourceTypes().at(0), DEFAULT_INTERFACE, query, std::function< void(const HeaderOptions& headerOptions, const OCRepresentation& rep, const int eCode) >( std::bind(&ThingsMaintenance::onGetChildInfoForUpdate, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, mnt))); } }
TopWinList() : ownedTopWins(OwnedTopWins::create()) { ownedTopWins->registerNewOwnedTopWinNotifyCallback(newCallback(this, &TopWinList::notifyAboutNewOwnedTopWin)); }