OCEntityHandlerResult entityHandler(std::shared_ptr< OCResourceRequest > request , std::shared_ptr< OCResourceResponse > response) { cout << "Sample Provider entityHandler\n"; if (request) { cout << "flag : request\n"; std::string requestType = request->getRequestType(); int requestFlag = request->getRequestHandlerFlag(); if (requestFlag == RequestHandlerFlag::InitFlag) { cout << "\t\trequestFlag : Init\n"; } if (requestFlag == RequestHandlerFlag::RequestFlag) { cout << "\t\trequestFlag : Request\n"; if (requestType == "GET") { cout << "\t\trequestType : GET\n"; try { if (response) { OCRepresentation rep = myResource.get(); cout << rep.getJSONRepresentation() << endl; response->setErrorCode(200); response->setResourceRepresentation(rep, DEFAULT_INTERFACE); } else { cout << "response is null\n"; } } catch (exception &e) { cout << e.what() << endl; } } else if (requestType == "PUT") { cout << "\t\t\trequestType : PUT\n"; OCRepresentation rep = request->getResourceRepresentation(); myResource.put(rep); if (response) { response->setErrorCode(200); response->setResourceRepresentation(myResource.get()); } } else if (requestType == "POST") { } else if (requestType == "DELETE") { } } else if (requestFlag & RequestHandlerFlag::ObserverFlag) { pthread_t threadId; cout << request->getResourceUri() << endl; cout << request->getResourceRepresentation().getUri() << endl; cout << "========================================================" << endl; cout << "Receive ObserverFlag : Start Observe\n"; cout << "========================================================" << endl; g_Observation = 1; cout << "\t\trequestFlag : Observer\n"; static int startedThread = 0; if (!startedThread) { cout << "\t\tpthrerad_create\n"; pthread_create(&threadId , NULL , ChangeLightRepresentation , (void *) NULL); startedThread = 1; } } } else { std::cout << "Request invalid" << std::endl; } return OC_EH_OK; }