Imported Upstream version 0.9.1
[platform/upstream/iotivity.git] / resource / csdk / stack / samples / linux / SimpleClientServer / ocservercoll.cpp
index 75124bb..aff73b6 100644 (file)
@@ -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 <Test Case>");
-    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));
 }
+