Updated C++ wrapper for new API Changes
authorabitha.s <abitha.s@samsung.com>
Sat, 3 Sep 2016 07:08:39 +0000 (12:38 +0530)
committerUze Choi <uzchoi@samsung.com>
Sat, 3 Sep 2016 15:31:16 +0000 (15:31 +0000)
1. Modified the Consumer and Provider design and callbacks mechanism for adding subscribtion controlability .
2. Updated the API name changes.
3. Refracted the code
4. Added Provider State and Policy Info for Provider Object.
5. Added copy constructors for Topic and Provider object
6. Added Doxygen comments
7. Updated the Sample application to use Updated APIs

Change-Id: If071b098a9dd836c335d1d621e2e561845b593e6
Signed-off-by: abitha.s <abitha.s@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/11353
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Uze Choi <uzchoi@samsung.com>
Tested-by: Uze Choi <uzchoi@samsung.com>
18 files changed:
service/notification/SConscript
service/notification/cpp-wrapper/SConscript
service/notification/cpp-wrapper/common/NSMessage.cpp
service/notification/cpp-wrapper/common/NSMessage.h
service/notification/cpp-wrapper/common/NSSyncInfo.cpp
service/notification/cpp-wrapper/common/NSTopicsList.cpp
service/notification/cpp-wrapper/common/NSTopicsList.h
service/notification/cpp-wrapper/common/NSUtils.h
service/notification/cpp-wrapper/consumer/inc/NSConsumerService.h
service/notification/cpp-wrapper/consumer/inc/NSProvider.h
service/notification/cpp-wrapper/consumer/src/NSConsumerService.cpp
service/notification/cpp-wrapper/consumer/src/NSProvider.cpp
service/notification/cpp-wrapper/examples/linux/notificationserviceconsumer.cpp
service/notification/cpp-wrapper/examples/linux/notificationserviceprovider.cpp
service/notification/cpp-wrapper/provider/inc/NSConsumer.h
service/notification/cpp-wrapper/provider/inc/NSProviderService.h
service/notification/cpp-wrapper/provider/src/NSConsumer.cpp
service/notification/cpp-wrapper/provider/src/NSProviderService.cpp

index 4ec3d60..ab866e8 100755 (executable)
@@ -124,4 +124,4 @@ if target_os == 'android':
     SConscript('android/SConscript')
 
 # Go to build c++ wrapper
-#SConscript('cpp-wrapper/SConscript')
+SConscript('cpp-wrapper/SConscript')
index 0cc495f..98c2c3d 100755 (executable)
@@ -31,4 +31,5 @@ SConscript('consumer/SConscript')
 SConscript('examples/linux/SConscript')
 
 # Go to build Unit test
-#SConscript('unittest/SConscript')
+#if target_os == 'linux':
+#    SConscript('unittest/SConscript')
index 28780e0..675a01c 100755 (executable)
@@ -37,7 +37,7 @@ namespace OIC
             if (msg != nullptr)\r
             {\r
                 m_messageId = msg->messageId;\r
-                m_providerId = msg->providerId;\r
+                m_providerId.assign(msg->providerId, NS_UTILS_UUID_STRING_SIZE - 1);\r
 \r
                 m_type = (NSMessageType)msg->type;\r
 \r
@@ -65,6 +65,45 @@ namespace OIC
             }\r
         }\r
 \r
+        NSMessage::NSMessage(const NSMessage &msg)\r
+        {\r
+            m_messageId = msg.getMessageId();\r
+            m_providerId = msg.getProviderId();\r
+\r
+            m_type = msg.getType();\r
+            m_time = msg.getTime();\r
+            m_ttl = msg.getTTL();\r
+            m_title = msg.getTitle();\r
+            m_contentText = msg.getContentText();\r
+            m_sourceName = msg.getSourceName();\r
+\r
+            if (msg.getMediaContents() != nullptr)\r
+                m_mediaContents = new NSMediaContents(msg.getMediaContents()->getIconImage());\r
+            else\r
+                m_mediaContents = new NSMediaContents();\r
+            m_topic = msg.getTopic();\r
+        }\r
+\r
+        NSMessage &NSMessage::operator=(const NSMessage &msg)\r
+        {\r
+            m_messageId = msg.getMessageId();\r
+            m_providerId = msg.getProviderId();\r
+\r
+            m_type = msg.getType();\r
+            m_time = msg.getTime();\r
+            m_ttl = msg.getTTL();\r
+            m_title = msg.getTitle();\r
+            m_contentText = msg.getContentText();\r
+            m_sourceName = msg.getSourceName();\r
+\r
+            if (msg.getMediaContents() != nullptr)\r
+                m_mediaContents = new NSMediaContents(msg.getMediaContents()->getIconImage());\r
+            else\r
+                m_mediaContents = new NSMediaContents();\r
+            m_topic = msg.getTopic();\r
+            return *this;\r
+        }\r
+\r
         NSMessage::~NSMessage()\r
         {\r
             if (m_mediaContents != nullptr)\r
index 3c4d8c6..f29c607 100755 (executable)
@@ -64,6 +64,21 @@ namespace OIC
                 NSMessage(::NSMessage *msg);\r
 \r
                 /**\r
+                     * Copy Constructor of NSMessage.\r
+                     *\r
+                     * @param msg - NSMessage to initialize.\r
+                     */\r
+                NSMessage(const NSMessage &msg);\r
+\r
+                /**\r
+                     * Copy assignment operator of NSMessage.\r
+                     *\r
+                     * @param msg -  NSMessage to initialize.\r
+                     * @return NSMessage object reference\r
+                     */\r
+                NSMessage &operator=(const NSMessage &msg);\r
+\r
+                /**\r
                         * Destructor of NSMessage.\r
                         */\r
                 ~NSMessage();\r
@@ -134,7 +149,7 @@ namespace OIC
                 /**\r
                      * This method is for setting Title from the Notification service Message.\r
                      *\r
-                     * @param Title as string.\r
+                     * @param title as string.\r
                      */\r
                 void setTitle(const std::string &title);\r
 \r
@@ -148,7 +163,7 @@ namespace OIC
                 /**\r
                      * This method is for setting contentText from the Notification service Message.\r
                      *\r
-                     * @param contentText as string.\r
+                     * @param contextText as string.\r
                      */\r
                 void setContentText(const std::string &contextText);\r
 \r
index 5b9ab58..5f6a114 100755 (executable)
@@ -33,7 +33,7 @@ namespace OIC
             if (syncInfo != nullptr)\r
             {\r
                 m_messageId = syncInfo->messageId;\r
-                m_providerId = syncInfo->providerId;\r
+                m_providerId.assign(syncInfo->providerId, NS_UTILS_UUID_STRING_SIZE - 1);\r
                 m_state = (NSSyncType) syncInfo->state;\r
             }\r
         }\r
index 12abc81..5178b6c 100755 (executable)
@@ -37,6 +37,22 @@ namespace OIC
             }
 
         }
+        NSTopicsList::NSTopicsList(const NSTopicsList &topicsList)
+        {
+            for (auto it : topicsList.getTopicsList())
+            {
+                addTopic(it->getTopicName(), it->getState());
+            }
+        }
+
+        NSTopicsList &NSTopicsList::operator=(const NSTopicsList &topicsList)
+        {
+            for (auto it : topicsList.getTopicsList())
+            {
+                addTopic(it->getTopicName(), it->getState());
+            }
+            return *this;
+        }
 
         NSTopicsList::~NSTopicsList()
         {
@@ -61,7 +77,7 @@ namespace OIC
             }
         }
 
-        std::list<NSTopic *> NSTopicsList::getTopicsList()
+        std::list<NSTopic *> NSTopicsList::getTopicsList() const
         {
             return m_topicsList;
         }
index 9274826..f868bd2 100755 (executable)
@@ -56,6 +56,21 @@ namespace OIC
                 NSTopicsList(::NSTopicLL *topics);
 
                 /**
+                     * Copy Constructor of NSTopicsList.
+                     *
+                     * @param topicsList - NSTopicsList to initialize.
+                     */
+                NSTopicsList(const NSTopicsList &topicsList);
+
+                /**
+                     * Copy assignment operator of NSTopicsList.
+                     *
+                     * @param topicsList -  NSTopicsList to initialize.
+                     * @return NSTopicsList object reference
+                     */
+                NSTopicsList &operator=(const NSTopicsList &topicsList);
+
+                /**
                      * Destructor of NSTopicsList.
                      */
                 ~NSTopicsList();
@@ -80,7 +95,7 @@ namespace OIC
                      *
                      * @return topic as NSTopics Linked list.
                      */
-                std::list<NSTopic *> getTopicsList();
+                std::list<NSTopic *> getTopicsList() const;
 
             private:
                 std::list<NSTopic *> m_topicsList;
index 99c0c3d..d8016b7 100755 (executable)
@@ -27,6 +27,7 @@
 #ifndef _NS_UTILS_H_
 #define _NS_UTILS_H_
 
+/** NS_UTILS_UUID_STRING_SIZE - UUID string size*/
 #define NS_UTILS_UUID_STRING_SIZE 37
 
 namespace OIC
@@ -43,13 +44,15 @@ namespace OIC
         };
 
         /**
-             * NSResponse code of notification service
+             * NSProviderState of notification service
              */
-        enum class NSResponse
+        enum class NSProviderState
         {
             ALLOW = 1,
             DENY = 2,
             TOPIC = 3,
+            DISCOVERED = 11,
+            STOPPED = 12
         };
     }
 }
