Update topic APIs
authorch79.cho <ch79.cho@samsung.com>
Thu, 11 Aug 2016 08:10:55 +0000 (17:10 +0900)
committerMadan Lanka <lanka.madan@samsung.com>
Thu, 11 Aug 2016 11:11:01 +0000 (11:11 +0000)
The APIs for topic are updated.
And the name of task attributes are upgraded regarding to the APIs.

Change-Id: Ia570afc768a9466019ac08013c817fa17cbe964a
Signed-off-by: ch79.cho <ch79.cho@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/10259
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Madan Lanka <lanka.madan@samsung.com>
service/notification/include/NSProviderInterface.h
service/notification/src/common/NSConstants.h
service/notification/src/provider/NSProviderInterface.c
service/notification/src/provider/NSProviderListener.c
service/notification/src/provider/NSProviderTopic.c

index 8c6cc1d..56ec204 100644 (file)
@@ -133,69 +133,47 @@ NSResult NSProviderSendSyncInfo(uint64_t messageId, NSSyncType type);
 NSMessage * NSCreateMessage();\r
 \r
 /**\r
- * Create empty topic list which is required to set by following APIs\r
- * @return ::NSTopicList\r
- */\r
-NSTopicList * NSProviderCreateTopicList();\r
-\r
-/**\r
- * Add topic to topic list which is able to be created\r
- * by NSProviderCreateTopicList function\r
- * @param[out]  topicList  Topic list added with topic name\r
+ * Add topic to topic list which is located in provider service storage\r
  * @param[in]  topicName Topic name to add\r
  * @return ::NS_OK or result code of NSResult\r
  */\r
-NSResult NSProviderAddTopic(NSTopicList** topicList, char* topicName);\r
+NSResult NSProviderAddTopic(char* topicName);\r
 \r
 /**\r
  * Delete topic from topic list\r
- * @param[out]  topicList  Topic list deleted with topic name\r
  * @param[in]  topicName Topic name to delete\r
  * @return ::NS_OK or result code of NSResult\r
  */\r
-NSResult NSProviderDeleteTopic(NSTopicList** topicList, char* topicName);\r
+NSResult NSProviderDeleteTopic(char* topicName);\r
 \r
 /**\r
- * Select a topic for consumer\r
- * @param[out]  topicList  Topic list with selected and unselected topics for consumer\r
+ * Select a topic name for a consumer\r
  * @param[in]  consumerId  consumer id for which the user on provider selects a topic\r
  * @param[in]  topicName Topic name to select\r
  * @return ::NS_OK or result code of NSResult\r
  */\r
-NSResult NSProviderSelectTopic(NSTopicList** topicList, char* consumerId, char* topicName);\r
+NSResult NSProviderSelectTopic(char* consumerId, char* topicName);\r
 \r
 /**\r
  * Unselect a topic from the topic list for consumer\r
- * @param[out]  topicList  Topic list with selected and unselected topics for consumer\r
  * @param[in]  consumerId  consumer id for which the user on provider unselects a topic\r
  * @param[in]  topicName Topic name to unselect\r
  * @return ::NS_OK or result code of NSResult\r
  */\r
-NSResult NSProviderUnselectTopic(NSTopicList** topicList, char* consumerId, char* topicName);\r
-\r
-/**\r
- * Request all the topics which has already registered by user\r
- * @param[in] consumerid  the id of consumer which subscribes topics\r
- * if NULL, all the registered topic list is returned\r
- * @return :: list of NSTopic\r
- */\r
-NSTopicList * NSProviderGetTopics(char *consumerId);\r
+NSResult NSProviderUnselectTopic(char* consumerId, char* topicName);\r
 \r
 /**\r
- * Request to register topics to provide to consumers\r
- * @param[in]  topicList  List of NSTopic\r
- * the consumerId of NSTopicList struct shoud be set NULL\r
- * @return ::NS_OK or result code of NSResult\r
+ * Request topic list with selection state for the consumer\r
+ * @param[in] consumerid  the id of consumer which topic list is subscribed for\r
+ * @return :: Topic list\r
  */\r
-NSResult NSProviderRegisterTopics(NSTopicList *topicList);\r
+NSTopics * NSProviderGetConsumerTopics(char *consumerId);\r
 \r
 /**\r
- * Set recommended topics for a consumer\r
- * @param[in]  topicList  List of NSTopic recommended by provider\r
- * the consumerId of NSTopicList struct should be set consumerId\r
- * @return ::NS_OK or result code of NSResult\r
+ * Request topics list already registered by provider user\r
+ * @return :: Topic list\r
  */\r
