Updated for consumer APIs.
[contrib/iotivity.git] / service / notification / src / consumer / NSConsumerCommunication.c
index 6f0ad95..e275c91 100644 (file)
@@ -36,7 +36,7 @@ NSMessage_consumer * NSGetMessage(OCClientResponse * clientResponse);
 NSSyncInfo * NSGetSyncInfoc(OCClientResponse * clientResponse);
 
 OCRepPayload * NSGetofSyncInfoPayload(NSMessage_consumer * message, int type);
-OCStackResult NSSendSyncInfo(NSMessage_consumer * message, int type);
+OCStackResult NSSendSyncInfoUsingMessage(NSMessage_consumer * message, int type);
 
 // TODO it seem to not to be this file
 NSResult NSPushToCache(OCClientResponse * clientResponse, NSTaskType type);
@@ -44,30 +44,30 @@ NSResult NSPushToCache(OCClientResponse * clientResponse, NSTaskType type);
 NSResult NSConsumerSubscribeProvider(NSProvider * provider)
 {
     NSProvider_internal * provider_internal = (NSProvider_internal *) provider;
-    NS_VERTIFY_NOT_NULL(provider_internal, NS_ERROR);
+    NS_VERIFY_NOT_NULL(provider_internal, NS_ERROR);
 
     NS_LOG(DEBUG, "get subscribe message query");
-    char * query = NSGetQuery(provider_internal->messageUri);
-    NS_VERTIFY_NOT_NULL(query, NS_ERROR);
+    char * query = NSMakeRequestUriWithConsumerId(provider_internal->messageUri);
+    NS_VERIFY_NOT_NULL(query, NS_ERROR);
 
     NS_LOG(DEBUG, "subscribe message");
     NS_LOG_V(DEBUG, "subscribe query : %s", query);
     OCStackResult ret = NSInvokeRequest(&(provider_internal->messageHandle),
                           OC_REST_OBSERVE, provider_internal->addr,
                           query, NULL, NSConsumerMessageListener, NULL);
-    NS_VERTIFY_STACK_OK(ret, NS_ERROR);
+    NS_VERIFY_STACK_OK(ret, NS_ERROR);
     NSOICFree(query);
 
     NS_LOG(DEBUG, "get subscribe sync query");
-    query = NSGetQuery(provider_internal->syncUri);
-    NS_VERTIFY_NOT_NULL(query, NS_ERROR);
+    query = NSMakeRequestUriWithConsumerId(provider_internal->syncUri);
+    NS_VERIFY_NOT_NULL(query, NS_ERROR);
 
     NS_LOG(DEBUG, "subscribe sync");
     NS_LOG_V(DEBUG, "subscribe query : %s", query);
     ret = NSInvokeRequest(&(provider_internal->syncHandle),
                           OC_REST_OBSERVE, provider_internal->addr,
                           query, NULL, NSConsumerSyncInfoListener, NULL);
-    NS_VERTIFY_STACK_OK(ret, NS_ERROR);
+    NS_VERIFY_STACK_OK(ret, NS_ERROR);
     NSOICFree(query);
 
     return NS_OK;
@@ -79,8 +79,8 @@ OCStackApplicationResult NSConsumerCheckPostResult(
     (void) ctx;
     (void) handle;
 
-    NS_VERTIFY_NOT_NULL(clientResponse, OC_STACK_KEEP_TRANSACTION);
-    NS_VERTIFY_STACK_OK(clientResponse->result, OC_STACK_KEEP_TRANSACTION);
+    NS_VERIFY_NOT_NULL(clientResponse, OC_STACK_KEEP_TRANSACTION);
+    NS_VERIFY_STACK_OK(clientResponse->result, OC_STACK_KEEP_TRANSACTION);
 
     return OC_STACK_KEEP_TRANSACTION;
 }
@@ -96,18 +96,18 @@ OCStackApplicationResult NSConsumerSyncInfoListener(
     (void) ctx;
     (void) handle;
 
-    NS_VERTIFY_NOT_NULL(clientResponse, OC_STACK_KEEP_TRANSACTION);
-    NS_VERTIFY_STACK_OK(clientResponse->result, OC_STACK_KEEP_TRANSACTION);
+    NS_VERIFY_NOT_NULL(clientResponse, OC_STACK_KEEP_TRANSACTION);
+    NS_VERIFY_STACK_OK(clientResponse->result, OC_STACK_KEEP_TRANSACTION);
 
     NS_LOG(DEBUG, "get NSSyncInfo");
     NSSyncInfo * newSync = NSGetSyncInfoc(clientResponse);
-    NS_VERTIFY_NOT_NULL(newSync, OC_STACK_KEEP_TRANSACTION);
+    NS_VERIFY_NOT_NULL(newSync, OC_STACK_KEEP_TRANSACTION);
 
     NSTaskType taskType = TASK_RECV_SYNCINFO;
 
     NS_LOG(DEBUG, "build NSTask");
     NSTask * task = NSMakeTask(taskType, (void *) newSync);
-    NS_VERTIFY_NOT_NULL_WITH_POST_CLEANING(task,
+    NS_VERIFY_NOT_NULL_WITH_POST_CLEANING(task,
                OC_STACK_KEEP_TRANSACTION, NSRemoveSyncInfoObj(newSync));
 
     NSConsumerPushEvent(task);
@@ -121,12 +121,12 @@ OCStackApplicationResult NSConsumerMessageListener(
     (void) ctx;
     (void) handle;
 
-    NS_VERTIFY_NOT_NULL(clientResponse, OC_STACK_KEEP_TRANSACTION);
-    NS_VERTIFY_STACK_OK(clientResponse->result, OC_STACK_KEEP_TRANSACTION);
+    NS_VERIFY_NOT_NULL(clientResponse, OC_STACK_KEEP_TRANSACTION);
+    NS_VERIFY_STACK_OK(clientResponse->result, OC_STACK_KEEP_TRANSACTION);
 
     NS_LOG(DEBUG, "build NSMessage");
     NSMessage_consumer * newNoti = NSGetMessage(clientResponse);
-    NS_VERTIFY_NOT_NULL(newNoti, OC_STACK_KEEP_TRANSACTION);
+    NS_VERIFY_NOT_NULL(newNoti, OC_STACK_KEEP_TRANSACTION);
 
     NSTaskType type = TASK_CONSUMER_RECV_MESSAGE;
 
@@ -142,7 +142,7 @@ OCStackApplicationResult NSConsumerMessageListener(
 
     NS_LOG(DEBUG, "build NSTask");
     NSTask * task = NSMakeTask(type, (void *) newNoti);
-    NS_VERTIFY_NOT_NULL_WITH_POST_CLEANING(task, NS_ERROR, NSRemoveMessage(newNoti));
+    NS_VERIFY_NOT_NULL_WITH_POST_CLEANING(task, NS_ERROR, NSRemoveMessage(newNoti));
 
     NSConsumerPushEvent(task);
 
@@ -153,11 +153,11 @@ NSResult NSPushToCache(OCClientResponse * clientResponse, NSTaskType type)
 {
     NSMessage_consumer * cachedNoti = NSGetMessage(clientResponse);
     NS_LOG(DEBUG, "build NSMessage");
-    NS_VERTIFY_NOT_NULL(cachedNoti, NS_ERROR);
+    NS_VERIFY_NOT_NULL(cachedNoti, NS_ERROR);
 
     NS_LOG(DEBUG, "build NSTask");
     NSTask * task = NSMakeTask(type, (void *) cachedNoti);
-    NS_VERTIFY_NOT_NULL_WITH_POST_CLEANING(task, NS_ERROR, NSRemoveMessage(cachedNoti));
+    NS_VERIFY_NOT_NULL_WITH_POST_CLEANING(task, NS_ERROR, NSRemoveMessage(cachedNoti));
 
     NSConsumerPushEvent(task);
 
@@ -172,27 +172,27 @@ void NSGetMessagePostClean(char * pId, OCDevAddr * addr)
 
 NSMessage_consumer * NSGetMessage(OCClientResponse * clientResponse)
 {
-    NS_VERTIFY_NOT_NULL(clientResponse->payload, NULL);
+    NS_VERIFY_NOT_NULL(clientResponse->payload, NULL);
     OCRepPayload * payload = (OCRepPayload *)clientResponse->payload;
 
     NS_LOG(DEBUG, "get msg id");
     uint64_t id = NULL;
     bool getResult = OCRepPayloadGetPropInt(payload, NS_ATTRIBUTE_MESSAGE_ID, (int64_t *)&id);
-    NS_VERTIFY_NOT_NULL(getResult == true ? (void *) 1 : NULL, NULL);
+    NS_VERIFY_NOT_NULL(getResult == true ? (void *) 1 : NULL, NULL);
 
     NS_LOG(DEBUG, "get provider id");
     char * pId = NULL;
     getResult = OCRepPayloadGetPropString(payload, NS_ATTRIBUTE_PROVIDER_ID, &pId);
-    NS_VERTIFY_NOT_NULL(getResult == true ? (void *) 1 : NULL, NULL);
+    NS_VERIFY_NOT_NULL(getResult == true ? (void *) 1 : NULL, NULL);
 
     NS_LOG(DEBUG, "get provider address");
     OCDevAddr * addr = (OCDevAddr *)OICMalloc(sizeof(OCDevAddr));
-    NS_VERTIFY_NOT_NULL_WITH_POST_CLEANING(addr, NULL, NSGetMessagePostClean(pId, addr));
+    NS_VERIFY_NOT_NULL_WITH_POST_CLEANING(addr, NULL, NSGetMessagePostClean(pId, addr));
     memcpy(addr, clientResponse->addr, sizeof(OCDevAddr));
 
     NS_LOG(DEBUG, "create NSMessage");
     NSMessage_consumer * retNoti = NSCreateMessage_internal(id, pId);
-    NS_VERTIFY_NOT_NULL_WITH_POST_CLEANING(retNoti, NULL, NSGetMessagePostClean(pId, addr));
+    NS_VERIFY_NOT_NULL_WITH_POST_CLEANING(retNoti, NULL, NSGetMessagePostClean(pId, addr));
     NSOICFree(pId);
 
     retNoti->addr = addr;
@@ -221,28 +221,28 @@ NSMessage_consumer * NSGetMessage(OCClientResponse * clientResponse)
 
 NSSyncInfo * NSGetSyncInfoc(OCClientResponse * clientResponse)
 {
-    NS_VERTIFY_NOT_NULL(clientResponse->payload, NULL);
+    NS_VERIFY_NOT_NULL(clientResponse->payload, NULL);
 
     OCRepPayload * payload = (OCRepPayload *)clientResponse->payload;
 
     NS_LOG(DEBUG, "get msg id");
     uint64_t id = NULL;
     bool getResult = OCRepPayloadGetPropInt(payload, NS_ATTRIBUTE_MESSAGE_ID, (int64_t *)&id);
-    NS_VERTIFY_NOT_NULL(getResult == true ? (void *) 1 : NULL, NULL);
+    NS_VERIFY_NOT_NULL(getResult == true ? (void *) 1 : NULL, NULL);
 
     NS_LOG(DEBUG, "get provider id");
     char * pId = NULL;
     getResult = OCRepPayloadGetPropString(payload, NS_ATTRIBUTE_PROVIDER_ID, &pId);
-    NS_VERTIFY_NOT_NULL(getResult == true ? (void *) 1 : NULL, NULL);
+    NS_VERIFY_NOT_NULL(getResult == true ? (void *) 1 : NULL, NULL);
 
     NS_LOG(DEBUG, "get state");
     int64_t state = 0;
     getResult = OCRepPayloadGetPropInt(payload, NS_ATTRIBUTE_STATE, & state);
-    NS_VERTIFY_NOT_NULL(getResult == true ? (void *) 1 : NULL, NULL);
+    NS_VERIFY_NOT_NULL(getResult == true ? (void *) 1 : NULL, NULL);
 
     NS_LOG(DEBUG, "create NSSyncInfo");
     NSSyncInfo * retSync = NSCreateSyncInfo_consumer(id, pId, (NSSyncType)state);
-    NS_VERTIFY_NOT_NULL(retSync, NULL);
+    NS_VERIFY_NOT_NULL(retSync, NULL);
 
     NS_LOG_V(DEBUG, "Sync ID : %ld", retSync->messageId);
     NS_LOG_V(DEBUG, "Sync State : %d", (int) retSync->state);
@@ -254,7 +254,7 @@ NSSyncInfo * NSGetSyncInfoc(OCClientResponse * clientResponse)
 NSMessage_consumer * NSCreateMessage_internal(uint64_t id, const char * providerId)
 {
     NSMessage_consumer * retNoti = (NSMessage_consumer *)OICMalloc(sizeof(NSMessage_consumer));
-    NS_VERTIFY_NOT_NULL(retNoti, NULL);
+    NS_VERIFY_NOT_NULL(retNoti, NULL);
 
     retNoti->messageId = id;
     OICStrcpy(retNoti->providerId, sizeof(char) * NS_DEVICE_ID_LENGTH, providerId);
@@ -272,7 +272,7 @@ NSMessage_consumer * NSCreateMessage_internal(uint64_t id, const char * provider
 NSSyncInfo * NSCreateSyncInfo_consumer(uint64_t msgId, const char * providerId, NSSyncType state)
 {
     NSSyncInfo * retSync = (NSSyncInfo *)OICMalloc(sizeof(NSSyncInfo));
-    NS_VERTIFY_NOT_NULL(retSync, NULL);
+    NS_VERIFY_NOT_NULL(retSync, NULL);
 
     retSync->messageId = msgId;
     retSync->state = state;
@@ -283,23 +283,20 @@ NSSyncInfo * NSCreateSyncInfo_consumer(uint64_t msgId, const char * providerId,
 
 void NSConsumerCommunicationTaskProcessing(NSTask * task)
 {
-    NS_VERTIFY_NOT_NULL_V(task);
+    NS_VERIFY_NOT_NULL_V(task);
 
     NS_LOG_V(DEBUG, "Receive Event : %d", (int)task->taskType);
     if (task->taskType == TASK_CONSUMER_REQ_SUBSCRIBE)
     {
         NS_LOG(DEBUG, "Request Subscribe");
         NSResult ret = NSConsumerSubscribeProvider((NSProvider *)task->taskData);
-        NS_VERTIFY_NOT_NULL_V(ret == NS_OK ? (void *)1 : NULL);
+        NS_VERIFY_NOT_NULL_V(ret == NS_OK ? (void *)1 : NULL);
     }
-    else if (task->taskType == TASK_SEND_READ || task->taskType == TASK_SEND_DISMISS)
+    else if (task->taskType == TASK_SEND_SYNCINFO)
     {
-        NSMessage_consumer * message = (NSMessage_consumer *) task->taskData;
-        NS_VERTIFY_NOT_NULL_V(message);
-
-        OCStackResult ret = NSSendSyncInfo(message, (task->taskType == TASK_SEND_READ) ? 0 : 1);
-        NS_VERTIFY_STACK_OK_V(ret);
-
+        // TODO find target OCDevAddr using provider Id.
+        //OCStackResult ret = NSSendSyncInfo((NSSyncInfo *)task->taskData, );
+        //NS_VERTIFY_STACK_OK_V(ret);
     }
     else if (task->taskType == TASK_CONSUMER_REQ_SUBSCRIBE_CANCEL)
     {
@@ -314,23 +311,15 @@ void NSConsumerCommunicationTaskProcessing(NSTask * task)
     }
 }
 
-OCRepPayload * NSGetofSyncInfoPayload(NSMessage_consumer * message, int type)
+OCStackResult NSSendSyncInfo(NSSyncInfo * syncInfo, OCDevAddr * addr)
 {
     OCRepPayload * payload = OCRepPayloadCreate();
-    NS_VERTIFY_NOT_NULL(payload, NULL);
-
-    OCRepPayloadSetPropInt(payload, NS_ATTRIBUTE_MESSAGE_ID, (int64_t)message->messageId);
-    OCRepPayloadSetPropInt(payload, NS_ATTRIBUTE_STATE, type);
+    NS_VERIFY_NOT_NULL(payload, OC_STACK_ERROR);
 
-    return payload;
-}
-
-OCStackResult NSSendSyncInfo(NSMessage_consumer * message, int type)
-{
-    OCRepPayload * payload = NSGetofSyncInfoPayload(message, type);
-    NS_VERTIFY_NOT_NULL(payload, OC_STACK_ERROR);
+    OCRepPayloadSetPropInt(payload, NS_ATTRIBUTE_MESSAGE_ID, (int64_t)syncInfo->messageId);
+    OCRepPayloadSetPropInt(payload, NS_ATTRIBUTE_STATE, syncInfo->state);
 
-    return NSInvokeRequest(NULL, OC_REST_POST, message->addr,
+    return NSInvokeRequest(NULL, OC_REST_POST, addr,
                            NS_SYNC_URI, (OCPayload*)payload,
                            NSConsumerCheckPostResult, NULL);
 }