index 0b1c197..f60dd57 100755 (executable)
@@ -53,26 +53,6 @@ namespace OIC
                 typedef void (*ProviderDiscoveredCallback)(NSProvider *);\r
 \r
                 /**\r
-                     * Invoked when the provider state is changed\r
-                     * @param[in] provider  Provider which has the notification resource\r
-                     * @param[in] response  Response which has the provider state\r
-                     */\r
-                typedef void (* ProviderChangedCallback)(NSProvider *, NSResponse);\r
-\r
-                /**\r
-                     * @struct   ConsumerConfig\r
-                     * @brief Consumer sets this callback function configuration for registering callbacks\r
-                     *\r
-                     */\r
-                typedef struct\r
-                {\r
-                    /** m_discoverCb - ProviderDiscoveredCallback callback listener.*/\r
-                    ProviderDiscoveredCallback m_discoverCb;\r
-                    /** m_changedCb - ProviderChangedCallback callback listener.*/\r
-                    ProviderChangedCallback m_changedCb;\r
-                } ConsumerConfig;\r
-\r
-                /**\r
                       * API for getting the Instance of NSConsumerService class\r
                       *\r
                       * @return Instance of the "NSConsumerService" class\r
@@ -81,27 +61,32 @@ namespace OIC
 \r
                 /**\r
                       * Initialize notification service for consumer\r
-                      * @param[in]  config   ConsumerConfig Callback function pointers to onDiscoverd,\r
-                      * OnAccepted, OnMessageReceived and OnSyncInfoReceived functions\r
+                      * @param providerDiscovered Callback function pointers to ProviderDiscoveredCallback,\r
                       */\r
-                void Start(ConsumerConfig config);\r
+                void start(ProviderDiscoveredCallback providerDiscovered);\r
 \r
                 /**\r
                       * Terminate notification service for consumer\r
                       */\r
-                void Stop();\r
+                void stop();\r
 \r
                 /**\r
                      * Request to discover to remote address as parameter.\r
-                     * @param[in]  server address combined with IP address and port number using delimiter :\r
+                     * @param[in]  serverAddress combined with IP address and port number using delimiter :\r
                      * @return  NSResult code of Consumer Service\r
                      */\r
-                NSResult EnableRemoteService(const std::string &serverAddress);\r
+                NSResult enableRemoteService(const std::string &serverAddress);\r
 \r
                 /**\r
                       * Request discovery manually\r
                       */\r
-                void RescanProvider();\r
+                void rescanProvider();\r
+\r
+                /**\r
+                      *  get the callback for ProviderDiscovered\r
+                      * @return ProviderDiscoveredCallback callbak set\r
+                      */\r
+                ProviderDiscoveredCallback getProviderDiscoveredCb();\r
 \r
                 /**\r
                       *  request to get NSProvider pointer\r
@@ -111,20 +96,6 @@ namespace OIC
                       */\r
                 NSProvider *getProvider(const std::string &id);\r
 \r
-\r
-                /**\r
-                     * Request NSMessage that is matched by message id\r
-                     * @param[in]  messageId  the id of message that user wants to get\r
-                     * @return NSMessage\r
-                     */\r
-                NSMessage *getMessage(uint64_t messageId);\r
-\r
-                /**\r
-                      *  get consumer config values\r
-                      * @return ConsumerConfig callbaks set\r
-                      */\r
-                ConsumerConfig getConsumerConfig();\r
-\r
                 /**\r
                       *  get list of providers acceted.\r
                       * @return m_acceptedProviders -list of accepted providers\r
@@ -132,7 +103,7 @@ namespace OIC
                 std::list<NSProvider *> &getAcceptedProviders();\r
 \r
             private :\r
-                ConsumerConfig m_config;\r
+                ProviderDiscoveredCallback m_providerDiscoveredCb;\r
                 std::list<NSProvider *> m_acceptedProviders;\r
 \r
             private :\r
index a556ae2..06556c2 100755 (executable)
@@ -45,6 +45,13 @@ namespace OIC
         class NSProvider\r
         {\r
             public:\r
+\r
+                /**\r
+                     * Invoked when the provider state is changed\r
+                     * @param[in] providerState  NSProviderState of the notification resource\r
+                     */\r
+                typedef void (* ProviderStateCallback)(NSProviderState);\r
+\r
                 /**\r
                      * Consumer use this callback function to receive notification message from provider\r
                      * synchronization\r
@@ -62,7 +69,8 @@ namespace OIC
                 /**\r
                       * Constructor of NSProvider.\r
                       */\r
-                NSProvider(): m_topicList(new NSTopicsList()), m_messageCb(NULL), m_syncInfoCb(NULL) {}\r
+                NSProvider(): m_topicList(new NSTopicsList()), m_state(NSProviderState::DENY),\r
+                    m_stateCb(NULL), m_messageCb(NULL), m_syncInfoCb(NULL) {}\r
 \r
                 /**\r
                       * Constructor of NSProvider.\r
@@ -70,7 +78,8 @@ namespace OIC
                       * @param providerId - providerId of the Notification.\r
                       */\r
                 NSProvider(const std::string &providerId) : m_providerId(providerId),\r
-                    m_topicList(new NSTopicsList()), m_messageCb(NULL), m_syncInfoCb(NULL) {}\r
+                    m_topicList(new NSTopicsList()), m_state(NSProviderState::DENY),\r
+                    m_stateCb(NULL), m_messageCb(NULL), m_syncInfoCb(NULL)  {}\r
 \r
                 /**\r
                       * Constructor of NSProvider.\r
@@ -79,7 +88,8 @@ namespace OIC
                       * @param topicList - NSTopicsList of interested Topics.\r
                       */\r
                 NSProvider(const std::string &providerId, NSTopicsList *topicList) : m_providerId(\r
-                        providerId), m_topicList(topicList), m_messageCb(NULL), m_syncInfoCb(NULL) {}\r
+                        providerId), m_topicList(topicList), m_state(NSProviderState::DENY),\r
+                    m_stateCb(NULL), m_messageCb(NULL), m_syncInfoCb(NULL)  {}\r
 \r
                 /**\r
                       * Constructor of NSProvider.\r
@@ -88,6 +98,20 @@ namespace OIC
                       */\r
                 NSProvider(::NSProvider *provider);\r
 \r
+                /**\r
+                     * Copy Constructor of NSProvider.\r
+                     *\r
+                     * @param provider - NSProvider to initialize.\r
+                     */\r
+                NSProvider(const NSProvider &provider);\r
+\r
+                /**\r
+                     * Copy assignment operator of NSProvider.\r
+                     *\r
+                     * @param provider -  NSProvider to initialize.\r
+                     * @return NSProvider object reference\r
+                     */\r
+                NSProvider &operator=(const NSProvider &provider);\r
 \r
                 /**\r
                       * Destructor of NSProvider.\r
@@ -109,16 +133,31 @@ namespace OIC
                 NSTopicsList *getTopicList() const;\r
 \r
                 /**\r
+                     * Update Topic list that is wanted to be subscribed from provider\r
+                     *\r
+                     * @param topicList - NSTopicsList of interested Topics.\r
+                     * @return NSResult\r
+                     */\r
+                NSResult updateTopicList(NSTopicsList *topicList);\r
+\r
+                /**\r
+                      * This method is for getting ProviderState from the Notification service provider.\r
+                      *\r
+                      * @return ProviderState as NSProviderState.\r
+                      */\r
+                NSProviderState getProviderState() const;\r
+\r
+                /**\r
                       * This method is for requesting subscription of Notification service.\r
                       *\r
                       */\r
                 void subscribe();\r
 \r
                 /**\r
-                      * This method is for requesting unsubscription of Notification service.\r
+                      * This method is for requesting subscription status from Provider of Notification service.\r
                       *\r
                       */\r
-                void unSubscribe();\r
+                bool isSubscribed();\r
 \r
                 /**\r
                       * This method is for Sending SyncInfo of Notification service.\r
@@ -126,38 +165,53 @@ namespace OIC
                       * @param messageId - id of type message.\r
                       * @param type - NSSyncType of Notification service.\r
                       */\r
-                void SendSyncInfo(uint64_t messageId, NSSyncInfo::NSSyncType type);\r
+                void sendSyncInfo(uint64_t messageId, NSSyncInfo::NSSyncType type);\r
 \r
                 /**\r
                       * This method is for registering for listeners of Notification .\r
                       *\r
+                      * @param stateHandle - ProviderStateCallback callback.\r
                       * @param messageHandle - MessageReceivedCallback callback.\r
                       * @param syncHandle - SyncInfoReceivedCallback callback\r
                       */\r
-                void setListener(MessageReceivedCallback messageHandle,\r
+                void setListener(ProviderStateCallback stateHandle,\r
+                                 MessageReceivedCallback messageHandle,\r
                                  SyncInfoReceivedCallback syncHandle);\r
 \r
                 /**\r
-                     * Select Topic list that is wanted to subscribe from provider\r
-                     *\r
-                     * @param topicList - NSTopicsList of interested Topics.\r
-                     * @return NSResult\r
-                     */\r
-                NSResult selectInterestTopics(NSTopicsList *topicList);\r
+                      * This method is for getting the registered cb of Provider State received.\r
+                      *\r
+                      * @return stateCb - ProviderStateCallback .\r
+                      */\r
+                ProviderStateCallback getProviderStateReceivedCb() const;\r
 \r
                 /**\r
                       * This method is for getting the registered cb of Notification message received.\r
                       *\r
                       * @return messageCb - MessageReceivedCallback .\r
                       */\r
-                MessageReceivedCallback getMessageReceivedCb();\r
+                MessageReceivedCallback getMessageReceivedCb() const;\r
 \r
                 /**\r
                       * This method is for getting the registered cb of Notification SyncInfo received.\r
                       *\r
                       * @return syncInfoCb - SyncInfoReceivedCallback .\r
                       */\r
-                SyncInfoReceivedCallback getSyncInfoReceivedCb();\r
+                SyncInfoReceivedCallback getSyncInfoReceivedCb() const;\r
+\r
+                /**\r
+                      * This method is for setting NSTopic List for the Notification service provider.\r
+                      *\r
+                      * @param topicsList  as NSTopicsList pointer.\r
+                      */\r
+                void setTopicList(NSTopicsList *topicsList);\r
+\r
+                /**\r
+                     * This method is for setting ProviderState for the Notification service provider.\r
+                     *\r
+                     * @param providerState as NSProviderState.\r
+                     */\r
+                void setProviderState(const NSProviderState &providerState);\r
 \r
             private:\r
                 ::NSProvider *getNSProvider();\r
@@ -165,9 +219,11 @@ namespace OIC
             private:\r
                 std::string m_providerId;\r
                 NSTopicsList *m_topicList;\r
+                NSProviderState m_state;\r
+\r
+                ProviderStateCallback m_stateCb;\r
                 MessageReceivedCallback m_messageCb;\r
                 SyncInfoReceivedCallback m_syncInfoCb;\r
-\r
         };\r
     }\r
 }\r
