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 mpEntityHandler(const std::shared_ptr< OCResourceRequest > request)
32 cout << "mpEntityHandler:\n";
36 // Get the request type and request flag
37 std::string requestType = request->getRequestType();
38 int requestFlag = request->getRequestHandlerFlag();
41 if (requestFlag == RequestHandlerFlag::RequestFlag)
43 cout << "\trequestFlag : Request\n";
45 OCRepresentation rp = request->getResourceRepresentation();
47 // If the request type is GET
48 if (requestType == "GET")
50 cout << "\t\trequestType : GET\n";
52 else if (requestType == "PUT")
54 cout << "\t\trequestType : PUT\n";
56 action = rp.getValue< std::string >("play");
57 cout << "\t\t\tplay : " << action << endl;
59 else if (requestType == "POST")
61 cout << "\t\trequestType : POST\n";
63 else if (requestType == "DELETE")
65 cout << "\t\trequestType : DELETE\n";
68 else if (requestFlag == RequestHandlerFlag::ObserverFlag)
70 cout << "\trequestFlag : Observer\n";
75 cout << "Request invalid" << endl;
81 int main(int argc, char* argv[])
83 // Create PlatformConfig object
85 { OC::ServiceType::InProc, OC::ModeType::Both, "0.0.0.0", 0, OC::QualityOfService::LowQos };
87 OCPlatform::Configure(cfg);
91 OCResourceHandle mpResourceHandle = NULL;
98 cout << "(1) CREATE MUSIC PLAYER | (2) DELETE MUSIC PLAYER" << endl;
100 std::cin >> selectedMenu;
102 if (selectedMenu == 1)
104 if (mpResourceHandle)
106 cout << "Music player resource is registered already." << endl;
110 std::string resourceURi = "/core/musicplayer";
111 std::string resourceTypeName = "core.musicplayer";
112 std::string resourceInterface = DEFAULT_INTERFACE;
114 result = OCPlatform::registerResource(mpResourceHandle, resourceURi,
115 resourceTypeName, resourceInterface, mpEntityHandler,
116 OC_DISCOVERABLE | OC_OBSERVABLE);
117 if (OC_STACK_OK == result)
119 cout << "To register music player resource was successful\n";
123 cout << "To register music player resource was unsuccessful\n";
126 else if (selectedMenu == 2)
128 if (NULL == mpResourceHandle)
131 << "Error! No resource to unregister. Register resource first!"
136 result = OCPlatform::unregisterResource(mpResourceHandle);
137 if (OC_STACK_OK == result)
139 cout << "To unregister music player resource was successful\n";
143 cout << "To unregister music player resource was unsuccessful\n";
146 mpResourceHandle = NULL;
150 catch (OCException& e)
152 std::cout << "Exception: " << e.what() << std::endl;