Logic was added when the topic list has not been registered yet.
authorjaesick.shin <jaesick.shin@samsung.com>
Mon, 5 Sep 2016 04:17:49 +0000 (13:17 +0900)
committerUze Choi <uzchoi@samsung.com>
Tue, 6 Sep 2016 10:15:12 +0000 (10:15 +0000)
Logic was added when consumer request of OC_REST_GET.

Change-Id: I510959517c7f1e1c506f081eb6d59b88c6f9cd22
Signed-off-by: jaesick.shin <jaesick.shin@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/11385
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Chihyun Cho <ch79.cho@samsung.com>
Reviewed-by: Uze Choi <uzchoi@samsung.com>
service/notification/src/provider/NSProviderTopic.c

index 12688ce..a16efa6 100644 (file)
@@ -233,12 +233,6 @@ NSResult NSSendTopicList(OCEntityHandlerRequest * entityHandlerRequest)
         }\r
     }\r
 \r
-    if(!topics)\r
-    {\r
-        NS_LOG(DEBUG, "topicList is NULL");\r
-        return NS_ERROR;\r
-    }\r
-\r
     // make response for the Get Request\r
     OCEntityHandlerResponse response;\r
     response.numSendVendorSpecificHeaderOptions = 0;\r
@@ -253,42 +247,56 @@ NSResult NSSendTopicList(OCEntityHandlerRequest * entityHandlerRequest)
         return NS_ERROR;\r
     }\r
 \r
-    size_t dimensionSize = (size_t)NSProviderGetTopicListSize(topics);\r
-\r
-    NS_LOG_V(DEBUG, "dimensionSize = %d", dimensionSize);\r
-\r
-    if(!dimensionSize)\r
+    OCRepPayloadSetUri(payload, NS_COLLECTION_TOPIC_URI);\r
+    if(id)\r
     {\r
-        return NS_ERROR;\r
+        OCRepPayloadSetPropString(payload, NS_ATTRIBUTE_CONSUMER_ID, id);\r
     }\r
+    OCRepPayloadSetPropString(payload, NS_ATTRIBUTE_PROVIDER_ID,\r
+        NSGetProviderInfo()->providerId);\r
 \r
-    OCRepPayload** payloadTopicArray = (OCRepPayload **) OICMalloc(\r
-            sizeof(OCRepPayload *) * dimensionSize);\r
+    if(topics)\r
+    {\r
+        NS_LOG(DEBUG, "topicList is NULL");\r
+        size_t dimensionSize = (size_t)NSProviderGetTopicListSize(topics);\r
 \r
-    size_t dimensions[3] = {dimensionSize, 0, 0};\r
+        NS_LOG_V(DEBUG, "dimensionSize = %d", (int)dimensionSize);\r
 \r
-    for (int i = 0; i < (int)dimensionSize; i++)\r
-    {\r
-        NS_LOG_V(DEBUG, "topicName = %s", topics->topicName);\r
-        NS_LOG_V(DEBUG, "topicState = %d",(int) topics->state);\r
+        if(!dimensionSize)\r
+        {\r
+            return NS_ERROR;\r
+        }\r
 \r
-        payloadTopicArray[i] = OCRepPayloadCreate();\r
-        OCRepPayloadSetPropString(payloadTopicArray[i], NS_ATTRIBUTE_TOPIC_NAME, topics->topicName);\r
-        OCRepPayloadSetPropInt(payloadTopicArray[i], NS_ATTRIBUTE_TOPIC_SELECTION,\r
-                (int)topics->state);\r
+        OCRepPayload** payloadTopicArray = (OCRepPayload **) OICMalloc(\r
+                sizeof(OCRepPayload *) * dimensionSize);\r
 \r
-        topics = topics->next;\r
-    }\r
+        size_t dimensions[3] = {dimensionSize, 0, 0};\r
 \r
-    OCRepPayloadSetUri(payload, NS_COLLECTION_TOPIC_URI);\r
-    if(id)\r
+        for (int i = 0; i < (int)dimensionSize; i++)\r
+        {\r
+            NS_LOG_V(DEBUG, "topicName = %s", topics->topicName);\r
+            NS_LOG_V(DEBUG, "topicState = %d",(int) topics->state);\r
+\r
+            payloadTopicArray[i] = OCRepPayloadCreate();\r
+            OCRepPayloadSetPropString(payloadTopicArray[i], NS_ATTRIBUTE_TOPIC_NAME,\r
+                    topics->topicName);\r
+            OCRepPayloadSetPropInt(payloadTopicArray[i], NS_ATTRIBUTE_TOPIC_SELECTION,\r
+                    (int)topics->state);\r
+\r
+            topics = topics->next;\r
+        }\r
+\r
+\r
+        OCRepPayloadSetPropObjectArray(payload, NS_ATTRIBUTE_TOPIC_LIST,\r
+                (const OCRepPayload**)(payloadTopicArray), dimensions);\r
+    }\r
+    else\r
     {\r
-        OCRepPayloadSetPropString(payload, NS_ATTRIBUTE_CONSUMER_ID, id);\r
+        size_t dimensions[3] = {0, 0, 0};\r
+\r
+        OCRepPayloadSetPropObjectArrayAsOwner(payload, NS_ATTRIBUTE_TOPIC_LIST,\r
+                (OCRepPayload **) NULL, dimensions);\r
     }\r
-    OCRepPayloadSetPropString(payload, NS_ATTRIBUTE_PROVIDER_ID,\r
-        NSGetProviderInfo()->providerId);\r
-    OCRepPayloadSetPropObjectArray(payload, NS_ATTRIBUTE_TOPIC_LIST,\r
-            (const OCRepPayload**)(payloadTopicArray), dimensions);\r
 \r
     response.requestHandle = entityHandlerRequest->requestHandle;\r
     response.resourceHandle = entityHandlerRequest->resource;\r