index 823047f..deb31d9 100755 (executable)
@@ -30,71 +30,97 @@ namespace OIC
 {\r
     namespace Service\r
     {\r
-        void onNSProviderDiscovered(::NSProvider *provider)\r
+        void onProviderStateReceived(::NSProvider *provider, ::NSProviderState state)\r
         {\r
-            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
-\r
-        void onNSProviderChanged(::NSProvider *provider, ::NSProviderState response)\r
-        {\r
-            NS_LOG(DEBUG, "onNSProviderChanged - IN");\r
+            NS_LOG(DEBUG, "onNSProviderStateChanged - IN");\r
             NS_LOG_V(DEBUG, "provider Id : %s", provider->providerId);\r
-            NS_LOG_V(DEBUG, "response : %d", (int)response);\r
+            NS_LOG_V(DEBUG, "state : %d", (int)state);\r
 \r
             NSProvider *nsProvider = new NSProvider(provider);\r
-            auto changeCallback = NSConsumerService::getInstance()->getConsumerConfig().m_changedCb;\r
-            if (response == NS_ALLOW)\r
+            NSProvider *oldProvider = NSConsumerService::getInstance()->getProvider(\r
+                                          nsProvider->getProviderId());\r
+\r
+            if (oldProvider == nullptr)\r
             {\r
-                NSConsumerService::getInstance()->getAcceptedProviders().push_back(nsProvider);\r
-                if (changeCallback != NULL)\r
+                NS_LOG(DEBUG, "Provider with same Id do not exist. updating Data for New Provider");\r
+                auto discoveredCallback = NSConsumerService::getInstance()->getProviderDiscoveredCb();\r
+                nsProvider->setProviderState((NSProviderState)state);\r
+                auto topicLL = NSConsumerGetTopicList(provider->providerId);\r
+                nsProvider->setTopicList(new NSTopicsList(topicLL));\r
+                if (state == NS_DISCOVERED)\r
                 {\r
-                    NS_LOG(DEBUG, "initiating the callback for Response : ALLOW");\r
-                    changeCallback(nsProvider, (NSResponse) response);\r
+                    if (discoveredCallback != NULL)\r
+                    {\r
+                        NS_LOG(DEBUG, "initiating the Discovered callback : NS_DISCOVERED, policy false");\r
+                        discoveredCallback(nsProvider);\r
+                    }\r
                 }\r
-            }\r
-            else if (response == NS_DENY)\r
-            {\r
-                NSConsumerService::getInstance()->getAcceptedProviders().remove(nsProvider);\r
-                if (changeCallback != NULL)\r
+                else if (state == NS_ALLOW)\r
                 {\r
-                    NS_LOG(DEBUG, "initiating the callback for Response : NS_DENY");\r
-                    changeCallback(nsProvider, (NSResponse) response);\r
+                    if (discoveredCallback != NULL)\r
+                    {\r
+                        NS_LOG(DEBUG, "initiating the Discovered callback : NS_ALLOW, policy true");\r
+                        discoveredCallback(nsProvider);\r
+                    }\r
                 }\r
-                delete nsProvider;\r
+                NSConsumerService::getInstance()->getAcceptedProviders().push_back(nsProvider);\r
             }\r
-            else if (response == NS_TOPIC)\r
+            else\r
             {\r
-                NSProvider *oldProvider = NSConsumerService::getInstance()->getProvider(\r
-                                              nsProvider->getProviderId());\r
-                if (oldProvider != nullptr)\r
+                NS_LOG(DEBUG, "Provider with same Id exists. updating the old Provider data");\r
+                auto changeCallback = oldProvider->getProviderStateReceivedCb();\r
+                oldProvider->setProviderState((NSProviderState)state);\r
+                delete nsProvider;\r
+                if (state == NS_ALLOW)\r
+                {\r
+                    if (changeCallback != NULL)\r
+                    {\r
+                        NS_LOG(DEBUG, "initiating the callback for Response : NS_ALLOW");\r
+                        changeCallback((NSProviderState)state);\r
+                    }\r
+                }\r
+                else if (state == NS_DENY)\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
+                        NS_LOG(DEBUG, "initiating the callback for Response : NS_DENY");\r
+                        changeCallback((NSProviderState)state);\r
                     }\r
                     delete oldProvider;\r
                 }\r
+                else if (state == NS_TOPIC)\r
+                {\r
+                    auto topicLL = NSConsumerGetTopicList(provider->providerId);\r
+                    oldProvider->setTopicList(new NSTopicsList(topicLL));\r
+                    if (changeCallback != NULL)\r
+                    {\r
+                        NS_LOG(DEBUG, "initiating the callback for Response : NS_TOPIC");\r
+                        changeCallback((NSProviderState)state);\r
+                    }\r
+                }\r
+                else if (state == NS_STOPPED)\r
+                {\r
+                    NS_LOG(DEBUG, "initiating the State callback : NS_STOPPED");\r
+                    if (changeCallback != NULL)\r
+                    {\r
+                        NS_LOG(DEBUG, "initiating the callback for Response : NS_TOPIC");\r
+                        changeCallback((NSProviderState)state);\r
+                    }\r
+                }\r
             }\r
-            NS_LOG(DEBUG, "onNSProviderChanged - OUT");\r
+            NS_LOG(DEBUG, "onNSProviderStateChanged - OUT");\r
         }\r
 \r
         void onNSMessageReceived(::NSMessage *message)\r
         {\r
             NS_LOG(DEBUG, "onNSMessageReceived - IN");\r
+            NS_LOG_V(DEBUG, "message->providerId : %s", message->providerId);\r
+\r
             NSMessage *nsMessage = new NSMessage(message);\r
+\r
+            NS_LOG_V(DEBUG, "getAcceptedProviders Size : %d",\r
+                     NSConsumerService::getInstance()->getAcceptedProviders().size());\r
             for (auto it : NSConsumerService::getInstance()->getAcceptedProviders())\r
             {\r
                 if (it->getProviderId() == nsMessage->getProviderId())\r
@@ -137,8 +163,7 @@ namespace OIC
 \r
         NSConsumerService::NSConsumerService()\r
         {\r
-            m_config.m_discoverCb = NULL;\r
-            m_config.m_changedCb = NULL;\r
+            m_providerDiscoveredCb = NULL;\r
         }\r
 \r
         NSConsumerService::~NSConsumerService()\r
@@ -149,58 +174,61 @@ namespace OIC
             }\r
             getAcceptedProviders().clear();\r
         }\r
+\r
         NSConsumerService *NSConsumerService::getInstance()\r
         {\r
             static  NSConsumerService s_instance;\r
             return &s_instance;\r
         }\r
 \r
-        void NSConsumerService::Start(NSConsumerService::ConsumerConfig config)\r
+        void NSConsumerService::start(NSConsumerService::ProviderDiscoveredCallback providerDiscovered)\r
         {\r
-            NS_LOG(DEBUG, "Start - IN");\r
-            m_config = config;\r
+            NS_LOG(DEBUG, "start - IN");\r
+            m_providerDiscoveredCb = providerDiscovered;\r
             NSConsumerConfig nsConfig;\r
-\r
-            // TODO Check to changed c layer ConsumerConfig.\r
-            //nsConfig.discoverCb = onNSProviderDiscovered;\r
-            nsConfig.changedCb = onNSProviderChanged;\r
+            nsConfig.changedCb = onProviderStateReceived;\r
             nsConfig.messageCb = onNSMessageReceived;\r
             nsConfig.syncInfoCb = onNSSyncInfoReceived;\r
 \r
             NSStartConsumer(nsConfig);\r
-            NS_LOG(DEBUG, "Start - OUT");\r
+            NS_LOG(DEBUG, "start - OUT");\r
             return;\r
         }\r
 \r
-        void NSConsumerService::Stop()\r
+        void NSConsumerService::stop()\r
         {\r
-            NS_LOG(DEBUG, "Stop - IN");\r
+            NS_LOG(DEBUG, "stop - IN");\r
             NSStopConsumer();\r
-            NS_LOG(DEBUG, "Stop - OUT");\r
+            NS_LOG(DEBUG, "stop - OUT");\r
             return;\r
         }\r
 \r
-        NSResult NSConsumerService::EnableRemoteService(const std::string &serverAddress)\r
+        NSResult NSConsumerService::enableRemoteService(const std::string &serverAddress)\r
         {\r
-            NS_LOG(DEBUG, "EnableRemoteService - IN");\r
+            NS_LOG(DEBUG, "enableRemoteService - IN");\r
             NSResult result = NSResult::ERROR;\r
 #ifdef WITH_CLOUD\r
             result = (NSResult) NSConsumerEnableRemoteService(OICStrdup(serverAddress.c_str()));\r
 #else\r
             NS_LOG(ERROR, "Remote Services feature is not enabled in the Build");\r
 #endif\r
-            NS_LOG(DEBUG, "EnableRemoteService - OUT");\r
+            NS_LOG(DEBUG, "enableRemoteService - OUT");\r
             return result;\r
         }\r
 \r
-        void NSConsumerService::RescanProvider()\r
+        void NSConsumerService::rescanProvider()\r
         {\r
-            NS_LOG(DEBUG, "RescanProvider - IN");\r
+            NS_LOG(DEBUG, "rescanProvider - IN");\r
             NSRescanProvider();\r
-            NS_LOG(DEBUG, "RescanProvider - OUT");\r
+            NS_LOG(DEBUG, "rescanProvider - OUT");\r
             return;\r
         }\r
 \r
+        NSConsumerService::ProviderDiscoveredCallback NSConsumerService::getProviderDiscoveredCb()\r
+        {\r
+            return m_providerDiscoveredCb;\r
+        }\r
+\r
         NSProvider *NSConsumerService::getProvider(const std::string &id)\r
         {\r
             for (auto it : getAcceptedProviders())\r
@@ -215,24 +243,7 @@ namespace OIC
             return NULL;\r
         }\r
 \r
-        NSMessage *NSConsumerService::getMessage(uint64_t messageId)\r
-        {\r
-            NS_LOG(DEBUG, "getMessage - IN");\r
-            ::NSMessage *message = NSConsumerGetMessage(messageId);\r
-            NSMessage *nsMessage = new NSMessage(message);\r
-\r
-            delete message->mediaContents;\r
-            delete message;\r
-            NS_LOG(DEBUG, "getMessage - OUT");\r
-            return nsMessage;\r
-        }\r
-\r
-        NSConsumerService::ConsumerConfig NSConsumerService::getConsumerConfig()\r
-        {\r
-            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 ce90f51..c4d7269 100755 (executable)
@@ -24,6 +24,7 @@
 #include "NSConstants.h"\r
 #include "NSCommon.h"\r
 #include "oic_string.h"\r
+#include "oic_malloc.h"\r
 \r
 namespace OIC\r
 {\r
@@ -33,42 +34,54 @@ namespace OIC
         {\r
             ::NSProvider *provider = new ::NSProvider;\r
             OICStrcpy(provider->providerId, NS_UTILS_UUID_STRING_SIZE, m_providerId.c_str());\r
+            return provider;\r
+        }\r
 \r
-            provider->topicLL = NULL;\r
+        NSProvider::NSProvider(::NSProvider *provider)\r
+        {\r
+            m_stateCb = NULL;\r
+            m_messageCb = NULL;\r
+            m_syncInfoCb = NULL;\r
+            m_state = NSProviderState::DENY;\r
+            m_topicList = new NSTopicsList();\r
 \r
-            if (m_topicList != nullptr)\r
+            if (provider != nullptr)\r
             {\r
-                for (auto it : m_topicList->getTopicsList())\r
+                m_providerId.assign(provider->providerId, NS_UTILS_UUID_STRING_SIZE - 1);\r
+            }\r
+        }\r
+\r
+        NSProvider::NSProvider(const NSProvider &provider)\r
+        {\r
+            m_providerId = provider.getProviderId();\r
+            auto topicsList = provider.getTopicList();\r
+            if (topicsList != nullptr)\r
+            {\r
+                for (auto it : topicsList->getTopicsList())\r
                 {\r
-                    ::NSTopicLL *topic = new ::NSTopicLL;\r
-                    OICStrcpy(topic->topicName, it->getTopicName().length(),\r
-                              it->getTopicName().c_str());\r
-                    topic->state = (::NSTopicState)it->getState();\r
-                    topic->next = NULL;\r
-                    if (provider->topicLL == NULL)\r
-                        provider->topicLL = topic;\r
-                    else\r
-                    {\r
-                        topic->next = provider->topicLL;\r
-                        provider->topicLL = topic;\r
-                    }\r
+                    getTopicList()->addTopic(it->getTopicName(), it->getState());\r
                 }\r
             }\r
-            return provider;\r
+            setListener(provider.getProviderStateReceivedCb(), provider.getMessageReceivedCb(),\r
+                        provider.getSyncInfoReceivedCb());\r
+            setProviderState(provider.getProviderState());\r
         }\r
 \r
-        NSProvider::NSProvider(::NSProvider *provider)\r
+        NSProvider &NSProvider::operator=(const NSProvider &provider)\r
         {\r
-            m_messageCb = NULL;\r
-            m_syncInfoCb = NULL;\r
-            if (provider != nullptr)\r
+            m_providerId = provider.getProviderId();\r
+            auto topicsList = provider.getTopicList();\r
+            if (topicsList != nullptr)\r
             {\r
-                m_providerId = provider->providerId;\r
-                if (provider->topicLL != nullptr)\r
-                    m_topicList = new NSTopicsList(provider->topicLL);\r
-                else\r
-                    m_topicList = new NSTopicsList();\r
+                for (auto it : topicsList->getTopicsList())\r
+                {\r
+                    getTopicList()->addTopic(it->getTopicName(), it->getState());\r
+                }\r
             }\r
+            setListener(provider.getProviderStateReceivedCb(), provider.getMessageReceivedCb(),\r
+                        provider.getSyncInfoReceivedCb());\r
+            setProviderState(provider.getProviderState());\r
+            return *this;\r
         }\r
 \r
         NSProvider::~NSProvider()\r
@@ -84,24 +97,92 @@ namespace OIC
 \r
         NSTopicsList *NSProvider::getTopicList() const\r
         {\r
+            NS_LOG(DEBUG, "getTopicList - IN");\r
             return m_topicList;\r
         }\r
 \r
+        NSResult NSProvider::updateTopicList(NSTopicsList *topicList)\r
+        {\r
+            NS_LOG(DEBUG, "updateTopicList - IN");\r
+            if (topicList == nullptr)\r
+                return NSResult::ERROR;\r
+            for (auto it : topicList->getTopicsList())\r
+            {\r
+                NS_LOG_V(DEBUG, "Topic Name : %s", it->getTopicName().c_str());\r
+                NS_LOG_V(DEBUG, "Topic State : %d", (int) it->getState());\r
+            }\r
+            NS_LOG(DEBUG, "Creating TopicLL from TopicList");\r
+            NSTopicLL *topicLL = NULL;\r
+            for (auto it : topicList->getTopicsList())\r
+            {\r
+                NSTopicLL *topic = (NSTopicLL *) OICMalloc(sizeof(NSTopicLL));\r
+                if (topic == nullptr)\r
+                {\r
+                    NS_LOG(ERROR, "new NSTopicLL failed");\r
+                    return NSResult::ERROR;\r
+                }\r
+                topic->topicName = NULL;\r
+                topic->topicName = OICStrdup(it->getTopicName().c_str());\r
+                topic->state = (::NSTopicState)it->getState();\r
+                topic->next = NULL;\r
+                if (topicLL == NULL)\r
+                {\r
+                    topicLL = topic;\r
+                }\r
+                else\r
+                {\r
+                    NSTopicLL *iter = topicLL;\r
+                    NSTopicLL *prev = NULL;\r
+                    while (iter)\r
+                    {\r
+                        prev = iter;\r
+                        iter = (NSTopicLL *) iter->next;\r
+                    }\r
+                    prev->next = topic;\r
+                    topic->next = NULL;\r
+                }\r
+            }\r
+            if (topicLL)\r
+            {\r
+                NSTopicLL *iter = topicLL;\r
+                while (iter)\r
+                {\r
+                    NS_LOG_V(DEBUG, "Topic Name : %s", iter->topicName);\r
+                    NS_LOG_V(DEBUG, "Topic State : %d", iter->state);\r
+                    iter = iter->next;\r
+                }\r
+            }\r
+            NS_LOG_V(DEBUG, "calling Lower layer UpdateTopicList for Provider Id : %s",\r
+                     getProviderId().c_str());\r
+            NSResult result = (NSResult) NSConsumerUpdateTopicList(getProviderId().c_str(), topicLL);\r
+            NS_LOG(DEBUG, "updateTopicList - OUT");\r
+            return result;\r
+        }\r
+\r
+        NSProviderState NSProvider::getProviderState() const\r
+        {\r
+            NS_LOG_V(DEBUG, "getProviderState  state : %d", (int)m_state);\r
+            return m_state;\r
+        }\r
+\r
         void NSProvider::subscribe()\r
         {\r
-            NS_LOG(DEBUG, "subscribe - IN");\r
-            NSSubscribe(getNSProvider());\r
-            NS_LOG(DEBUG, "subscribe - OUT");\r
+            NS_LOG(DEBUG, "Subscribe - IN");\r
+            NSSubscribe(getProviderId().c_str());\r
+            NS_LOG(DEBUG, "Subscribe - OUT");\r
         }\r
 \r
-        void NSProvider::unSubscribe()\r
+        bool NSProvider::isSubscribed()\r
         {\r
-            NS_LOG(DEBUG, "unSubscribe - IN");\r
-            NSUnsubscribe(getNSProvider());\r
-            NS_LOG(DEBUG, "unSubscribe - OUT");\r
+            NS_LOG(DEBUG, "isSubscribed - IN");\r
+            auto state = getProviderState();\r
+            NS_LOG_V(DEBUG, "state : %d", (int)state);\r
+            if ((state == NSProviderState::ALLOW) || (state == NSProviderState::TOPIC) )\r
+                return true;\r
+            return false;\r
         }\r
 \r
-        void NSProvider::SendSyncInfo(uint64_t messageId, NSSyncInfo::NSSyncType type)\r
+        void NSProvider::sendSyncInfo(uint64_t messageId, NSSyncInfo::NSSyncType type)\r
         {\r
             NS_LOG(DEBUG, "SendSyncInfo - IN");\r
             NSConsumerSendSyncInfo(m_providerId.c_str(), messageId, (::NSSyncType)type);\r
@@ -109,32 +190,42 @@ namespace OIC
             return;\r
         }\r
 \r
-        void NSProvider::setListener(NSProvider::MessageReceivedCallback messageHandle,\r
+        void NSProvider::setListener(NSProvider::ProviderStateCallback stateHandle,\r
+                                     NSProvider::MessageReceivedCallback messageHandle,\r
                                      NSProvider::SyncInfoReceivedCallback syncHandle)\r
         {\r
+            NS_LOG(DEBUG, "setListener - IN");\r
+            m_stateCb = stateHandle;\r
             m_messageCb = messageHandle;\r
             m_syncInfoCb = syncHandle;\r
+            NS_LOG(DEBUG, "setListener - OUT");\r
         }\r
 \r
-        NSResult NSProvider::selectInterestTopics(NSTopicsList *topicList)\r
+        NSProvider::ProviderStateCallback NSProvider::getProviderStateReceivedCb() const\r
         {\r
-            NS_LOG(DEBUG, "selectInterestTopics - IN");\r
-            NSProvider *provider = new NSProvider(getProviderId(), topicList);\r
-            NSResult result = (NSResult) NSConsumerSelectInterestTopics(\r
-                                  provider->getNSProvider());\r
-            delete provider;\r
-            NS_LOG(DEBUG, "selectInterestTopics - OUT");\r
-            return result;\r
+            return m_stateCb;\r
         }\r
 \r
-        NSProvider::MessageReceivedCallback NSProvider::getMessageReceivedCb()\r
+        NSProvider::MessageReceivedCallback NSProvider::getMessageReceivedCb() const\r
         {\r
             return m_messageCb;\r
         }\r
 \r
-        NSProvider::SyncInfoReceivedCallback NSProvider::getSyncInfoReceivedCb()\r
+        NSProvider::SyncInfoReceivedCallback NSProvider::getSyncInfoReceivedCb() const\r
         {\r
             return m_syncInfoCb;\r
         }\r
+\r
+        void NSProvider::setTopicList(NSTopicsList *topicsList)\r
+        {\r
+            if (m_topicList != nullptr)\r
+                delete m_topicList;\r
+            m_topicList = topicsList;\r
+        }\r
+\r
+        void NSProvider::setProviderState(const NSProviderState &providerState)\r
+        {\r
+            m_state = providerState;\r
+        }\r
     }\r
 }\r
index 3b7e48f..c90f010 100755 (executable)
@@ -44,7 +44,8 @@ void onNotificationPostedCb(OIC::Service::NSMessage *notification)
     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
+    provider->sendSyncInfo(notification->getMessageId(),\r
+                           OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_READ);\r
 }\r
 \r
 void onNotificationSyncCb(OIC::Service::NSSyncInfo *sync)\r
@@ -53,32 +54,49 @@ void onNotificationSyncCb(OIC::Service::NSSyncInfo *sync)
     std::cout << "Sync STATE : " << (int) sync->getState() << std::endl;\r
 }\r
 \r
