#ifndef _NS_CONSUMER_SERVICE_H_\r
#define _NS_CONSUMER_SERVICE_H_\r
\r
-#include "NSCommon.h"\r
-#include "NSConsumerInterface.h"\r
-#include <list>\r
#include <algorithm>\r
-#include "NSConstants.h"\r
+#include "NSProvider.h"\r
+#include "NSUtils.h"\r
\r
\r
namespace OIC\r
{\r
namespace Service\r
{\r
- class NSProvider;\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
-\r
- /**\r
- * Consumer uses this callback function on subscription accepted by provider\r
- * @param[in] provider Provider who has the notification resource\r
- */\r
- typedef void (* AcceptedCallback)(NSProvider *);\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_acceptedCb - AcceptedCallback callback listener.*/\r
- AcceptedCallback m_acceptedCb;\r
- } ConsumerConfig;\r
+ typedef void (*ProviderDiscoveredCallback)(std::shared_ptr<NSProvider> );\r
\r
/**\r
* API for getting the Instance of NSConsumerService class\r
\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
+ * @return ::NS_OK or result code of NSResult\r
*/\r
- void Start(ConsumerConfig config);\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
- * @param[in] server address combined with IP address and port number using delimiter :\r
- * @return result code of NSResult\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
+ * 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
- void RescanProvider();\r
+ NSResult subscribeMQService(const std::string &serverAddress, const std::string &topicName);\r
\r
/**\r
- * request to get NSProvider pointer\r
- * @param id -id as string\r
- *\r
- * @return pointer to NSProvider\r
+ * Request discovery manually\r
+ * @return ::NS_OK or result code of NSResult\r
*/\r
- NSProvider *getProvider(const std::string &id);\r
+ NSResult rescanProvider();\r
\r
/**\r
- * get consumer config values\r
- * @return ConsumerConfig callbaks set\r
+ * get the callback for ProviderDiscovered\r
+ * @return ProviderDiscoveredCallback callbak set\r
*/\r
- ConsumerConfig getConsumerConfig();\r
+ ProviderDiscoveredCallback getProviderDiscoveredCb();\r
+\r
+ /**\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
- ConsumerConfig m_config;\r
- std::list<NSProvider *> m_acceptedProviders;\r
+ ProviderDiscoveredCallback m_providerDiscoveredCb;\r
+ NSAcceptedProviders *m_acceptedProviders;\r
\r
private :\r
NSConsumerService();\r
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