{\r
m_mediaContents = mediaContents;\r
}\r
+\r
+ void NSMessage::setTopic(const std::string &topic)\r
+ {\r
+ m_topic = topic;\r
+ }\r
}\r
}\r
*/\r
std::string getTopic() const;\r
\r
+ /**\r
+ * This method is for setting Topic for the Notification service Message.\r
+ *\r
+ * @return Topic as string.\r
+ */\r
+ void setTopic(const std::string &topic);\r
+\r
private:\r
uint64_t m_messageId;\r
std::string m_providerId;\r
* get list of providers acceted.\r
* @return m_acceptedProviders -list of accepted providers\r
*/\r
- std::list<NSProvider *> getAcceptedProviders();\r
+ std::list<NSProvider *> &getAcceptedProviders();\r
\r
private :\r
ConsumerConfig m_config;\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
NSConsumerService::getInstance()->getAcceptedProviders().push_back(nsProvider);\r
if (changeCallback != NULL)\r
+ {\r
+ NS_LOG(DEBUG, "initiating the callback for Response : ALLOW");\r
changeCallback(nsProvider, (NSResponse) response);\r
+ }\r
}\r
else if (response == NS_DENY)\r
{\r
NSConsumerService::getInstance()->getAcceptedProviders().remove(nsProvider);\r
if (changeCallback != NULL)\r
+ {\r
+ NS_LOG(DEBUG, "initiating the callback for Response : NS_DENY");\r
changeCallback(nsProvider, (NSResponse) response);\r
+ }\r
delete nsProvider;\r
}\r
else if (response == NS_TOPIC)\r
nsProvider->getProviderId());\r
if (oldProvider != nullptr)\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
+ }\r
delete oldProvider;\r
}\r
}\r
{\r
if (it->getProviderId() == nsMessage->getProviderId())\r
{\r
+ NS_LOG(DEBUG, "Found Provider with given ID");\r
auto callback = it->getMessageReceivedCb();\r
if (callback != NULL)\r
{\r
+ NS_LOG(DEBUG, "initiating the callback for messageReceived");\r
callback(nsMessage);\r
}\r
break;\r
{\r
if (it->getProviderId() == nsSyncInfo->getProviderId())\r
{\r
+ NS_LOG(DEBUG, "Found Provider with given ID");\r
auto callback = it->getSyncInfoReceivedCb();\r
if (callback != NULL)\r
{\r
+ NS_LOG(DEBUG, "initiating the callback for SyncInfoReceived");\r
callback(nsSyncInfo);\r
}\r
break;\r
for (auto it : getAcceptedProviders())\r
{\r
if (it->getProviderId() == id)\r
+ {\r
+ NS_LOG(DEBUG, "getProvider : Found Provider with given ID");\r
return it;\r
+ }\r
}\r
+ NS_LOG(DEBUG, "getProvider : Not Found Provider with given ID");\r
return NULL;\r
}\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
std::cout << "content : " << notification->getContentText() << std::endl;\r
std::cout << "source : " << notification->getSourceName() << std::endl;\r
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
}\r
\r
void onNotificationSyncCb(OIC::Service::NSSyncInfo *sync)\r
std::cout << "Topic Name: " << it->getTopicName() << std::endl;\r
std::cout << "Topic state: " << (int) it->getState() << std::endl;\r
}\r
-\r
- std::cout << "7. Get Topics" << std::endl;\r
- std::cout << "8. Select Topics" << std::endl;\r
- std::cout << "0. Exit" << std::endl;\r
- std::cout << "input: " << std::endl;\r
-\r
- int num = 0;\r
- std::cin >> num;\r
- switch (num)\r
- {\r
- case 7:\r
- {\r
- std::cout << "getInterestTopics" << std::endl;\r
- if (provider != nullptr)\r
- {\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
- break;\r
- case 8:\r
- {\r
- std::cout << "selectInterestTopics" << std::endl;\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_TOPIC3", NSTopic::NSTopicState::UNSUBSCRIBED);\r
-\r
- provider->selectInterestTopics(topicList);\r
- }\r
- }\r
- break;\r
- case 0:\r
- default:\r
- break;\r
- }\r
}\r
}\r
\r
\r
#include <iostream>\r
#include <stdlib.h>\r
+#include <cstdint>\r
#include "NSCommon.h"\r
#include "NSProviderService.h"\r
#include "NSUtils.h"\r
using namespace std;\r
using namespace OIC::Service;\r
std::string mainConsumer;\r
+uint64_t mainMessageId;\r
\r
extern char *strdup(const char *s);\r
\r
msg->setTitle(title.c_str());\r
msg->setContentText(body.c_str());\r
msg->setSourceName("OCF");\r
+ msg->setTopic(topic);\r
+ mainMessageId = msg->getMessageId();\r
\r
NSProviderService::getInstance()->SendMessage(msg);\r
\r
case 4:\r
{\r
std::cout << "SendSyncInfo" << std::endl;\r
- NSProviderService::getInstance()->SendSyncInfo(1,\r
+ NSProviderService::getInstance()->SendSyncInfo(mainMessageId,\r
OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_READ);\r
break;\r
}\r
* get list of Consumers accepted.\r
* @return m_acceptedConsumers -list of accepted Consumers\r
*/\r
- std::list<NSConsumer *> getAcceptedConsumers();\r
+ std::list<NSConsumer *> &getAcceptedConsumers();\r
\r
private :\r
ProviderConfig m_config;\r
{\r
NS_LOG(DEBUG, "onConsumerSubscribedCallback - IN");\r
NSConsumer *nsConsumer = new NSConsumer(consumer);\r
+ NSProviderService::getInstance()->getAcceptedConsumers().push_back(nsConsumer);\r
if (NSProviderService::getInstance()->getProviderConfig().m_subscribeRequestCb != NULL)\r
+ {\r
+ NS_LOG(DEBUG, "initiating the callback");\r
NSProviderService::getInstance()->getProviderConfig().m_subscribeRequestCb(nsConsumer);\r
- NSProviderService::getInstance()->getAcceptedConsumers().push_back(nsConsumer);\r
+ }\r
NS_LOG(DEBUG, "onConsumerSubscribedCallback - OUT");\r
}\r
\r
NS_LOG(DEBUG, "onMessageSynchronizedCallback - IN");\r
NSSyncInfo *nsSyncInfo = new NSSyncInfo(syncInfo);\r
if (NSProviderService::getInstance()->getProviderConfig().m_syncInfoCb != NULL)\r
+ {\r
+ NS_LOG(DEBUG, "initiating the callback");\r
NSProviderService::getInstance()->getProviderConfig().m_syncInfoCb(nsSyncInfo);\r
+ }\r
delete nsSyncInfo;\r
NS_LOG(DEBUG, "onMessageSynchronizedCallback - OUT");\r
}\r
nsMsg->ttl = msg->getTTL();\r
nsMsg->title = OICStrdup(msg->getTitle().c_str());\r
nsMsg->contentText = OICStrdup(msg->getContentText().c_str());\r
+ nsMsg->topic = OICStrdup(msg->getTopic().c_str());\r
\r
nsMsg->mediaContents = new ::NSMediaContents;\r
if (msg->getMediaContents() != nullptr)\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
return m_config;\r
}\r
\r
- std::list<NSConsumer *> NSProviderService::getAcceptedConsumers()\r
+ std::list<NSConsumer *>& NSProviderService::getAcceptedConsumers()\r
{\r
return m_acceptedConsumers;\r
}\r