-void onDiscoverNotificationCb(OIC::Service::NSProvider *provider)\r
-{\r
-    std::cout << "notification resource discovered" << std::endl;\r
-    provider->subscribe();\r
-    std::cout << "startSubscribing" << std::endl;\r
-}\r
-\r
-void onProviderChangedCb(OIC::Service::NSProvider *provider, OIC::Service::NSResponse response)\r
+void onProviderStateChangedCb(OIC::Service::NSProviderState state)\r
 {\r
-    std::cout << "Subscription accepted" << std::endl;\r
-    std::cout << "subscribed provider Id : " << provider->getProviderId() << std::endl;\r
-    if (response == OIC::Service::NSResponse::ALLOW)\r
+    std::cout << "onProviderStateChangedCb" << std::endl;\r
+    if (state == OIC::Service::NSProviderState::ALLOW)\r
     {\r
-        provider->setListener(onNotificationPostedCb, onNotificationSyncCb);\r
-        if (mainProvider.empty())\r
-            mainProvider = provider->getProviderId();\r
+        std::cout << "Provider Subscription Accepted" << std::endl;\r
     }\r
-    else if (response == OIC::Service::NSResponse::TOPIC)\r
+    else if (state == OIC::Service::NSProviderState::DENY)\r
     {\r
-        std::cout << "Provider Topic Updated" << std::endl;\r
-        for (auto it : provider->getTopicList()->getTopicsList())\r
+        std::cout << "Provider Subscription Denied" << std::endl;\r
+    }\r
+    else if (state == OIC::Service::NSProviderState::TOPIC)\r
+    {\r
+        OIC::Service::NSProvider *provider = NSConsumerService::getInstance()->getProvider(mainProvider);\r
+        if (provider != nullptr)\r
         {\r
-            std::cout << "Topic Name: " << it->getTopicName() << std::endl;\r
-            std::cout << "Topic state: " << (int) it->getState() << std::endl;\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
+    else if (state == OIC::Service::NSProviderState::STOPPED)\r
+    {\r
+        std::cout << "Provider Stopped" << std::endl;\r
+    }\r
+}\r
+\r
+void onDiscoverNotificationCb(OIC::Service::NSProvider *provider)\r
+{\r
+    std::cout << "notification resource discovered" << std::endl;\r
+    std::cout << "SetListeners for callbacks" << std::endl;\r
+    provider->setListener(onProviderStateChangedCb, onNotificationPostedCb, onNotificationSyncCb);\r
+    if (!provider->isSubscribed())\r
+    {\r
+        std::cout << "startSubscribing" << std::endl;\r
+        provider->subscribe();\r
+    }\r
+    if (mainProvider.empty())\r
+        mainProvider = provider->getProviderId();\r
 }\r
 \r
 void *OCProcessThread(void *ptr)\r
@@ -109,10 +127,6 @@ int main(void)
         return 0;\r
     }\r
 \r
-    NSConsumerService::ConsumerConfig cfg;\r
-    cfg.m_discoverCb = onDiscoverNotificationCb;\r
-    cfg.m_changedCb = onProviderChangedCb;\r
-\r
     pthread_create(&OCThread, NULL, OCProcessThread, NULL);\r
 \r
     std::cout << "Start notification consumer service" << std::endl;\r
@@ -122,8 +136,8 @@ int main(void)
 \r
         std::cout << "1. Start Consumer" << std::endl;\r
         std::cout << "2. Stop Consumer" << std::endl;\r
-        std::cout << "3. getInterestTopics" << std::endl;\r
-        std::cout << "4. selectInterestTopics" << std::endl;\r
+        std::cout << "3. GetTopicList" << std::endl;\r
+        std::cout << "4. UpdateTopicList" << std::endl;\r
 #ifdef WITH_CLOUD\r
         std::cout << "5. Enable  NS Consumer RemoteService" << std::endl;\r
 #endif\r
@@ -135,15 +149,15 @@ int main(void)
         {\r
             case 1:\r
                 std::cout << "1. Start the Notification Consumer" << std::endl;\r
-                NSConsumerService::getInstance()->Start(cfg);\r
+                NSConsumerService::getInstance()->start(onDiscoverNotificationCb);\r
                 break;\r
             case 2:\r
                 std::cout << "2. Stop the Notification Consumer" << std::endl;\r
-                NSConsumerService::getInstance()->Stop();\r
+                NSConsumerService::getInstance()->stop();\r
                 break;\r
             case 3:\r
                 {\r
-                    std::cout <<  "getInterestTopics" << std::endl;\r
+                    std::cout <<  "GetTopicList" << std::endl;\r
                     OIC::Service::NSProvider *provider = NSConsumerService::getInstance()->getProvider(mainProvider);\r
                     if (provider != nullptr)\r
                     {\r
@@ -159,16 +173,16 @@ int main(void)
                 break;\r
             case 4:\r
                 {\r
-                    std::cout <<  "selectInterestTopics" << std::endl;\r
+                    std::cout <<  "UpdateTopicList" << std::endl;\r
                     OIC::Service::NSProvider *provider = NSConsumerService::getInstance()->getProvider(mainProvider);\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_TOPIC1", NSTopic::NSTopicState::SUBSCRIBED);\r
+                        topicList->addTopic("OCF_TOPIC2", NSTopic::NSTopicState::SUBSCRIBED);\r
                         topicList->addTopic("OCF_TOPIC3", NSTopic::NSTopicState::UNSUBSCRIBED);\r
 \r
-                        provider->selectInterestTopics(topicList);\r
+                        provider->updateTopicList(topicList);\r
                     }\r
                 }\r
                 break;\r
@@ -178,7 +192,7 @@ int main(void)
                     std::cout << "5. Enable NS Consumer RemoteService" << std::endl;\r
                     std::cout << "Input the Server Address :";\r
                     std::cin >> REMOTE_SERVER_ADDRESS;\r
-                    NSConsumerService::getInstance()->EnableRemoteService(REMOTE_SERVER_ADDRESS);\r
+                    NSConsumerService::getInstance()->enableRemoteService(REMOTE_SERVER_ADDRESS);\r
                     break;\r
                 }\r
 #endif\r
index 8f7e637..9da7cb5 100755 (executable)
@@ -67,7 +67,7 @@ void subscribeRequestCallback(OIC::Service::NSConsumer *consumer)
     std::cout << "Consumer Device ID: " << consumer->getConsumerId() << std::endl;\r
     if (mainConsumer.empty())\r
         mainConsumer = consumer->getConsumerId();\r
-    consumer->acceptSubscription(consumer, true);\r
+    consumer->acceptSubscription(true);\r
 }\r
 \r
 void syncCallback(OIC::Service::NSSyncInfo *sync)\r
@@ -100,12 +100,12 @@ int main()
         std::cout << "3. SendMessage " << std::endl;\r
         std::cout << "4. SendSyncInfo" << std::endl;\r
 \r
-        std::cout << "5. AddTopic" << std::endl;\r
-        std::cout << "6. DeleteTopic" << std::endl;\r
-        std::cout << "7. SelectTopic" << std::endl;\r
-        std::cout << "8. UnselectTopic" << std::endl;\r
-        std::cout << "9. GetConsumerTopics" << std::endl;\r
-        std::cout << "10. GetTopics" << std::endl;\r
+        std::cout << "5. RegisterTopic" << std::endl;\r
+        std::cout << "6. UnregisterTopic" << std::endl;\r
+        std::cout << "7. SetTopic" << std::endl;\r
+        std::cout << "8. UnsetTopic" << std::endl;\r
+        std::cout << "9. GetConsumerTopicList" << std::endl;\r
+        std::cout << "10. GetRegisteredTopicList" << std::endl;\r
 #ifdef WITH_CLOUD\r
         std::cout << "11. Enable NS Provider RemoteService" << std::endl;\r
         std::cout << "12. Disable NS Provider RemoteService" << std::endl;\r
@@ -125,9 +125,9 @@ int main()
                     NSProviderService::ProviderConfig cfg;\r
                     cfg.m_subscribeRequestCb = subscribeRequestCallback;\r
                     cfg.m_syncInfoCb = syncCallback;\r
-                    cfg.policy = true;\r
+                    cfg.subControllability = true;\r
 \r
-                    NSProviderService::getInstance()->Start(cfg);\r
+                    NSProviderService::getInstance()->start(cfg);\r
                     break;\r
                 }\r
             case 2:\r
