X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=resource%2Fcsdk%2Fstack%2Fsamples%2Flinux%2FSimpleClientServer%2Focservercoll.cpp;h=aff73b68acdc754d0491ebed712b6dd484b3957a;hb=935fdb9b67b6c10d007e652e9e2e028fd6ccfe09;hp=75124bb1e45067b546d50a4c0ea268fab0207c0c;hpb=00b3660e45c56cb3db35dc2596a054f801b5591a;p=platform%2Fupstream%2Fiotivity.git diff --git a/resource/csdk/stack/samples/linux/SimpleClientServer/ocservercoll.cpp b/resource/csdk/stack/samples/linux/SimpleClientServer/ocservercoll.cpp index 75124bb..aff73b6 100644 --- a/resource/csdk/stack/samples/linux/SimpleClientServer/ocservercoll.cpp +++ b/resource/csdk/stack/samples/linux/SimpleClientServer/ocservercoll.cpp @@ -53,10 +53,12 @@ const char rspPutRoomCollection[] = "{\"href\":\"/a/room\"}"; const char rspFailureRoom[] = "{\"href\":\"/a/room\",\"rep\":{\"error\":\"ROOM_OP_FAIL\"}}"; // TODO : hard coded for now, change after Sprint4 -const char rspGetLightDefault[] = "{\"href\":\"/a/light\",\"rep\":{\"state\":\"false\",\"color\":\"0\"}}"; +const char rspGetLightDefault[] = + "{\"href\":\"/a/light\",\"rep\":{\"state\":\"false\",\"color\":\"0\"}}"; const char rspGetLightCollection[] = "{\"href\":\"/a/light\"}"; // TODO : Needs to be changed to retrieve current status of light and return that in response -const char rspPutLightDefault[] = "{\"href\":\"/a/light\",\"rep\":{\"state\":\"true\",\"color\":\"0\"}}"; +const char rspPutLightDefault[] = + "{\"href\":\"/a/light\",\"rep\":{\"state\":\"true\",\"color\":\"0\"}}"; const char rspPutLightCollection[] = "{\"href\":\"/a/light\"}"; const char rspFailureLight[] = "{\"href\":\"/a/light\",\"rep\":{\"error\":\"LIGHT_OP_FAIL\"}}"; @@ -69,7 +71,8 @@ const char rspPutFanDefault[] = "{\"href\":\"/a/fan\",\"rep\":{\"state\":\"false const char rspPutFanCollection[] = "{\"href\":\"/a/fan\"}"; const char rspFailureFan[] = "{\"href\":\"/a/fan\",\"rep\":{\"error\":\"FAN_OP_FAIL\"}}"; -typedef enum { +typedef enum +{ TEST_INVALID = 0, TEST_DEFAULT_COLL_EH, TEST_APP_COLL_EH, @@ -79,8 +82,10 @@ typedef enum { void PrintUsage() { OC_LOG(INFO, TAG, "Usage : ocservercoll -t "); - OC_LOG(INFO, TAG, "Test Case 1 : Create room resource with default collection entity handler."); - OC_LOG(INFO, TAG, "Test Case 2 : Create room resource with application collection entity handler."); + OC_LOG(INFO, TAG, + "Test Case 1 : Create room resource with default collection entity handler."); + OC_LOG(INFO, TAG, + "Test Case 2 : Create room resource with application collection entity handler."); } unsigned static int TEST = TEST_INVALID; @@ -118,10 +123,8 @@ PrintReceivedMsgInfo(OCEntityHandlerFlag flag, OCEntityHandlerRequest * ehReques { const char* typeOfMessage; - switch (flag) { - case OC_INIT_FLAG: - typeOfMessage = "OC_INIT_FLAG"; - break; + switch (flag) + { case OC_REQUEST_FLAG: typeOfMessage = "OC_REQUEST_FLAG"; break; @@ -133,8 +136,8 @@ PrintReceivedMsgInfo(OCEntityHandlerFlag flag, OCEntityHandlerRequest * ehReques } OC_LOG_V(INFO, TAG, "Receiving message type: %s, method %s", - typeOfMessage, - (ehRequest->method == OC_REST_GET) ? "OC_REST_GET" : "OC_REST_PUT" ); + typeOfMessage, + (ehRequest->method == OC_REST_GET) ? "OC_REST_GET" : "OC_REST_PUT" ); } OCEntityHandlerResult OCEntityHandlerRoomCb(OCEntityHandlerFlag flag, @@ -153,46 +156,55 @@ OCEntityHandlerResult OCEntityHandlerRoomCb(OCEntityHandlerFlag flag, if(OC_REST_GET == ehRequest->method) { - if(query.find("oc.mi.def") != std::string::npos) + if(query.find(OC_RSRVD_INTERFACE_DEFAULT) != std::string::npos) { - ret = HandleCallback(ehRequest, rspGetRoomDefault, rspFailureRoom, payload, sizeof(payload)); + ret = HandleCallback(ehRequest, + rspGetRoomDefault, rspFailureRoom, payload, sizeof(payload)); if(ret != OC_EH_ERROR) { ret = HandleCallback(ehRequest, ",", ",", payload, sizeof(payload)); - ret = HandleCallback(ehRequest, rspGetLightCollection, rspFailureLight, payload, sizeof(payload)); + ret = HandleCallback(ehRequest, + rspGetLightCollection, rspFailureLight, payload, sizeof(payload)); } if(ret != OC_EH_ERROR) { ret = HandleCallback(ehRequest, ",", ",", payload, sizeof(payload)); - ret = HandleCallback(ehRequest, rspGetFanCollection, rspFailureFan, payload, sizeof(payload)); + ret = HandleCallback(ehRequest, + rspGetFanCollection, rspFailureFan, payload, sizeof(payload)); } } - else if(query.find("oc.mi.ll") != std::string::npos) + else if(query.find(OC_RSRVD_INTERFACE_LL) != std::string::npos) { - ret = HandleCallback(ehRequest, rspGetRoomCollection, rspFailureRoom, payload, sizeof(payload)); + ret = HandleCallback(ehRequest, + rspGetRoomCollection, rspFailureRoom, payload, sizeof(payload)); if(ret != OC_EH_ERROR) { ret = HandleCallback(ehRequest, ",", ",", payload, sizeof(payload)); - ret = HandleCallback(ehRequest, rspGetLightCollection, rspFailureLight, payload, sizeof(payload)); + ret = HandleCallback(ehRequest, + rspGetLightCollection, rspFailureLight, payload, sizeof(payload)); } if(ret != OC_EH_ERROR) { ret = HandleCallback(ehRequest, ",", ",", payload, sizeof(payload)); - ret = HandleCallback(ehRequest, rspGetFanCollection, rspFailureFan, payload, sizeof(payload)); + ret = HandleCallback(ehRequest, + rspGetFanCollection, rspFailureFan, payload, sizeof(payload)); } } - else if(query.find("oc.mi.b") != std::string::npos) + else if(query.find(OC_RSRVD_INTERFACE_BATCH) != std::string::npos) { - ret = HandleCallback(ehRequest, rspGetRoomCollection, rspFailureRoom, payload, sizeof(payload)); + ret = HandleCallback(ehRequest, + rspGetRoomCollection, rspFailureRoom, payload, sizeof(payload)); if(ret != OC_EH_ERROR) { ret = HandleCallback(ehRequest, ",", ",", payload, sizeof(payload)); - ret = HandleCallback(ehRequest, rspGetLightDefault, rspFailureLight, payload, sizeof(payload)); + ret = HandleCallback(ehRequest, + rspGetLightDefault, rspFailureLight, payload, sizeof(payload)); } if(ret != OC_EH_ERROR) { ret = HandleCallback(ehRequest, ",", ",", payload, sizeof(payload)); - ret = HandleCallback(ehRequest, rspGetFanDefault, rspFailureFan, payload, sizeof(payload)); + ret = HandleCallback(ehRequest, + rspGetFanDefault, rspFailureFan, payload, sizeof(payload)); } } if (ret == OC_EH_OK) @@ -201,10 +213,11 @@ OCEntityHandlerResult OCEntityHandlerRoomCb(OCEntityHandlerFlag flag, response.requestHandle = ehRequest->requestHandle; response.resourceHandle = ehRequest->resource; response.ehResult = ret; - response.payload = (unsigned char *)payload; + response.payload = payload; response.payloadSize = strlen(payload); response.numSendVendorSpecificHeaderOptions = 0; - memset(response.sendVendorSpecificHeaderOptions, 0, sizeof response.sendVendorSpecificHeaderOptions); + memset(response.sendVendorSpecificHeaderOptions, + 0, sizeof response.sendVendorSpecificHeaderOptions); memset(response.resourceUri, 0, sizeof response.resourceUri); // Indicate that response is NOT in a persistent buffer response.persistentBufferFlag = 0; @@ -218,45 +231,52 @@ OCEntityHandlerResult OCEntityHandlerRoomCb(OCEntityHandlerFlag flag, } else if(OC_REST_PUT == ehRequest->method) { - if(query.find("oc.mi.def") != std::string::npos) + if(query.find(OC_RSRVD_INTERFACE_DEFAULT) != std::string::npos) { if(ret != OC_EH_ERROR) { - ret = HandleCallback(ehRequest, rspPutRoomDefault, rspFailureRoom, payload, sizeof(payload)); + ret = HandleCallback(ehRequest, + rspPutRoomDefault, rspFailureRoom, payload, sizeof(payload)); } } - if(query.find("oc.mi.ll") != std::string::npos) + if(query.find(OC_RSRVD_INTERFACE_LL) != std::string::npos) { if(ret != OC_EH_ERROR) { - ret = HandleCallback(ehRequest, rspPutRoomCollection, rspFailureRoom, payload, sizeof(payload)); + ret = HandleCallback(ehRequest, + rspPutRoomCollection, rspFailureRoom, payload, sizeof(payload)); } if(ret != OC_EH_ERROR) { ret = HandleCallback(ehRequest, ",", ",", payload, sizeof(payload)); - ret = HandleCallback(ehRequest, rspPutLightCollection, rspFailureLight, payload, sizeof(payload)); + ret = HandleCallback(ehRequest, + rspPutLightCollection, rspFailureLight, payload, sizeof(payload)); } if(ret != OC_EH_ERROR) { ret = HandleCallback(ehRequest, ",", ",", payload, sizeof(payload)); - ret = HandleCallback(ehRequest, rspPutFanCollection, rspFailureFan, payload, sizeof(payload)); + ret = HandleCallback(ehRequest, + rspPutFanCollection, rspFailureFan, payload, sizeof(payload)); } } - if(query.find("oc.mi.b") != std::string::npos) + if(query.find(OC_RSRVD_INTERFACE_BATCH ) != std::string::npos) { if(ret != OC_EH_ERROR) { - ret = HandleCallback(ehRequest, rspPutRoomCollection, rspFailureRoom, payload, sizeof(payload)); + ret = HandleCallback(ehRequest, + rspPutRoomCollection, rspFailureRoom, payload, sizeof(payload)); } if(ret != OC_EH_ERROR) { ret = HandleCallback(ehRequest, ",", ",", payload, sizeof(payload)); - ret = HandleCallback(ehRequest, rspPutLightDefault, rspFailureLight, payload, sizeof(payload)); + ret = HandleCallback(ehRequest, + rspPutLightDefault, rspFailureLight, payload, sizeof(payload)); } if(ret != OC_EH_ERROR) { ret = HandleCallback(ehRequest, ",", ",", payload, sizeof(payload)); - ret = HandleCallback(ehRequest, rspPutFanDefault, rspFailureFan, payload, sizeof(payload)); + ret = HandleCallback(ehRequest, + rspPutFanDefault, rspFailureFan, payload, sizeof(payload)); } } if (ret == OC_EH_OK) @@ -265,10 +285,11 @@ OCEntityHandlerResult OCEntityHandlerRoomCb(OCEntityHandlerFlag flag, response.requestHandle = ehRequest->requestHandle; response.resourceHandle = ehRequest->resource; response.ehResult = ret; - response.payload = (unsigned char *)payload; + response.payload = payload; response.payloadSize = strlen(payload); response.numSendVendorSpecificHeaderOptions = 0; - memset(response.sendVendorSpecificHeaderOptions, 0, sizeof response.sendVendorSpecificHeaderOptions); + memset(response.sendVendorSpecificHeaderOptions, + 0, sizeof response.sendVendorSpecificHeaderOptions); memset(response.resourceUri, 0, sizeof response.resourceUri); // Indicate that response is NOT in a persistent buffer response.persistentBufferFlag = 0; @@ -294,7 +315,8 @@ OCEntityHandlerResult OCEntityHandlerRoomCb(OCEntityHandlerFlag flag, return ret; } -OCEntityHandlerResult OCEntityHandlerLightCb(OCEntityHandlerFlag flag, OCEntityHandlerRequest * ehRequest) +OCEntityHandlerResult OCEntityHandlerLightCb(OCEntityHandlerFlag flag, + OCEntityHandlerRequest * ehRequest) { OCEntityHandlerResult ret = OC_EH_OK; OCEntityHandlerResponse response; @@ -307,11 +329,13 @@ OCEntityHandlerResult OCEntityHandlerLightCb(OCEntityHandlerFlag flag, OCEntityH { if(OC_REST_GET == ehRequest->method) { - ret = HandleCallback(ehRequest, rspGetLightDefault, rspFailureLight, payload, sizeof(payload)); + ret = HandleCallback(ehRequest, + rspGetLightDefault, rspFailureLight, payload, sizeof(payload)); } else if(OC_REST_PUT == ehRequest->method) { - ret = HandleCallback(ehRequest, rspPutLightDefault, rspFailureLight, payload, sizeof(payload)); + ret = HandleCallback(ehRequest, + rspPutLightDefault, rspFailureLight, payload, sizeof(payload)); } else { @@ -326,10 +350,11 @@ OCEntityHandlerResult OCEntityHandlerLightCb(OCEntityHandlerFlag flag, OCEntityH response.requestHandle = ehRequest->requestHandle; response.resourceHandle = ehRequest->resource; response.ehResult = ret; - response.payload = (unsigned char *)payload; + response.payload = payload; response.payloadSize = strlen(payload); response.numSendVendorSpecificHeaderOptions = 0; - memset(response.sendVendorSpecificHeaderOptions, 0, sizeof response.sendVendorSpecificHeaderOptions); + memset(response.sendVendorSpecificHeaderOptions, + 0, sizeof response.sendVendorSpecificHeaderOptions); memset(response.resourceUri, 0, sizeof response.resourceUri); // Indicate that response is NOT in a persistent buffer response.persistentBufferFlag = 0; @@ -350,7 +375,8 @@ OCEntityHandlerResult OCEntityHandlerLightCb(OCEntityHandlerFlag flag, OCEntityH return ret; } -OCEntityHandlerResult OCEntityHandlerFanCb(OCEntityHandlerFlag flag, OCEntityHandlerRequest * ehRequest) +OCEntityHandlerResult OCEntityHandlerFanCb(OCEntityHandlerFlag flag, + OCEntityHandlerRequest * ehRequest) { OCEntityHandlerResult ret = OC_EH_OK; OCEntityHandlerResponse response; @@ -363,11 +389,13 @@ OCEntityHandlerResult OCEntityHandlerFanCb(OCEntityHandlerFlag flag, OCEntityHan { if(OC_REST_GET == ehRequest->method) { - ret = HandleCallback(ehRequest, rspGetFanDefault, rspFailureFan, payload, sizeof(payload)); + ret = HandleCallback(ehRequest, rspGetFanDefault, + rspFailureFan, payload, sizeof(payload)); } else if(OC_REST_PUT == ehRequest->method) { - ret = HandleCallback(ehRequest, rspPutFanDefault, rspFailureFan, payload, sizeof(payload)); + ret = HandleCallback(ehRequest, rspPutFanDefault, + rspFailureFan, payload, sizeof(payload)); } else { @@ -382,10 +410,11 @@ OCEntityHandlerResult OCEntityHandlerFanCb(OCEntityHandlerFlag flag, OCEntityHan response.requestHandle = ehRequest->requestHandle; response.resourceHandle = ehRequest->resource; response.ehResult = ret; - response.payload = (unsigned char *)payload; + response.payload = payload; response.payloadSize = strlen(payload); response.numSendVendorSpecificHeaderOptions = 0; - memset(response.sendVendorSpecificHeaderOptions, 0, sizeof response.sendVendorSpecificHeaderOptions); + memset(response.sendVendorSpecificHeaderOptions, + 0, sizeof response.sendVendorSpecificHeaderOptions); memset(response.resourceUri, 0, sizeof response.resourceUri); // Indicate that response is NOT in a persistent buffer response.persistentBufferFlag = 0; @@ -441,10 +470,6 @@ void *ChangeLightRepresentation (void *param) int main(int argc, char* argv[]) { - uint8_t addr[20] = {0}; - uint8_t* paddr = NULL; - uint16_t port = 0; - uint8_t ifname[] = "eth0"; pthread_t threadId; int opt; @@ -460,22 +485,16 @@ int main(int argc, char* argv[]) return -1; } } - if(TEST <= TEST_INVALID || TEST >= MAX_TESTS){ + if(TEST <= TEST_INVALID || TEST >= MAX_TESTS) + { PrintUsage(); return -1; } OC_LOG(DEBUG, TAG, "OCServer is starting..."); - /*Get Ip address on defined interface and initialize coap on it with random port number - * this port number will be used as a source port in all coap communications*/ - if (OCGetInterfaceAddress(ifname, sizeof(ifname), AF_INET, addr, - sizeof(addr)) == ERR_SUCCESS) - { - OC_LOG_V(INFO, TAG, "Starting ocserver on address %s:%d",addr,port); - paddr = addr; - } - if (OCInit((char *) paddr, port, OC_SERVER) != OC_STACK_OK) { + if (OCInit(NULL, 0, OC_SERVER) != OC_STACK_OK) + { OC_LOG(ERROR, TAG, "OCStack init error"); return 0; } @@ -525,7 +544,7 @@ void createResources() OCResourceHandle fan; OCStackResult res = OCCreateResource(&fan, "core.fan", - "oc.mi.def", + OC_RSRVD_INTERFACE_DEFAULT, "/a/fan", OCEntityHandlerFanCb, OC_DISCOVERABLE|OC_OBSERVABLE); @@ -534,7 +553,7 @@ void createResources() OCResourceHandle light; res = OCCreateResource(&light, "core.light", - "oc.mi.def", + OC_RSRVD_INTERFACE_DEFAULT, "/a/light", OCEntityHandlerLightCb, OC_DISCOVERABLE|OC_OBSERVABLE); @@ -546,7 +565,7 @@ void createResources() { res = OCCreateResource(&room, "core.room", - "oc.mi.b", + OC_RSRVD_INTERFACE_BATCH, "/a/room", OCEntityHandlerRoomCb, OC_DISCOVERABLE); @@ -555,15 +574,15 @@ void createResources() { res = OCCreateResource(&room, "core.room", - "oc.mi.b", + OC_RSRVD_INTERFACE_BATCH, "/a/room", NULL, OC_DISCOVERABLE); } OC_LOG_V(INFO, TAG, "Created room resource with result: %s", getResult(res)); - OCBindResourceInterfaceToResource(room, "oc.mi.ll"); - OCBindResourceInterfaceToResource(room, "oc.mi.def"); + OCBindResourceInterfaceToResource(room, OC_RSRVD_INTERFACE_LL); + OCBindResourceInterfaceToResource(room, OC_RSRVD_INTERFACE_DEFAULT); res = OCBindResource(room, light); OC_LOG_V(INFO, TAG, "OC Bind Contained Resource to resource: %s", getResult(res)); @@ -571,3 +590,4 @@ void createResources() res = OCBindResource(room, fan); OC_LOG_V(INFO, TAG, "OC Bind Contained Resource to resource: %s", getResult(res)); } +