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>
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
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;
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
\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
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