@@ -136,9 +136,9 @@ int main()
                     NSProviderService::ProviderConfig cfg;\r
                     cfg.m_subscribeRequestCb = subscribeRequestCallback;\r
                     cfg.m_syncInfoCb = syncCallback;\r
-                    cfg.policy = false;\r
+                    cfg.subControllability = false;\r
 \r
-                    NSProviderService::getInstance()->Start(cfg);\r
+                    NSProviderService::getInstance()->start(cfg);\r
                     break;\r
                 }\r
             case 3:\r
@@ -164,7 +164,7 @@ int main()
                     std::cout << "app - mContentText : " << body << std::endl;\r
                     std::cout << "app - mTopic : " << topic << std::endl;\r
 \r
-                    OIC::Service::NSMessage *msg = NSProviderService::getInstance()->CreateMessage();\r
+                    OIC::Service::NSMessage *msg = NSProviderService::getInstance()->createMessage();\r
 \r
                     msg->setType(OIC::Service::NSMessage::NSMessageType::NS_MESSAGE_INFO);\r
                     msg->setTitle(title.c_str());\r
@@ -172,53 +172,53 @@ int main()
                     msg->setSourceName("OCF");\r
                     msg->setTopic(topic);\r
                     mainMessageId = msg->getMessageId();\r
