1 //******************************************************************
3 // Copyright 2014 Samsung Electronics All Rights Reserved.
5 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
7 // Licensed under the Apache License, Version 2.0 (the "License");
8 // you may not use this file except in compliance with the License.
9 // You may obtain a copy of the License at
11 // http://www.apache.org/licenses/LICENSE-2.0
13 // Unless required by applicable law or agreed to in writing, software
14 // distributed under the License is distributed on an "AS IS" BASIS,
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 // See the License for the specific language governing permissions and
17 // limitations under the License.
19 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
21 #include "OCPlatform.h"
31 namespace PH = std::placeholders;
33 OCResourceHandle resourceHandle;
34 std::vector< OCResourceHandle > resourceHandleVector;
36 void foundResource(std::shared_ptr< OCResource > resource)
39 std::string resourceURI;
40 std::string hostAddress;
44 cout << "FOUND RESOURCE" << endl;
48 resourceURI = resource->uri();
49 hostAddress = resource->host();
51 cout << "\tResource URI : " << resourceURI << endl;
52 cout << "\tResource Host : " << hostAddress << endl;
53 cout << "\tResource Interfaces : " << resource->getResourceInterfaces().front() << endl;
54 cout << "\tResource Type : " << resource->getResourceTypes().front() << endl;
55 if (resourceURI == "/a/light" || resourceURI == "/a/fan")
57 OCResourceHandle foundResourceHandle;
58 OCStackResult result = OCPlatform::registerResource(foundResourceHandle, resource);
59 cout << "\tresource registed!" << endl;
60 if (result == OC_STACK_OK)
62 OCPlatform::bindResource(resourceHandle, foundResourceHandle);
63 resourceHandleVector.push_back(foundResourceHandle);
67 cout << "\tresource Error!" << endl;
71 // p_platform.bindResource(resourceHandle, foundResourceHandle);
75 catch (std::exception& e)
77 std::cout << "" << std::endl;
85 { OC::ServiceType::InProc, ModeType::Both, "0.0.0.0", 0, OC::QualityOfService::LowQos };
89 string resourceURI = "/core/a/collection";
90 string resourceTypeName = "a.collection";
91 string resourceInterface = BATCH_INTERFACE;
92 OCPlatform::Configure(config);
94 // EntityHandler cb = std::bind(, PH::_1, PH::_2);
96 OCPlatform::registerResource(resourceHandle, resourceURI, resourceTypeName,
99 //&entityHandler, // entityHandler
102 cout << "registerResource is called." << endl;
104 OCPlatform::findResource("", "coap://224.0.1.187/oc/core?rt=core.light", &foundResource);
105 OCPlatform::bindInterfaceToResource(resourceHandle, GROUP_INTERFACE);
106 OCPlatform::bindInterfaceToResource(resourceHandle, DEFAULT_INTERFACE);
111 std::cin >> selectedMenu;
113 if (selectedMenu == 1)
115 for (unsigned int i = 0; i < resourceHandleVector.size(); ++i)
117 OCPlatform::unregisterResource(resourceHandleVector.at(i));
123 catch (OCException& e)