-NSResult NSProviderRecommendTopics(char* consumerId, NSTopicList *topicList);\r
+NSTopics * NSProviderGetTopics();\r
 \r
 #ifdef __cplusplus\r
 }\r
index 88505c1..9347250 100644 (file)
@@ -241,8 +241,10 @@ typedef enum eTaskType
     TASK_CB_SYNC = 10001,
 
     TASK_SEND_TOPICS = 11000,
-    TASK_SUBSCRIBE_TOPICS = 11001,
-    TASK_REGISTER_TOPICS = 11002,
+    TASK_ADD_TOPIC = 11001,
+    TASK_DELETE_TOPIC = 11002,
+    TASK_SUBSCRIBE_TOPIC = 11003,
+    TASK_UNSUBSCRIBE_TOPIC = 11004
 
 } NSTaskType;
 
index 80abe8a..785a51f 100644 (file)
@@ -240,52 +240,91 @@ NSMessage * NSCreateMessage()
     return msg;\r
 }\r
 \r
-NSTopicList * NSProviderGetTopics(char *consumerId)\r
+NSTopics * NSProviderGetConsumerTopics(char *consumerId)\r
 {\r
-    NS_LOG(DEBUG, "NSProviderGetTopics - IN");\r
+    NS_LOG(DEBUG, "NSProviderGetConsumerTopics - IN");\r
     pthread_mutex_lock(&nsInitMutex);\r
 \r
-    if(consumerId == NULL)\r
-    {\r
-        NS_LOG(DEBUG, "Get all the topics registered by user");\r
-    }\r
+    //TODO implement get subscribed topics for consumer\r
+\r
+    pthread_mutex_unlock(&nsInitMutex);\r
+    NS_LOG(DEBUG, "NSProviderGetConsumerTopics - OUT");\r
+\r
+    return NULL;\r
+}\r
+\r
+NSTopics * NSProviderGetTopics()\r
+{\r
+    NS_LOG(DEBUG, "NSProviderGetTopics - IN");\r
+    pthread_mutex_lock(&nsInitMutex);\r
 \r
-    NSTopicList * topicList = NSInitializeTopicList();\r
-    //TODO: copy topic list\r
+    //TODO implement get registered topics for consumer\r
 \r
     pthread_mutex_unlock(&nsInitMutex);\r
     NS_LOG(DEBUG, "NSProviderGetTopics - OUT");\r
 \r
-    return topicList;\r
+    return NULL;\r
 }\r
 \r
-NSResult NSProviderRegisterTopics(NSTopicList *topicList)\r
+NSResult NSProviderAddTopic(char *topicName)\r
 {\r
-    NS_LOG(DEBUG, "NSProviderSetTopics - IN");\r
+    NS_LOG(DEBUG, "NSProviderAddTopics - IN");\r
     pthread_mutex_lock(&nsInitMutex);\r
 \r
-    NSPushQueue(TOPIC_SCHEDULER, TASK_REGISTER_TOPICS, consumerTopicList);\r
+    NSPushQueue(TOPIC_SCHEDULER, TASK_ADD_TOPIC, topicName);\r
 \r
     pthread_mutex_unlock(&nsInitMutex);\r
-    NS_LOG(DEBUG, "NSProviderSetTopics - OUT");\r
+    NS_LOG(DEBUG, "NSProviderAddTopics - OUT");\r
     return NS_OK;\r
 }\r
 \r