+                    std::cout << "ProviderID for Message : " << msg->getProviderId() << std::endl;\r
 \r
-                    NSProviderService::getInstance()->SendMessage(msg);\r
+                    NSProviderService::getInstance()->sendMessage(msg);\r
 \r
                     break;\r
                 }\r
             case 4:\r
                 {\r
                     std::cout <<  "SendSyncInfo" << std::endl;\r
-                    NSProviderService::getInstance()->SendSyncInfo(mainMessageId,\r
+                    NSProviderService::getInstance()->sendSyncInfo(mainMessageId,\r
                             OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_READ);\r
                     break;\r
                 }\r
 \r
             case 5:\r
-                std::cout <<  "AddTopic" << std::endl;\r
-                NSProviderService::getInstance()->AddTopic("OCF_TOPIC1");\r
-                NSProviderService::getInstance()->AddTopic("OCF_TOPIC2");\r
-                NSProviderService::getInstance()->AddTopic("OCF_TOPIC3");\r
-                NSProviderService::getInstance()->AddTopic("OCF_TOPIC4");\r
+                std::cout <<  "RegisterTopic" << std::endl;\r
+                NSProviderService::getInstance()->registerTopic("OCF_TOPIC1");\r
+                NSProviderService::getInstance()->registerTopic("OCF_TOPIC2");\r
+                NSProviderService::getInstance()->registerTopic("OCF_TOPIC3");\r
+                NSProviderService::getInstance()->registerTopic("OCF_TOPIC4");\r
                 break;\r
 \r
             case 6:\r
-                std::cout <<  "DeleteTopic" << std::endl;\r
-                NSProviderService::getInstance()->DeleteTopic("OCF_TOPIC2");\r
+                std::cout <<  "UnregisterTopic" << std::endl;\r
+                NSProviderService::getInstance()->unregisterTopic("OCF_TOPIC2");\r
                 break;\r
 \r
             case 7:\r
                 {\r
-                    std::cout <<  "SelectTopic" << std::endl;\r
+                    std::cout <<  "SetTopic" << std::endl;\r
                     OIC::Service::NSConsumer *consumer = NSProviderService::getInstance()->getConsumer(mainConsumer);\r
                     if (consumer != nullptr)\r
                     {\r
-                        consumer->selectTopic("OCF_TOPIC1");\r
-                        consumer->selectTopic("OCF_TOPIC2");\r
-                        consumer->selectTopic("OCF_TOPIC3");\r
-                        consumer->selectTopic("OCF_TOPIC4");\r
+                        consumer->setTopic("OCF_TOPIC1");\r
+                        consumer->setTopic("OCF_TOPIC2");\r
+                        consumer->setTopic("OCF_TOPIC3");\r
                         std::cout <<  "SelectTopic completed" << std::endl;\r
                     }\r
                     break;\r
                 }\r
             case 8:\r
                 {\r
-                    std::cout <<  "UnSelectTopic" << std::endl;\r
+                    std::cout <<  "UnsetTopic" << std::endl;\r
                     OIC::Service::NSConsumer *consumer = NSProviderService::getInstance()->getConsumer(mainConsumer);\r
                     if (consumer != nullptr)\r
                     {\r
-                        consumer->unselectTopic("OCF_TOPIC1");\r
+                        consumer->unsetTopic("OCF_TOPIC1");\r
                         std::cout <<  "UnSelectTopic completed" << std::endl;\r
                     }\r
                     break;\r
@@ -227,11 +227,11 @@ int main()
 \r
             case 9:\r
                 {\r
-                    std::cout <<  "GetConsumerTopics" << std::endl;\r
+                    std::cout <<  "GetConsumerTopicList" << std::endl;\r
                     OIC::Service::NSConsumer *consumer = NSProviderService::getInstance()->getConsumer(mainConsumer);\r
                     if (consumer != nullptr)\r
                     {\r
-                        auto nsTopics = consumer->getConsumerTopics();\r
+                        auto nsTopics = consumer->getConsumerTopicList();\r
                         if (nsTopics != nullptr)\r
                         {\r
                             for (auto it : nsTopics->getTopicsList())\r
@@ -242,15 +242,15 @@ int main()
                             }\r
                             delete nsTopics;\r
                         }\r
-                        std::cout <<  "GetConsumerTopics completed" << std::endl;\r
+                        std::cout <<  "GetConsumerTopicList completed" << std::endl;\r
                     }\r
                 }\r
                 break;\r
 \r
             case 10:\r
                 {\r
-                    std::cout <<  "GetTopics" << std::endl;\r
-                    auto nsTopics = NSProviderService::getInstance()->GetTopics();\r
+                    std::cout <<  "GetRegisteredTopicList" << std::endl;\r
+                    auto nsTopics = NSProviderService::getInstance()->getRegisteredTopicList();\r
                     for (auto it : nsTopics->getTopicsList())\r
                     {\r
 \r
@@ -266,22 +266,22 @@ int main()
                     std::cout << "11. Enable NS Provider RemoteService" << std::endl;\r
                     std::cout << "Input the Server Address :";\r
                     std::cin >> REMOTE_SERVER_ADDRESS;\r
-                    NSProviderService::getInstance()->EnableRemoteService(REMOTE_SERVER_ADDRESS);\r
+                    NSProviderService::getInstance()->enableRemoteService(REMOTE_SERVER_ADDRESS);\r
                     break;\r
                 }\r
             case 12:\r
                 {\r
                     std::cout << "12. Disable NS Provider RemoteService" << std::endl;\r
                     std::cout << "Input the Server Address :";\r
-                    NSProviderService::getInstance()->DisableRemoteService(REMOTE_SERVER_ADDRESS);\r
+                    NSProviderService::getInstance()->disableRemoteService(REMOTE_SERVER_ADDRESS);\r
                     break;\r
                 }\r
 #endif\r
             case 13:\r
-                NSProviderService::getInstance()->Stop();\r
+                NSProviderService::getInstance()->stop();\r
                 break;\r
             case 0:\r
-                NSProviderService::getInstance()->Stop();\r
+                NSProviderService::getInstance()->stop();\r
                 isExit = true;\r
                 break;\r
             default:\r
index c71c666..5a3b8c2 100755 (executable)
@@ -79,30 +79,29 @@ namespace OIC
                 /**\r
                       * This method is for setting icon image for the Notification service media contents.\r
                       *\r
-                      * @param consumer - NSConsumer.\r
                       * @param accepted - as bool.\r
                       */\r
-                int acceptSubscription(NSConsumer *consumer, bool accepted);\r
+                int acceptSubscription(bool accepted);\r
 \r
                 /**\r
                      * Select a topic name for a consumer\r
                      * @param[in]  topicName Topic name to select\r
                      * @return :: OK or result code of NSResult\r
                      */\r
-                NSResult selectTopic(const std::string &topicName);\r
+                NSResult setTopic(const std::string &topicName);\r
 \r
                 /**\r
                      * Unselect a topic from the topic list for consumer\r
                      * @param[in]  topicName Topic name to unselect\r
                      * @return :: OK or result code of NSResult\r
                      */\r
-                NSResult unselectTopic(const std::string &topicName);\r
+                NSResult unsetTopic(const std::string &topicName);\r
 \r
                 /**\r
                      * Request topic list with selection state for the consumer\r
                      * @return :: Topic list\r
                      */\r
-                NSTopicsList *getConsumerTopics();\r
+                NSTopicsList *getConsumerTopicList();\r
 \r
             private:\r
                 ::NSConsumer *getNSConsumer();\r
index 06326dc..033b7e3 100755 (executable)
@@ -63,7 +63,9 @@ namespace OIC
                 /**\r
                       * @struct   ProviderConfig\r
                       * @brief Provider sets this following configuration for registering callbacks and configs\r
-                      *\r
+                      *  Set the subControllability, for notification servcie refering to following\r
+                      *  if subControllability, is true, provider decides to allow or deny for all the subscribing consumers.\r
+                      *  Otherwise(subControllability, is false) consumer decides to request subscription to discovered providers.\r
                       */\r
                 typedef struct\r
                 {\r
@@ -72,12 +74,9 @@ namespace OIC
                     /** m_syncInfoCb - MessageSynchronizedCallback callback listener.*/\r
                     MessageSynchronizedCallback m_syncInfoCb;\r
 \r
-                    /* Set the policy for notification servcie refering to following\r
-                                 * if policy is true, provider decides to allow or deny for all the subscribing consumers.\r
-                                 * Otherwise(policy is false) consumer decides to request subscription to discovered providers.\r
-                                 */\r
-                    bool policy;\r
-                    /* User Information */\r
+                    /** subControllability - for setting the subscription controllability for Consumer */\r
+                    bool subControllability;\r
+                    /** userInfo - user defined information */\r
                     std::string userInfo;\r
                 } ProviderConfig;\r
 \r
@@ -90,39 +89,38 @@ namespace OIC
 \r
                 /**\r
                       * Initialize notification service for provider\r
-                      * @param[in]  policy   Accepter\r
                       * @param[in]  config   ProviderConfig Callback function pointers to onConsumerSubscribed,\r
                       * and onMessageSynchronized function listeners\r
                       * @return :: result code of Provider Service\r
                       */\r
-                NSResult Start(ProviderConfig config);\r
+                NSResult start(ProviderConfig config);\r
 \r
                 /**\r
                       * Terminate notification service for provider\r
                       * @return :: result code of Provider Service\r
                       */\r
-                NSResult Stop();\r
+                NSResult stop();\r
 \r
                 /**\r
                       * Request to publish resource to cloud server\r
-                      * @param[in]  server address combined with IP address and port number using delimiter :\r
+                      * @param[in]  serverAddress combined with IP address and port number using delimiter :\r
                       * @return  result code of Provider Service\r
                       */\r
-                NSResult EnableRemoteService(const std::string &serverAddress);\r
+                NSResult enableRemoteService(const std::string &serverAddress);\r
 \r
                 /**\r
                       * Request to cancel remote service using cloud server\r
-                      * @param[in]  server address combined with IP address and port number using delimiter :\r
+                      * @param[in]  serverAddress combined with IP address and port number using delimiter :\r
                       * @return  result code of Provider Service\r
                       */\r
-                NSResult DisableRemoteService(const std::string &serverAddress);\r
+                NSResult disableRemoteService(const std::string &serverAddress);\r
 \r
                 /**\r
                       * Send notification message to all subscribers\r
                       * @param[in]  msg  Notification message including id, title, contentText\r
                       * @return :: result code of Provider Service\r
                       */\r
-                NSResult SendMessage(NSMessage *msg);\r
+                NSResult sendMessage(NSMessage *msg);\r
 \r
 \r
                 /**\r
@@ -130,41 +128,33 @@ namespace OIC
                       * @param[in]  messageId  Notification message to synchronize the status\r
                       * @param[in]  type  NotificationSyncType of the SyncInfo message\r
                       */\r
-                void SendSyncInfo(uint64_t messageId, NSSyncInfo::NSSyncType type);\r
+                void sendSyncInfo(uint64_t messageId, NSSyncInfo::NSSyncType type);\r
 \r
                 /**\r
                      * Initialize NSMessage class, service sets message id and provider(device) id\r
-                     * @return ::NSMessage *\r
+                     * @return NSMessage *\r
                      */\r
-                NSMessage *CreateMessage();\r
-\r
-                /**\r
-                      *  request to get NSConsumer pointer\r
-                      * @param id -id as string\r
-                      *\r
-                      * @return pointer to NSConsumer\r
-                      */\r
-                NSConsumer *getConsumer(const std::string &id);\r
+                NSMessage *createMessage();\r
 \r
                 /**\r
                      * Add topic to topic list which is located in provider service storage\r
                      * @param[in]  topicName Topic name to add\r
                      * @return :: OK or result code of NSResult\r
                      */\r
-                NSResult AddTopic(const std::string &topicName);\r
+                NSResult registerTopic(const std::string &topicName);\r
 \r
                 /**\r
                      * Delete topic from topic list\r
                      * @param[in]  topicName Topic name to delete\r
                      * @return :: OK or result code of NSResult\r
                      */\r
-                NSResult DeleteTopic(const std::string &topicName);\r
+                NSResult unregisterTopic(const std::string &topicName);\r
 \r
                 /**\r
                      * Request topics list already registered by provider user\r
                      * @return :: Topic list\r
                      */\r
-                NSTopicsList *GetTopics();\r
+                NSTopicsList *getRegisteredTopicList();\r
 \r
                 /**\r
                       *  get Provider config values\r
@@ -173,6 +163,14 @@ namespace OIC
                 ProviderConfig getProviderConfig();\r
 \r
                 /**\r
+                      *  request to get NSConsumer pointer\r
+                      * @param id -id as string\r
+                      *\r
+                      * @return pointer to NSConsumer\r
+                      */\r
+                NSConsumer *getConsumer(const std::string &id);\r
+\r
+                /**\r
                       *  get list of Consumers accepted.\r
                       * @return m_acceptedConsumers -list of accepted Consumers\r
                       */\r
index 58a0fae..a81f875 100755 (executable)
@@ -40,7 +40,7 @@ namespace OIC
         {\r
             if (consumer != nullptr)\r
             {\r
-                m_consumerId = consumer->consumerId;\r
+                m_consumerId.assign(consumer->consumerId, NS_UTILS_UUID_STRING_SIZE - 1);\r
             }\r
         }\r
 \r
@@ -49,40 +49,39 @@ namespace OIC
             return m_consumerId;\r
         }\r
 \r
-        int NSConsumer::acceptSubscription(NSConsumer *consumer, bool accepted)\r
+        int NSConsumer::acceptSubscription(bool accepted)\r
         {\r
             NS_LOG(DEBUG, "acceptSubscription - IN");\r
-            if (consumer != nullptr)\r
-                return NSAcceptSubscription(consumer->getNSConsumer(), accepted);\r
+            NSResult result = (NSResult) NSAcceptSubscription(getConsumerId().c_str(), accepted);\r
             NS_LOG(DEBUG, "acceptSubscription - OUT");\r
-            return NS_ERROR;\r
+            return (int) result;\r
         }\r
 \r
-        NSResult NSConsumer::selectTopic(const std::string &topicName)\r
+        NSResult NSConsumer::setTopic(const std::string &topicName)\r
         {\r
-            NS_LOG(DEBUG, "selectTopic - IN");\r
-            NSResult result = (NSResult) NSProviderSelectTopic(OICStrdup(getConsumerId().c_str()),\r
-                              OICStrdup(topicName.c_str()));\r
-            NS_LOG(DEBUG, "selectTopic - OUT");\r
+            NS_LOG(DEBUG, "setTopic - IN");\r
+            NSResult result = (NSResult) NSProviderSetConsumerTopic(getConsumerId().c_str(),\r
+                              topicName.c_str());\r
+            NS_LOG(DEBUG, "setTopic - OUT");\r
             return result;\r
         }\r
 \r
-        NSResult NSConsumer::unselectTopic(const std::string &topicName)\r
+        NSResult NSConsumer::unsetTopic(const std::string &topicName)\r
         {\r
-            NS_LOG(DEBUG, "unselectTopic - IN");\r
-            NSResult result = (NSResult) NSProviderUnselectTopic(OICStrdup(getConsumerId().c_str()),\r
-                              OICStrdup(topicName.c_str()));\r
-            NS_LOG(DEBUG, "unselectTopic - OUT");\r
+            NS_LOG(DEBUG, "unsetTopic - IN");\r
+            NSResult result = (NSResult) NSProviderUnsetConsumerTopic(getConsumerId().c_str(),\r
+                              topicName.c_str());\r
+            NS_LOG(DEBUG, "unsetTopic - OUT");\r
             return result;\r
         }\r
 \r
-        NSTopicsList *NSConsumer::getConsumerTopics()\r
+        NSTopicsList *NSConsumer::getConsumerTopicList()\r
         {\r
-            NS_LOG(DEBUG, "getConsumerTopics - IN");\r
-            ::NSTopicLL *topics = NSProviderGetConsumerTopics(OICStrdup(getConsumerId().c_str()));\r
+            NS_LOG(DEBUG, "getConsumerTopicList - IN");\r
+            ::NSTopicLL *topics = NSProviderGetConsumerTopics(getConsumerId().c_str());\r
 \r
             NSTopicsList *nsTopics = new NSTopicsList(topics);\r
-            NS_LOG(DEBUG, "getConsumerTopics - OUT");\r
+            NS_LOG(DEBUG, "getConsumerTopicList - OUT");\r
             return nsTopics;\r
         }\r
     }\r
