{\r
namespace Service\r
{\r
+ class NSAcceptedConsumers;\r
/**\r
* @class NSProviderService\r
* @brief This class provides a set of C++APIs for Notification Provider.\r
*/\r
class NSProviderService\r
{\r
-\r
public:\r
/**\r
* Provider uses this callback function to receive subscription request of consumer\r
* @param[in] consumer Consumer who subscribes the notification message resource\r
*/\r
- typedef void (*ConsumerSubscribedCallback)(NSConsumer *);\r
+ typedef void (*ConsumerSubscribedCallback)(std::shared_ptr<NSConsumer> );\r
\r
/**\r
* Provider use this callback function to receive the status of the message\r
* synchronization\r
* @param[in] sync Synchronization information of the notification message\r
*/\r
- typedef void (*MessageSynchronizedCallback)(NSSyncInfo *);\r
+ typedef void (*MessageSynchronizedCallback)(NSSyncInfo );\r
\r
\r
/**\r
NSResult disableRemoteService(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
* 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(const NSMessage &msg);\r
\r
\r
/**\r
* Send read-check to provider in order to synchronize notification status with other consumers\r
* @param[in] messageId ID of Notification message to synchronize the status\r
* @param[in] type NotificationSyncType of the SyncInfo message\r
+ * @return :: OK or result code of NSResult\r
*/\r
- void sendSyncInfo(uint64_t messageId, NSSyncInfo::NSSyncType type);\r
+ NSResult sendSyncInfo(uint64_t messageId, NSSyncInfo::NSSyncType type);\r
\r
/**\r
* Initialize NSMessage class, This function is valid only when subControllability is set true.\r
* @return NSMessage *\r
*/\r
- NSMessage *createMessage();\r
+ NSMessage createMessage();\r
\r
/**\r
* Add topic to topic list which is located in provider service storage\r
* Request topics list already registered by provider user\r
* @return :: Topic list\r
*/\r
- NSTopicsList *getRegisteredTopicList();\r
+ std::shared_ptr<NSTopicsList> getRegisteredTopicList();\r
\r
/**\r
* get Provider config values\r
* request to get NSConsumer pointer\r
* @param id -id as string\r
*\r
- * @return pointer to NSConsumer\r
+ * @return shared pointer to NSConsumer\r
*/\r
- NSConsumer *getConsumer(const std::string &id);\r
+ std::shared_ptr<NSConsumer> getConsumer(const std::string &id);\r
\r
/**\r
- * get list of Consumers accepted.\r
- * @return m_acceptedConsumers -list of accepted Consumers\r
+ * get handle of Consumers accepted.\r
+ * @return m_acceptedConsumers -accepted Consumers\r
*/\r
- std::list<NSConsumer *> &getAcceptedConsumers();\r
+ NSAcceptedConsumers *getAcceptedConsumers();\r
\r
private :\r
ProviderConfig m_config;\r
- std::list<NSConsumer *> m_acceptedConsumers;\r
+ NSAcceptedConsumers *m_acceptedConsumers;\r
\r
private:\r
- NSProviderService()\r
- {\r
- m_config.m_subscribeRequestCb = NULL;\r
- m_config.m_syncInfoCb = NULL;\r
- }\r
+ NSProviderService();\r
~NSProviderService();\r
NSProviderService(const NSProviderService &) = delete;\r
NSProviderService &operator=(const NSProviderService &) = delete;\r
NSProviderService(const NSProviderService &&) = delete;\r
NSProviderService &operator=(const NSProviderService && ) = delete;\r
\r
- ::NSMessage *getNSMessage(NSMessage *msg);\r
+ ::NSMessage *getNSMessage(const NSMessage &msg);\r
+ static void onConsumerSubscribedCallback(::NSConsumer *consumer);\r
+ static void onMessageSynchronizedCallback(::NSSyncInfo *syncInfo);\r
};\r
}\r
}\r