-NSResult NSProviderRecommendTopics(char* consumerId, NSTopicList *topicList)\r
+NSResult NSProviderDeleteTopic(char *topicName)\r
 {\r
-    NS_LOG(DEBUG, "NSProviderRecommendTopics - IN");\r
+    NS_LOG(DEBUG, "NSProviderDeleteTopics - IN");\r
     pthread_mutex_lock(&nsInitMutex);\r
 \r
-    if(consumerId == NULL)\r
+    NSPushQueue(TOPIC_SCHEDULER, TASK_DELETE_TOPIC, topicName);\r
+\r
+    pthread_mutex_unlock(&nsInitMutex);\r
+    NS_LOG(DEBUG, "NSProviderDeleteTopics - OUT");\r
+    return NS_OK;\r
+}\r
+\r
+NSResult NSProviderSelectTopic(char *consumerId, char *topicName)\r
+{\r
+    NS_LOG(DEBUG, "NSProviderSelectTopics - IN");\r
+    pthread_mutex_lock(&nsInitMutex);\r
+\r
+    if(!consumerId)\r
     {\r
         NS_LOG(DEBUG, "consumer id should be set for topic subscription");\r
         return NS_FAIL;\r
     }\r
 \r
-    NSPushQueue(TOPIC_SCHEDULER, TASK_SUBSCRIBE_TOPICS, topicList);\r
+    //TODO: add consumerId to task struct\r
+    NSPushQueue(TOPIC_SCHEDULER, TASK_SUBSCRIBE_TOPIC, topicName);\r
+\r
+    pthread_mutex_unlock(&nsInitMutex);\r
+    NS_LOG(DEBUG, "NSProviderSelectTopics - OUT");\r
+    return NS_OK;\r
+}\r
+\r
+NSResult NSProviderUnselectTopic(char *consumerId, char *topicName)\r
+{\r
+    NS_LOG(DEBUG, "NSProviderUnselectTopics - IN");\r
+    pthread_mutex_lock(&nsInitMutex);\r
+\r
+    if(!consumerId)\r
+    {\r
+        NS_LOG(DEBUG, "consumer id should be set for topic subscription");\r
+        return NS_FAIL;\r
+    }\r
+    \r
+    //TODO: add consumerId to task struct\r
+    NSPushQueue(TOPIC_SCHEDULER, TASK_UNSUBSCRIBE_TOPIC, topicName);\r
 \r
     pthread_mutex_unlock(&nsInitMutex);\r
-    NS_LOG(DEBUG, "NSProviderRecommendTopics - OUT");\r
+    NS_LOG(DEBUG, "NSProviderUnselectTopics - OUT");\r
     return NS_OK;\r
 }\r
 \r
index 7f0af95..ccc76b4 100644 (file)
@@ -208,7 +208,7 @@ OCEntityHandlerResult NSEntityHandlerTopicCb(OCEntityHandlerFlag flag,
 \r
             // Send topic notice message(id = TOPIC) to the consumer \r
             // which requests to post.\r
-            NSPushQueue(TOPIC_SCHEDULER, TASK_SUBSCRIBE_TOPICS,\r
+            NSPushQueue(TOPIC_SCHEDULER, TASK_SUBSCRIBE_TOPIC,\r
                     NSCopyOCEntityHandlerRequest(entityHandlerRequest));\r
 \r
             ehResult = OC_EH_OK;\r
index 8c350a8..f30df90 100644 (file)
@@ -377,20 +377,28 @@ void * NSTopicSchedule(void * ptr)
                     NS_LOG(DEBUG, "CASE TASK_SEND_TOPICS : ");\r
                     NSSendTopicList((OCEntityHandlerRequest*) node->taskData);\r
                     break;\r
-                case TASK_SUBSCRIBE_TOPICS:\r
-                    NS_LOG(DEBUG, "CASE TASK_SUBSCRIBE_TOPICS : ");\r
+                case TASK_SUBSCRIBE_TOPIC:\r
+                    //TODO: modify subscription with single topic\r
+                    NS_LOG(DEBUG, "CASE TASK_SUBSCRIBE_TOPIC : ");\r
                     NSTopicList * topicList = (NSTopicList *) node->taskData;\r
                     NSSubscribeTopicList(topicList->consumerId, topicList);\r
                     NSSendTopicUpdationToConsumer(topicList->consumerId);\r
                     // TODO : free NSTopic\r
                     break;\r
-                case TASK_REGISTER_TOPICS:\r
-                    NS_LOG(DEBUG, "CASE TASK_REGISTER_TOPICS : ");\r
+                case TASK_UNSUBSCRIBE_TOPIC:\r
+                    // TODO: implement\r
+                    break;\r
+                case TASK_ADD_TOPIC:\r
+                    // TODO: modify to add single topic\r
+                    NS_LOG(DEBUG, "CASE TASK_ADD_TOPIC : ");\r
                     NSTopicList * registeredTopicList = (NSTopicList *) node->taskData;\r
                     NSRegisterTopicList(registeredTopicList);\r
                     NSSendTopicUpdation();\r
                     // TODO : free NSTopic\r
                     break;\r
+                case TASK_DELETE_TOPIC:\r
+                    // TODO: implement \r
+                    break;\r
                 default:\r
                     break;\r
             }\r