index c2e2855..2e180ae 100755 (executable)
@@ -40,7 +40,7 @@ namespace OIC
             NSProviderService::getInstance()->getAcceptedConsumers().push_back(nsConsumer);\r
             if (NSProviderService::getInstance()->getProviderConfig().m_subscribeRequestCb != NULL)\r
             {\r
-                NS_LOG(DEBUG, "initiating the callback");\r
+                NS_LOG(DEBUG, "initiating the callback for consumer subscribed");\r
                 NSProviderService::getInstance()->getProviderConfig().m_subscribeRequestCb(nsConsumer);\r
             }\r
             NS_LOG(DEBUG, "onConsumerSubscribedCallback - OUT");\r
@@ -52,7 +52,7 @@ namespace OIC
             NSSyncInfo *nsSyncInfo = new NSSyncInfo(syncInfo);\r
             if (NSProviderService::getInstance()->getProviderConfig().m_syncInfoCb != NULL)\r
             {\r
-                NS_LOG(DEBUG, "initiating the callback");\r
+                NS_LOG(DEBUG, "initiating the callback for synchronized");\r
                 NSProviderService::getInstance()->getProviderConfig().m_syncInfoCb(nsSyncInfo);\r
             }\r
             delete nsSyncInfo;\r
@@ -63,7 +63,7 @@ namespace OIC
         {\r
             ::NSMessage *nsMsg = new ::NSMessage;\r
             nsMsg->messageId = msg->getMessageId();\r
-            OICStrcpy(nsMsg->providerId, msg->getProviderId().length(), msg->getProviderId().c_str());\r
+            OICStrcpy(nsMsg->providerId, NS_UTILS_UUID_STRING_SIZE, msg->getProviderId().c_str());\r
             nsMsg->sourceName = OICStrdup(msg->getSourceName().c_str());\r
             nsMsg->type = (::NSMessageType) msg->getType();\r
             nsMsg->dateTime = OICStrdup(msg->getTime().c_str());\r
@@ -95,133 +95,121 @@ namespace OIC
             return &s_instance;\r
         }\r
 \r
