1. Modified the Accepted Providers Consumers list to return references
authorabitha.s <abitha.s@samsung.com>
Fri, 26 Aug 2016 11:52:21 +0000 (17:22 +0530)
committerUze Choi <uzchoi@samsung.com>
Mon, 29 Aug 2016 05:52:00 +0000 (05:52 +0000)
2. Added API to setTopic in Message for setting via application

3. Updated Logs

Change-Id: Id3b37c148c3e96d391224ccb5cf75a57c40ced6f
Signed-off-by: abitha.s <abitha.s@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/10965
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Uze Choi <uzchoi@samsung.com>
service/notification/cpp-wrapper/common/NSMessage.cpp
service/notification/cpp-wrapper/common/NSMessage.h
service/notification/cpp-wrapper/consumer/inc/NSConsumerService.h
service/notification/cpp-wrapper/consumer/src/NSConsumerService.cpp
service/notification/cpp-wrapper/examples/linux/notificationserviceconsumer.cpp
service/notification/cpp-wrapper/examples/linux/notificationserviceprovider.cpp
service/notification/cpp-wrapper/provider/inc/NSProviderService.h
service/notification/cpp-wrapper/provider/src/NSProviderService.cpp

index 8556295..37fb1ad 100755 (executable)
@@ -155,5 +155,10 @@ namespace OIC
         {\r
             m_mediaContents = mediaContents;\r
         }\r
+\r
+        void NSMessage::setTopic(const std::string &topic)\r
+        {\r
+            m_topic = topic;\r
+        }\r
     }\r
 }\r
index f9dab49..3c4d8c6 100755 (executable)
@@ -187,6 +187,13 @@ namespace OIC
                      */\r
                 std::string getTopic() const;\r
 \r
+                /**\r
+                     * This method is for setting Topic for the Notification service Message.\r
+                     *\r
+                     * @return Topic as string.\r
+                     */\r
+                void setTopic(const std::string &topic);\r
+\r
             private:\r
                 uint64_t m_messageId;\r
                 std::string m_providerId;\r
index 36e2781..0b1c197 100755 (executable)
@@ -129,7 +129,7 @@ namespace OIC
                       *  get list of providers acceted.\r
                       * @return m_acceptedProviders -list of accepted providers\r
                       */\r
-                std::list<NSProvider *> getAcceptedProviders();\r
+                std::list<NSProvider *> &getAcceptedProviders();\r
 \r
             private :\r
                 ConsumerConfig m_config;\r
index fbc4e12..f3ee775 100755 (executable)
@@ -35,7 +35,10 @@ namespace OIC
             NS_LOG(DEBUG, "onNSProviderDiscovered - IN");\r
             NSProvider *nsProvider = new NSProvider(provider);\r
             if (NSConsumerService::getInstance()->getConsumerConfig().m_discoverCb != NULL)\r
+            {\r
+                NS_LOG(DEBUG, "initiating the callback");\r
                 NSConsumerService::getInstance()->getConsumerConfig().m_discoverCb(nsProvider);\r
+            }\r
             delete nsProvider;\r
             NS_LOG(DEBUG, "onNSProviderDiscovered - OUT");\r
         }\r
@@ -52,13 +55,19 @@ namespace OIC
             {\r
                 NSConsumerService::getInstance()->getAcceptedProviders().push_back(nsProvider);\r
                 if (changeCallback != NULL)\r
+                {\r
+                    NS_LOG(DEBUG, "initiating the callback for Response : ALLOW");\r
                     changeCallback(nsProvider, (NSResponse) response);\r
+                }\r
             }\r
             else if (response == NS_DENY)\r
             {\r
                 NSConsumerService::getInstance()->getAcceptedProviders().remove(nsProvider);\r
                 if (changeCallback != NULL)\r
+                {\r
+                    NS_LOG(DEBUG, "initiating the callback for Response : NS_DENY");\r
                     changeCallback(nsProvider, (NSResponse) response);\r
+                }\r
                 delete nsProvider;\r
             }\r
             else if (response == NS_TOPIC)\r
@@ -67,8 +76,15 @@ namespace OIC
                                               nsProvider->getProviderId());\r
                 if (oldProvider != nullptr)\r
                 {\r
+                    NS_LOG(DEBUG, "Provider with same Id exists. updating the Topics data");\r
+                    nsProvider->setListener(oldProvider->getMessageReceivedCb(), oldProvider->getSyncInfoReceivedCb());\r
                     NSConsumerService::getInstance()->getAcceptedProviders().remove(oldProvider);\r
                     NSConsumerService::getInstance()->getAcceptedProviders().push_back(nsProvider);\r
+                    if (changeCallback != NULL)\r
+                    {\r
+                        NS_LOG(DEBUG, "initiating the callback for Response : NS_TOPIC");\r
+                        changeCallback(nsProvider, (NSResponse) response);\r
+                    }\r
                     delete oldProvider;\r
                 }\r
             }\r
