X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=service%2Fnotification%2Fsrc%2Fconsumer%2FNSConsumerInterface.c;h=f52b20d97da12a4d5659d49fb9dd58a3892a2b60;hb=3c093548382bb2542c87a67e6e5fa32552c29cb3;hp=db95e81374242fabdf3d8d72186f63a698bdc6b8;hpb=8f51e668ae78cb8ea4e57576160ab99ddcd40a81;p=platform%2Fupstream%2Fiotivity.git diff --git a/service/notification/src/consumer/NSConsumerInterface.c b/service/notification/src/consumer/NSConsumerInterface.c index db95e81..f52b20d 100644 --- a/service/notification/src/consumer/NSConsumerInterface.c +++ b/service/notification/src/consumer/NSConsumerInterface.c @@ -27,6 +27,7 @@ #include "NSConsumerCommon.h" #include "NSConstants.h" #include "NSConsumerScheduler.h" +#include "NSUtil.h" #include "oic_malloc.h" #include "oic_string.h" @@ -67,25 +68,42 @@ NSResult NSStopConsumer() return NS_OK; } -NSResult NSConsumerEnableRemoteService(const char *serverAddress) +#ifdef WITH_MQ +NSResult NSConsumerSubscribeMQService(const char * serverAddress, const char * topicName) { NS_VERIFY_NOT_NULL(serverAddress, NS_ERROR); + NS_VERIFY_NOT_NULL(topicName, NS_ERROR); bool isStartedConsumer = NSIsStartedConsumer(); NS_VERIFY_NOT_NULL(isStartedConsumer == true ? (void *) 1 : NULL, NS_ERROR); - char * queryAddr = NULL; - if (strstr(serverAddress, "coap+tcp://")) - { - queryAddr = OICStrdup(serverAddress+11); - } - else if (strstr(serverAddress, "coap://")) - { - queryAddr = OICStrdup(serverAddress+7); - } - else - { - queryAddr = OICStrdup(serverAddress); - } + char * queryAddr = NSGetQueryAddress(serverAddress); + NS_VERIFY_NOT_NULL(queryAddr, NS_ERROR); + + NSMQTopicAddress * topicAddr = (NSMQTopicAddress *)OICMalloc(sizeof(NSMQTopicAddress)); + NS_VERIFY_NOT_NULL_WITH_POST_CLEANING(queryAddr, NS_ERROR, NSOICFree(queryAddr)); + + topicAddr->serverAddr = queryAddr; + topicAddr->topicName = OICStrdup(topicName); + + NSTask * subMQTask = NSMakeTask(TASK_MQ_REQ_SUBSCRIBE, (void *)topicAddr); + NS_VERIFY_NOT_NULL_WITH_POST_CLEANING(subMQTask, NS_ERROR, + { + NSOICFree(topicAddr->serverAddr); + NSOICFree(topicAddr->topicName) + NSOICFree(topicAddr); + }); + + return NSConsumerPushEvent(subMQTask); +} +#endif + +NSResult NSConsumerEnableRemoteService(const char * serverAddress) +{ + NS_VERIFY_NOT_NULL(serverAddress, NS_ERROR); + bool isStartedConsumer = NSIsStartedConsumer(); + NS_VERIFY_NOT_NULL(isStartedConsumer == true ? (void *) 1 : NULL, NS_ERROR); + + char * queryAddr = OICStrdup(serverAddress); NS_VERIFY_NOT_NULL(queryAddr, NS_ERROR); NSTask * discoverTask = NSMakeTask(TASK_CONSUMER_REQ_DISCOVER, (void *)queryAddr); @@ -186,7 +204,7 @@ NSTopicLL * NSConsumerGetTopicList(const char * providerId) bool isStartedConsumer = NSIsStartedConsumer(); NS_VERIFY_NOT_NULL(isStartedConsumer == true ? (void *) 1 : NULL, NULL); - NS_LOG_V(DEBUG, "NSProvider ID: %s", providerId); + NS_LOG_V(INFO_PRIVATE, "NSProvider ID: %s", providerId); NSProvider_internal * prov_internal = NSConsumerFindNSProvider(providerId); NS_VERIFY_NOT_NULL(prov_internal, NULL);