-        NSResult NSProviderService::Start(NSProviderService::ProviderConfig config)\r
+        NSResult NSProviderService::start(NSProviderService::ProviderConfig config)\r
         {\r
-            NS_LOG(DEBUG, "Start - IN");\r
+            NS_LOG(DEBUG, "start - IN");\r
 \r
             m_config = config;\r
             NSProviderConfig nsConfig;\r
             nsConfig.subRequestCallback = onConsumerSubscribedCallback;\r
             nsConfig.syncInfoCallback = onMessageSynchronizedCallback;\r
-            nsConfig.policy = config.policy;\r
+            nsConfig.subControllability = config.subControllability;\r
             nsConfig.userInfo = OICStrdup(config.userInfo.c_str());\r
 \r
             NSResult result = (NSResult) NSStartProvider(nsConfig);\r
-            NS_LOG(DEBUG, "Start - OUT");\r
+            NS_LOG(DEBUG, "start - OUT");\r
             return result;\r
         }\r
 \r
-        NSResult NSProviderService::Stop()\r
+        NSResult NSProviderService::stop()\r
         {\r
-            NS_LOG(DEBUG, "Stop - IN");\r
+            NS_LOG(DEBUG, "stop - IN");\r
             NSResult result = (NSResult) NSStopProvider();\r
-            NS_LOG(DEBUG, "Stop - OUT");\r
+            NS_LOG(DEBUG, "stop - OUT");\r
             return result;\r
         }\r
 \r
-        NSResult NSProviderService::EnableRemoteService(const std::string &serverAddress)\r
+        NSResult NSProviderService::enableRemoteService(const std::string &serverAddress)\r
         {\r
-            NS_LOG(DEBUG, "EnableRemoteService - IN");\r
+            NS_LOG(DEBUG, "enableRemoteService - IN");\r
             NSResult result = NSResult::ERROR;\r
 #ifdef WITH_CLOUD\r
             result = (NSResult) NSProviderEnableRemoteService(OICStrdup(serverAddress.c_str()));\r
 #else\r
             NS_LOG(ERROR, "Remote Services feature is not enabled in the Build");\r
 #endif\r
-            NS_LOG(DEBUG, "EnableRemoteService - OUT");\r
+            NS_LOG(DEBUG, "enableRemoteService - OUT");\r
             return result;\r
         }\r
 \r
-        NSResult NSProviderService::DisableRemoteService(const std::string &serverAddress)\r
+        NSResult NSProviderService::disableRemoteService(const std::string &serverAddress)\r
         {\r
-            NS_LOG(DEBUG, "DisableRemoteService - IN");\r
+            NS_LOG(DEBUG, "disableRemoteService - IN");\r
             NSResult result = NSResult::ERROR;\r
 #ifdef WITH_CLOUD\r
             result = (NSResult) NSProviderDisableRemoteService(OICStrdup(serverAddress.c_str()));\r
 #else\r
             NS_LOG(ERROR, "Remote Services feature is not enabled in the Build");\r
 #endif\r
-            NS_LOG(DEBUG, "DisableRemoteService - OUT");\r
+            NS_LOG(DEBUG, "disableRemoteService - OUT");\r
             return result;\r
         }\r
 \r
-        NSResult NSProviderService::SendMessage(NSMessage *msg)\r
+        NSResult NSProviderService::sendMessage(NSMessage *msg)\r
         {\r
-            NS_LOG(DEBUG, "SendMessage - IN");\r
+            NS_LOG(DEBUG, "sendMessage - IN");\r
             NSResult result = NSResult::ERROR;\r
             if (msg != nullptr)\r
             {\r
                 ::NSMessage *nsMsg = getNSMessage(msg);\r
+\r
+                NS_LOG_V(DEBUG, "nsMsg->providerId : %s", nsMsg->providerId);\r
                 result = (NSResult) NSSendMessage(nsMsg);\r
                 delete nsMsg->mediaContents;\r
                 delete nsMsg;\r
             }\r
             else\r
                 NS_LOG(DEBUG, "Empty Message");\r
-            NS_LOG(DEBUG, "SendMessage - OUT");\r
+            NS_LOG(DEBUG, "sendMessage - OUT");\r
             return result;\r
         }\r
 \r
-        void NSProviderService::SendSyncInfo(uint64_t messageId,\r
+        void NSProviderService::sendSyncInfo(uint64_t messageId,\r
                                              NSSyncInfo::NSSyncType type)\r
         {\r
-            NS_LOG(DEBUG, "SendSyncInfo - IN");\r
+            NS_LOG(DEBUG, "sendSyncInfo - IN");\r
             NSProviderSendSyncInfo(messageId, (NSSyncType)type);\r
-            NS_LOG(DEBUG, "SendSyncInfo - OUT");\r
+            NS_LOG(DEBUG, "sendSyncInfo - OUT");\r
             return;\r
         }\r
 \r
-        NSMessage *NSProviderService::CreateMessage()\r
+        NSMessage *NSProviderService::createMessage()\r
         {\r
-            NS_LOG(DEBUG, "CreateMessage - IN");\r
+            NS_LOG(DEBUG, "createMessage - IN");\r
 \r
             ::NSMessage *message = NSCreateMessage();\r
             NSMessage *nsMessage = new NSMessage(message);\r
 \r
             NS_LOG_V(DEBUG, "Message ID : %lld", nsMessage->getMessageId());\r
             NS_LOG_V(DEBUG, "Provider ID : %s", nsMessage->getProviderId().c_str());\r
-            NS_LOG(DEBUG, "CreateMessage - OUT");\r
+            NS_LOG(DEBUG, "createMessage - OUT");\r
 \r
             return nsMessage;\r
         }\r
 \r
-        NSConsumer *NSProviderService::getConsumer(const std::string &id)\r
-        {\r
-            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
-        NSResult NSProviderService::AddTopic(const std::string &topicName)\r
+        NSResult NSProviderService::registerTopic(const std::string &topicName)\r
         {\r
-            NS_LOG(DEBUG, "AddTopic - IN");\r
-            NSResult result = (NSResult) NSProviderAddTopic(OICStrdup(topicName.c_str()));\r
-            NS_LOG(DEBUG, "AddTopic - OUT");\r
+            NS_LOG(DEBUG, "registerTopic - IN");\r
+            NSResult result = (NSResult) NSProviderRegisterTopic(topicName.c_str());\r
+            NS_LOG(DEBUG, "registerTopic - OUT");\r
             return result;\r
         }\r
 \r
-        NSResult NSProviderService::DeleteTopic(const std::string &topicName)\r
+        NSResult NSProviderService::unregisterTopic(const std::string &topicName)\r
         {\r
-            NS_LOG(DEBUG, "DeleteTopic - IN");\r
-            NSResult result = (NSResult) NSProviderDeleteTopic(OICStrdup(topicName.c_str()));\r
-            NS_LOG(DEBUG, "DeleteTopic - OUT");\r
+            NS_LOG(DEBUG, "unregisterTopic - IN");\r
+            NSResult result = (NSResult) NSProviderUnregisterTopic(topicName.c_str());\r
+            NS_LOG(DEBUG, "unregisterTopic - OUT");\r
             return result;\r
         }\r
 \r
-        NSTopicsList *NSProviderService::GetTopics()\r
+        NSTopicsList *NSProviderService::getRegisteredTopicList()\r
         {\r
-            NS_LOG(DEBUG, "GetTopics - IN");\r
+            NS_LOG(DEBUG, "getRegisteredTopicList - IN");\r
             ::NSTopicLL *topics = NSProviderGetTopics();\r
 \r
             NSTopicsList *nsTopics = new NSTopicsList(topics);\r
-            NS_LOG(DEBUG, "GetTopics - OUT");\r
+            NS_LOG(DEBUG, "getRegisteredTopicList - OUT");\r
             return nsTopics;\r
         }\r
 \r
@@ -230,7 +218,21 @@ namespace OIC
             return m_config;\r
         }\r
 \r
-        std::list<NSConsumer *>& NSProviderService::getAcceptedConsumers()\r
+        NSConsumer *NSProviderService::getConsumer(const std::string &id)\r
+        {\r
+            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
+        std::list<NSConsumer *> &NSProviderService::getAcceptedConsumers()\r
         {\r
             return m_acceptedConsumers;\r
         }\r