@@ -83,9 +99,11 @@ namespace OIC
             {\r
                 if (it->getProviderId() == nsMessage->getProviderId())\r
                 {\r
+                    NS_LOG(DEBUG, "Found Provider with given ID");\r
                     auto callback = it->getMessageReceivedCb();\r
                     if (callback != NULL)\r
                     {\r
+                        NS_LOG(DEBUG, "initiating the callback for messageReceived");\r
                         callback(nsMessage);\r
                     }\r
                     break;\r
@@ -103,9 +121,11 @@ namespace OIC
             {\r
                 if (it->getProviderId() == nsSyncInfo->getProviderId())\r
                 {\r
+                    NS_LOG(DEBUG, "Found Provider with given ID");\r
                     auto callback = it->getSyncInfoReceivedCb();\r
                     if (callback != NULL)\r
                     {\r
+                        NS_LOG(DEBUG, "initiating the callback for SyncInfoReceived");\r
                         callback(nsSyncInfo);\r
                     }\r
                     break;\r
@@ -184,8 +204,12 @@ namespace OIC
             for (auto it : getAcceptedProviders())\r
             {\r
                 if (it->getProviderId() == id)\r
+                {\r
+                    NS_LOG(DEBUG, "getProvider : Found Provider with given ID");\r
                     return it;\r
+                }\r
             }\r
+            NS_LOG(DEBUG, "getProvider : Not Found Provider with given ID");\r
             return NULL;\r
         }\r
 \r
@@ -206,7 +230,7 @@ namespace OIC
             return m_config;\r
         }\r
 \r
-        std::list<NSProvider *> NSConsumerService::getAcceptedProviders()\r
+        std::list<NSProvider *>& NSConsumerService::getAcceptedProviders()\r
         {\r
             return m_acceptedProviders;\r
         }\r
index effe625..3b7e48f 100755 (executable)
@@ -42,6 +42,9 @@ void onNotificationPostedCb(OIC::Service::NSMessage *notification)
     std::cout << "content : " <<  notification->getContentText() << std::endl;\r
     std::cout << "source : " <<  notification->getSourceName() << std::endl;\r
     std::cout << "topic : " <<  notification->getTopic() << std::endl;\r
+\r
+    auto provider = NSConsumerService::getInstance()->getProvider(notification->getProviderId());\r
+    provider->SendSyncInfo(notification->getMessageId(), OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_READ);\r
 }\r
 \r
 void onNotificationSyncCb(OIC::Service::NSSyncInfo *sync)\r
@@ -75,49 +78,6 @@ void onProviderChangedCb(OIC::Service::NSProvider *provider, OIC::Service::NSRes
             std::cout << "Topic Name: " << it->getTopicName() << std::endl;\r
             std::cout << "Topic state: " << (int) it->getState() << std::endl;\r
         }\r
-\r
-        std::cout << "7. Get Topics" << std::endl;\r
-        std::cout << "8. Select Topics" << std::endl;\r
-        std::cout << "0. Exit" << std::endl;\r
-        std::cout << "input: " << std::endl;\r
-\r
-        int num = 0;\r
-        std::cin >> num;\r
-        switch (num)\r
-        {\r
-            case 7:\r
-                {\r
-                    std::cout <<  "getInterestTopics" << std::endl;\r
-                    if (provider != nullptr)\r
-                    {\r
-                        auto topicList = provider->getTopicList();\r
-                        if (topicList != nullptr)\r
-                            for (auto it : topicList->getTopicsList())\r
-                            {\r
-                                std::cout << "Topic Name: " << it->getTopicName() << std::endl;\r
-                                std::cout << "Topic state: " << (int) it->getState() << std::endl;\r
-                            }\r
-                    }\r
-                }\r
-                break;\r
-            case 8:\r
-                {\r
-                    std::cout <<  "selectInterestTopics" << std::endl;\r
-                    if (provider != nullptr)\r
-                    {\r
-                        NSTopicsList *topicList = new NSTopicsList();\r
-                        topicList->addTopic("OCF_TOPIC1", NSTopic::NSTopicState::UNSUBSCRIBED);\r
-                        topicList->addTopic("OCF_TOPIC2", NSTopic::NSTopicState::UNSUBSCRIBED);\r
-                        topicList->addTopic("OCF_TOPIC3", NSTopic::NSTopicState::UNSUBSCRIBED);\r
-\r
-                        provider->selectInterestTopics(topicList);\r
-                    }\r
-                }\r
-                break;\r
-            case 0:\r
-            default:\r
-                break;\r
-        }\r
     }\r
 }\r
 \r
