X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=service%2Fnotification%2Fsrc%2Fconsumer%2FNSConsumerScheduler.c;h=2e13b5940f482a348c48ce5c91c03c864cfaaa72;hb=7f00f942c39b7bc27c7eeecf213a239c3fe4173c;hp=170769f2dbe7f3d9fd6bf52af0eb21df41a5a1fc;hpb=c3863f567b8edaaff7c97edd0e654600e6c37355;p=platform%2Fupstream%2Fiotivity.git diff --git a/service/notification/src/consumer/NSConsumerScheduler.c b/service/notification/src/consumer/NSConsumerScheduler.c index 170769f..2e13b59 100644 --- a/service/notification/src/consumer/NSConsumerScheduler.c +++ b/service/notification/src/consumer/NSConsumerScheduler.c @@ -41,6 +41,10 @@ #include "NSConsumerNetworkEventListener.h" #include "NSConsumerSystem.h" +#ifdef WITH_MQ +#include "NSConsumerMQPlugin.h" +#endif + void * NSConsumerMsgHandleThreadFunc(void * handle); void * NSConsumerMsgPushThreadFunc(void * data); @@ -74,15 +78,11 @@ NSResult NSConsumerMessageHandlerInit() NSConsumerThread * handle = NULL; NSConsumerQueue * queue = NULL; - uint8_t uuid[UUID_SIZE] = {0,}; - char uuidString[UUID_STRING_SIZE] = {0,}; - OCRandomUuidResult randomRet = OCGenerateUuid(uuid); - NS_VERIFY_NOT_NULL(randomRet == RAND_UUID_OK ? (void *) 1 : NULL, NS_ERROR); - randomRet = OCConvertUuidToString(uuid, uuidString); - NS_VERIFY_NOT_NULL(randomRet == RAND_UUID_OK ? (void *) 1 : NULL, NS_ERROR); + char * consumerUuid = (char *)OCGetServerInstanceIDString(); + NS_VERIFY_NOT_NULL(consumerUuid, NS_ERROR); - NSSetConsumerId(uuidString); - NS_LOG_V(DEBUG, "Consumer ID : %s", *NSGetConsumerId()); + NSSetConsumerId(consumerUuid); + NS_LOG_V(INFO_PRIVATE, "Consumer ID : %s", *NSGetConsumerId()); NS_LOG(DEBUG, "listener init"); NSResult ret = NSConsumerListenerInit(); @@ -92,16 +92,16 @@ NSResult NSConsumerMessageHandlerInit() ret = NSConsumerSystemInit(); NS_VERIFY_NOT_NULL(ret == NS_OK ? (void *) 1 : NULL, NS_ERROR); - NS_LOG(DEBUG, "queue thread init"); - handle = NSThreadInit(NSConsumerMsgHandleThreadFunc, NULL); - NS_VERIFY_NOT_NULL(handle, NS_ERROR); - NSSetMsgHandleThreadHandle(handle); - NS_LOG(DEBUG, "create queue"); queue = NSCreateQueue(); NS_VERIFY_NOT_NULL(queue, NS_ERROR); NSSetMsgHandleQueue(queue); + NS_LOG(DEBUG, "queue thread init"); + handle = NSThreadInit(NSConsumerMsgHandleThreadFunc, NULL); + NS_VERIFY_NOT_NULL(handle, NS_ERROR); + NSSetMsgHandleThreadHandle(handle); + return NS_OK; } @@ -111,6 +111,7 @@ NSResult NSConsumerPushEvent(NSTask * task) NS_VERIFY_NOT_NULL(thread, NS_ERROR); NSDestroyThreadHandle(thread); + NSOICFree(thread); return NS_OK; } @@ -120,11 +121,16 @@ void NSConsumerMessageHandlerExit() NSConsumerListenerTermiate(); NSCancelAllSubscription(); - NSThreadStop(*(NSGetMsgHandleThreadHandle())); - NSDestroyQueue(*(NSGetMsgHandleQueue())); + + NSConsumerThread * thread = *(NSGetMsgHandleThreadHandle()); + NSThreadStop(thread); + NSSetMsgHandleThreadHandle(NULL); + + NSConsumerQueue * queue = *(NSGetMsgHandleQueue()); + NSDestroyQueue(queue); NSSetMsgHandleQueue(NULL); - NSDestroyProviderCacheList(); + NSDestroyInternalCachedList(); } void * NSConsumerMsgHandleThreadFunc(void * threadHandle) @@ -164,6 +170,7 @@ void * NSConsumerMsgHandleThreadFunc(void * threadHandle) if (obj) { NSConsumerTaskProcessing((NSTask *)(obj->data)); + NSOICFree(obj); } NSThreadUnlock(queueHandleThread); @@ -175,8 +182,6 @@ void * NSConsumerMsgHandleThreadFunc(void * threadHandle) void * NSConsumerMsgPushThreadFunc(void * data) { - NSThreadDetach(); - NSConsumerQueueObject * obj = NULL; NSConsumerQueue * queue = NULL; @@ -202,7 +207,7 @@ void * NSConsumerMsgPushThreadFunc(void * data) } else { - NSPushQueue(queue, obj); + NSPushConsumerQueue(queue, obj); } NSThreadUnlock(msgHandleThread); @@ -263,11 +268,6 @@ void NSConsumerTaskProcessing(NSTask * task) } case TASK_SEND_SYNCINFO: case TASK_CONSUMER_REQ_TOPIC_LIST: - { - NSConsumerCommunicationTaskProcessing(task); - break; - } - case TASK_CONSUMER_GET_TOPIC_LIST: case TASK_CONSUMER_SELECT_TOPIC_LIST: { NSConsumerCommunicationTaskProcessing(task); @@ -323,7 +323,7 @@ void NSConsumerTaskProcessing(NSTask * task) { NSTask * getTopicTask = (NSTask *)OICMalloc(sizeof(NSTask)); NS_VERIFY_NOT_NULL_WITH_POST_CLEANING_V(getTopicTask, - NSRemoveProvider_internal((NSProvider_internal *) task->taskData)); + NSRemoveProvider_internal((void *) task->taskData)); getTopicTask->nextTask = NULL; getTopicTask->taskData = (void *) NSCopyProvider_internal((NSProvider_internal *) task->taskData); @@ -332,6 +332,13 @@ void NSConsumerTaskProcessing(NSTask * task) NSConsumerInternalTaskProcessing(task); break; } +#ifdef WITH_MQ + case TASK_MQ_REQ_SUBSCRIBE: + { + NSConsumerMQTaskProcessing(task); + break; + } +#endif default: { NS_LOG(ERROR, "Unknown type of task");