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 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
24 #include "OCPlatform.h"
26 #include "ThingsManager.h"
30 OCEntityHandlerResult speakerEntityHandler(const std::shared_ptr< OCResourceRequest > request)
32 cout << "speakerEntityHandler:\n";
36 // Get the request type and request flag
37 std::string requestType = request->getRequestType();
38 int requestFlag = request->getRequestHandlerFlag();
41 if (requestFlag == RequestHandlerFlag::InitFlag)
43 cout << "\trequestFlag : Init\n";
45 // entity handler to perform resource initialization operations
47 else if (requestFlag == RequestHandlerFlag::RequestFlag)
49 cout << "\trequestFlag : Request\n";
51 OCRepresentation rp = request->getResourceRepresentation();
53 // If the request type is GET
54 if (requestType == "GET")
56 cout << "\t\trequestType : GET\n";
58 else if (requestType == "PUT")
60 cout << "\t\trequestType : PUT\n";
62 action = rp.getValue< std::string >("volume");
63 cout << "\t\t\tvolume : " << action << endl;
65 else if (requestType == "POST")
67 cout << "\t\trequestType : POST\n";
69 else if (requestType == "DELETE")
71 cout << "\t\trequestType : DELETE\n";
74 else if (requestFlag == RequestHandlerFlag::ObserverFlag)
76 cout << "\trequestFlag : Observer\n";
81 cout << "Request invalid" << endl;
87 int main(int argc, char* argv[])
90 // Create PlatformConfig object
92 { OC::ServiceType::InProc, OC::ModeType::Both, "0.0.0.0", 0, OC::QualityOfService::LowQos };
94 OCPlatform::Configure(cfg);
98 OCResourceHandle speakerResourceHandle = NULL;
105 cout << "(1) CREATE SPEAKER | (2) DELETE SPEAKER" << endl;
107 std::cin >> selectedMenu;
109 if (selectedMenu == 1)
111 if (speakerResourceHandle)
113 cout << "Speaker resource is registered already." << endl;
117 std::string resourceURi = "/core/speaker";
118 std::string resourceTypeName = "core.speaker";
120 std::string resourceInterface = DEFAULT_INTERFACE;
122 result = OCPlatform::registerResource(speakerResourceHandle, resourceURi,
123 resourceTypeName, resourceInterface, speakerEntityHandler,
124 OC_DISCOVERABLE | OC_OBSERVABLE);
125 if (OC_STACK_OK == result)
127 cout << "To register speaker resource was successful\n";
131 cout << "To register speaker resource was unsuccessful\n";
134 else if (selectedMenu == 2)
136 if (NULL == speakerResourceHandle)
139 << "Error! No resource to unregister. Register resource first!"
144 result = OCPlatform::unregisterResource(speakerResourceHandle);
145 if (OC_STACK_OK == result)
147 cout << "To unregister speaker resource was successful\n";
151 cout << "To unregister speaker resource was unsuccessful\n";
154 speakerResourceHandle = NULL;
158 catch (OCException& e)