index ca2a37d..8f7e637 100755 (executable)
@@ -20,6 +20,7 @@
 \r
 #include <iostream>\r
 #include <stdlib.h>\r
+#include <cstdint>\r
 #include "NSCommon.h"\r
 #include "NSProviderService.h"\r
 #include "NSUtils.h"\r
@@ -35,6 +36,7 @@
 using namespace std;\r
 using namespace OIC::Service;\r
 std::string mainConsumer;\r
+uint64_t mainMessageId;\r
 \r
 extern char *strdup(const char *s);\r
 \r
@@ -168,6 +170,8 @@ int main()
                     msg->setTitle(title.c_str());\r
                     msg->setContentText(body.c_str());\r
                     msg->setSourceName("OCF");\r
+                    msg->setTopic(topic);\r
+                    mainMessageId = msg->getMessageId();\r
 \r
                     NSProviderService::getInstance()->SendMessage(msg);\r
 \r
@@ -176,7 +180,7 @@ int main()
             case 4:\r
                 {\r
                     std::cout <<  "SendSyncInfo" << std::endl;\r
-                    NSProviderService::getInstance()->SendSyncInfo(1,\r
+                    NSProviderService::getInstance()->SendSyncInfo(mainMessageId,\r
                             OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_READ);\r
                     break;\r
                 }\r
index 75ca9a2..06326dc 100755 (executable)
@@ -176,7 +176,7 @@ namespace OIC
                       *  get list of Consumers accepted.\r
                       * @return m_acceptedConsumers -list of accepted Consumers\r
                       */\r
-                std::list<NSConsumer *> getAcceptedConsumers();\r
+                std::list<NSConsumer *> &getAcceptedConsumers();\r
 \r
             private :\r
                 ProviderConfig m_config;\r
index 0df46f7..c2e2855 100755 (executable)
@@ -37,9 +37,12 @@ namespace OIC
         {\r
             NS_LOG(DEBUG, "onConsumerSubscribedCallback - IN");\r
             NSConsumer *nsConsumer = new NSConsumer(consumer);\r
+            NSProviderService::getInstance()->getAcceptedConsumers().push_back(nsConsumer);\r
             if (NSProviderService::getInstance()->getProviderConfig().m_subscribeRequestCb != NULL)\r
+            {\r
+                NS_LOG(DEBUG, "initiating the callback");\r
                 NSProviderService::getInstance()->getProviderConfig().m_subscribeRequestCb(nsConsumer);\r
-            NSProviderService::getInstance()->getAcceptedConsumers().push_back(nsConsumer);\r
+            }\r
             NS_LOG(DEBUG, "onConsumerSubscribedCallback - OUT");\r
         }\r
 \r
@@ -48,7 +51,10 @@ namespace OIC
             NS_LOG(DEBUG, "onMessageSynchronizedCallback - IN");\r
             NSSyncInfo *nsSyncInfo = new NSSyncInfo(syncInfo);\r
             if (NSProviderService::getInstance()->getProviderConfig().m_syncInfoCb != NULL)\r
+            {\r
+                NS_LOG(DEBUG, "initiating the callback");\r
                 NSProviderService::getInstance()->getProviderConfig().m_syncInfoCb(nsSyncInfo);\r
+            }\r
             delete nsSyncInfo;\r
             NS_LOG(DEBUG, "onMessageSynchronizedCallback - OUT");\r
         }\r
@@ -64,6 +70,7 @@ namespace OIC
             nsMsg->ttl = msg->getTTL();\r
             nsMsg->title = OICStrdup(msg->getTitle().c_str());\r
             nsMsg->contentText = OICStrdup(msg->getContentText().c_str());\r
+            nsMsg->topic = OICStrdup(msg->getTopic().c_str());\r
 \r
             nsMsg->mediaContents = new ::NSMediaContents;\r
             if (msg->getMediaContents() != nullptr)\r
@@ -183,8 +190,12 @@ namespace OIC
             for (auto it : getAcceptedConsumers())\r
             {\r
                 if (it->getConsumerId() == id)\r
+                {\r
+                    NS_LOG(DEBUG, "getConsumer : Found Consumer with given ID");\r
                     return it;\r
+                }\r
             }\r
+            NS_LOG(DEBUG, "getConsumer : Not Found Consumer with given ID");\r
             return NULL;\r
         }\r
 \r
@@ -219,7 +230,7 @@ namespace OIC
             return m_config;\r
         }\r
 \r
-        std::list<NSConsumer *> NSProviderService::getAcceptedConsumers()\r
+        std::list<NSConsumer *>& NSProviderService::getAcceptedConsumers()\r
         {\r
             return m_acceptedConsumers;\r
         }\r