#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
{\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
/**\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
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
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
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