Example #1
0
    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)));
        }
    }
Example #2
0
 TopWinList() 
     : ownedTopWins(OwnedTopWins::create())
 {
     ownedTopWins->registerNewOwnedTopWinNotifyCallback(newCallback(this, &TopWinList::notifyAboutNewOwnedTopWin));
 }