replace : iotivity -> iotivity-sec
[platform/upstream/iotivity.git] / service / notification / cpp-wrapper / consumer / inc / NSConsumerService.h
index f60dd57..0c020f0 100755 (executable)
@@ -28,7 +28,6 @@
 #ifndef _NS_CONSUMER_SERVICE_H_\r
 #define _NS_CONSUMER_SERVICE_H_\r
 \r
-#include <list>\r
 #include <algorithm>\r
 #include "NSProvider.h"\r
 #include "NSUtils.h"\r
@@ -38,19 +37,19 @@ namespace OIC
 {\r
     namespace Service\r
     {\r
+        class NSAcceptedProviders;\r
         /**\r
          * @class   NSConsumerService\r
          * @brief   This class provides a set of C++APIs for Notification Consumer.\r
          */\r
         class NSConsumerService\r
         {\r
-\r
             public :\r
                 /**\r
                      * Consumer uses this callback function to receive the discovered providers\r
                      * @param[in] provider        Provider who has the notification resource\r
                      */\r
-                typedef void (*ProviderDiscoveredCallback)(NSProvider *);\r
+                typedef void (*ProviderDiscoveredCallback)(std::shared_ptr<NSProvider> );\r
 \r
                 /**\r
                       * API for getting the Instance of NSConsumerService class\r
@@ -62,13 +61,15 @@ namespace OIC
                 /**\r
                       * Initialize notification service for consumer\r
                       * @param providerDiscovered Callback function pointers to ProviderDiscoveredCallback,\r
+                      * @return ::NS_OK or result code of NSResult\r
                       */\r
-                void start(ProviderDiscoveredCallback providerDiscovered);\r
+                NSResult start(ProviderDiscoveredCallback providerDiscovered);\r
 \r
                 /**\r
                       * Terminate notification service for consumer\r
+                      * @return ::NS_OK or result code of NSResult\r
                       */\r
-                void stop();\r
+                NSResult stop();\r
 \r
                 /**\r
                      * Request to discover to remote address as parameter.\r
@@ -78,9 +79,18 @@ namespace OIC
                 NSResult enableRemoteService(const std::string &serverAddress);\r
 \r
                 /**\r
+                      * Request to subscribe to remote MQ address as parameter.\r
+                      * @param[in] server address combined with IP address and port number and MQ broker uri using delimiter :\r
+                      * @param[in] topicName the interest Topic name for subscription.\r
+                      * @return ::NS_OK or result code of NSResult\r
+                      */\r
+                NSResult subscribeMQService(const std::string &serverAddress, const std::string &topicName);\r
+\r
+                /**\r
                       * Request discovery manually\r
+                      * @return ::NS_OK or result code of NSResult\r
                       */\r
-                void rescanProvider();\r
+                NSResult rescanProvider();\r
 \r
                 /**\r
                       *  get the callback for ProviderDiscovered\r
@@ -89,22 +99,22 @@ namespace OIC
                 ProviderDiscoveredCallback getProviderDiscoveredCb();\r
 \r
                 /**\r
-                      *  request to get NSProvider pointer\r
-                      * @param id -id as string\r
-                      *\r
-                      * @return pointer to NSProvider\r
-                      */\r
-                NSProvider *getProvider(const std::string &id);\r
+                     *  request to get NSProvider pointer\r
+                     * @param id -id as string\r
+                     *\r
+                     * @return shared pointer to NSProvider\r
+                     */\r
+                std::shared_ptr<NSProvider> getProvider(const std::string &id);\r
 \r
                 /**\r
-                      *  get list of providers acceted.\r
-                      * @return m_acceptedProviders -list of accepted providers\r
+                      *  get handle of providers accepted.\r
+                      * @return m_acceptedProviders -accepted providers\r
                       */\r
-                std::list<NSProvider *> &getAcceptedProviders();\r
+                NSAcceptedProviders *getAcceptedProviders();\r
 \r
             private :\r
                 ProviderDiscoveredCallback m_providerDiscoveredCb;\r
-                std::list<NSProvider *> m_acceptedProviders;\r
+                NSAcceptedProviders *m_acceptedProviders;\r
 \r
             private :\r
                 NSConsumerService();\r
@@ -114,6 +124,10 @@ namespace OIC
                 NSConsumerService(const NSConsumerService &&) = delete;\r
                 NSConsumerService &operator=(const NSConsumerService && ) = delete;\r
 \r
+                static void onProviderStateReceived(::NSProvider *provider, ::NSProviderState state);\r
+                static void onNSMessageReceived(::NSMessage *message);\r
+                static void onNSSyncInfoReceived(::NSSyncInfo *syncInfo);\r
+\r
         };\r
     }\r
 }\r