From: jaesick.shin Date: Mon, 5 Sep 2016 04:17:49 +0000 (+0900) Subject: Logic was added when the topic list has not been registered yet. X-Git-Tag: 1.2.0+RC3~151^2^2~30 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5e57d3be8166a14dcbdd620ae3e8e464da028716;p=platform%2Fupstream%2Fiotivity.git Logic was added when the topic list has not been registered yet. Logic was added when consumer request of OC_REST_GET. Change-Id: I510959517c7f1e1c506f081eb6d59b88c6f9cd22 Signed-off-by: jaesick.shin Reviewed-on: https://gerrit.iotivity.org/gerrit/11385 Tested-by: jenkins-iotivity Reviewed-by: Chihyun Cho Reviewed-by: Uze Choi --- diff --git a/service/notification/src/provider/NSProviderTopic.c b/service/notification/src/provider/NSProviderTopic.c index 12688ce..a16efa6 100644 --- a/service/notification/src/provider/NSProviderTopic.c +++ b/service/notification/src/provider/NSProviderTopic.c @@ -233,12 +233,6 @@ NSResult NSSendTopicList(OCEntityHandlerRequest * entityHandlerRequest) } } - if(!topics) - { - NS_LOG(DEBUG, "topicList is NULL"); - return NS_ERROR; - } - // make response for the Get Request OCEntityHandlerResponse response; response.numSendVendorSpecificHeaderOptions = 0; @@ -253,42 +247,56 @@ NSResult NSSendTopicList(OCEntityHandlerRequest * entityHandlerRequest) return NS_ERROR; } - size_t dimensionSize = (size_t)NSProviderGetTopicListSize(topics); - - NS_LOG_V(DEBUG, "dimensionSize = %d", dimensionSize); - - if(!dimensionSize) + OCRepPayloadSetUri(payload, NS_COLLECTION_TOPIC_URI); + if(id) { - return NS_ERROR; + OCRepPayloadSetPropString(payload, NS_ATTRIBUTE_CONSUMER_ID, id); } + OCRepPayloadSetPropString(payload, NS_ATTRIBUTE_PROVIDER_ID, + NSGetProviderInfo()->providerId); - OCRepPayload** payloadTopicArray = (OCRepPayload **) OICMalloc( - sizeof(OCRepPayload *) * dimensionSize); + if(topics) + { + NS_LOG(DEBUG, "topicList is NULL"); + size_t dimensionSize = (size_t)NSProviderGetTopicListSize(topics); - size_t dimensions[3] = {dimensionSize, 0, 0}; + NS_LOG_V(DEBUG, "dimensionSize = %d", (int)dimensionSize); - for (int i = 0; i < (int)dimensionSize; i++) - { - NS_LOG_V(DEBUG, "topicName = %s", topics->topicName); - NS_LOG_V(DEBUG, "topicState = %d",(int) topics->state); + if(!dimensionSize) + { + return NS_ERROR; + } - payloadTopicArray[i] = OCRepPayloadCreate(); - OCRepPayloadSetPropString(payloadTopicArray[i], NS_ATTRIBUTE_TOPIC_NAME, topics->topicName); - OCRepPayloadSetPropInt(payloadTopicArray[i], NS_ATTRIBUTE_TOPIC_SELECTION, - (int)topics->state); + OCRepPayload** payloadTopicArray = (OCRepPayload **) OICMalloc( + sizeof(OCRepPayload *) * dimensionSize); - topics = topics->next; - } + size_t dimensions[3] = {dimensionSize, 0, 0}; - OCRepPayloadSetUri(payload, NS_COLLECTION_TOPIC_URI); - if(id) + for (int i = 0; i < (int)dimensionSize; i++) + { + NS_LOG_V(DEBUG, "topicName = %s", topics->topicName); + NS_LOG_V(DEBUG, "topicState = %d",(int) topics->state); + + payloadTopicArray[i] = OCRepPayloadCreate(); + OCRepPayloadSetPropString(payloadTopicArray[i], NS_ATTRIBUTE_TOPIC_NAME, + topics->topicName); + OCRepPayloadSetPropInt(payloadTopicArray[i], NS_ATTRIBUTE_TOPIC_SELECTION, + (int)topics->state); + + topics = topics->next; + } + + + OCRepPayloadSetPropObjectArray(payload, NS_ATTRIBUTE_TOPIC_LIST, + (const OCRepPayload**)(payloadTopicArray), dimensions); + } + else { - OCRepPayloadSetPropString(payload, NS_ATTRIBUTE_CONSUMER_ID, id); + size_t dimensions[3] = {0, 0, 0}; + + OCRepPayloadSetPropObjectArrayAsOwner(payload, NS_ATTRIBUTE_TOPIC_LIST, + (OCRepPayload **) NULL, dimensions); } - OCRepPayloadSetPropString(payload, NS_ATTRIBUTE_PROVIDER_ID, - NSGetProviderInfo()->providerId); - OCRepPayloadSetPropObjectArray(payload, NS_ATTRIBUTE_TOPIC_LIST, - (const OCRepPayload**)(payloadTopicArray), dimensions); response.requestHandle = entityHandlerRequest->requestHandle; response.resourceHandle = entityHandlerRequest->resource;