\r
NSMessage &NSMessage::operator=(const NSMessage &msg)\r
{\r
- m_messageId = msg.getMessageId();\r
- m_providerId = msg.getProviderId();\r
+ this->m_messageId = msg.getMessageId();\r
+ this->m_providerId = msg.getProviderId();\r
\r
- m_type = msg.getType();\r
- m_time = msg.getTime();\r
- m_ttl = msg.getTTL();\r
- m_title = msg.getTitle();\r
- m_contentText = msg.getContentText();\r
- m_sourceName = msg.getSourceName();\r
+ this->m_type = msg.getType();\r
+ this->m_time = msg.getTime();\r
+ this->m_ttl = msg.getTTL();\r
+ this->m_title = msg.getTitle();\r
+ this->m_contentText = msg.getContentText();\r
+ this->m_sourceName = msg.getSourceName();\r
\r
if (msg.getMediaContents() != nullptr)\r
- m_mediaContents = new NSMediaContents(msg.getMediaContents()->getIconImage());\r
+ this->m_mediaContents = new NSMediaContents(msg.getMediaContents()->getIconImage());\r
else\r
- m_mediaContents = new NSMediaContents();\r
- m_topic = msg.getTopic();\r
+ this->m_mediaContents = new NSMediaContents();\r
+ this->m_topic = msg.getTopic();\r
return *this;\r
}\r
\r
{
for (auto it : topicsList.getTopicsList())
{
- addTopic(it->getTopicName(), it->getState());
+ this->addTopic(it->getTopicName(), it->getState());
}
return *this;
}
ALLOW = 1,
DENY = 2,
TOPIC = 3,
- DISCOVERED = 11,
STOPPED = 12
};
+
+ /**
+ * NSProviderSubscribedState of notification service
+ */
+ enum class NSProviderSubscribedState
+ {
+ DENY = 0,
+ DISCOVERED = 1,
+ SUBSCRIBED = 2
+ };
}
}
#endif /* _NS_UTILS_H_ */
* Constructor of NSProvider.\r
*/\r
NSProvider(): m_topicList(new NSTopicsList()), m_state(NSProviderState::DENY),\r
+ m_subscribedState(NSProviderSubscribedState::DENY),\r
m_stateCb(NULL), m_messageCb(NULL), m_syncInfoCb(NULL) {}\r
\r
/**\r
*/\r
NSProvider(const std::string &providerId) : m_providerId(providerId),\r
m_topicList(new NSTopicsList()), m_state(NSProviderState::DENY),\r
+ m_subscribedState(NSProviderSubscribedState::DENY),\r
m_stateCb(NULL), m_messageCb(NULL), m_syncInfoCb(NULL) {}\r
\r
/**\r
*/\r
NSProvider(const std::string &providerId, NSTopicsList *topicList) : m_providerId(\r
providerId), m_topicList(topicList), m_state(NSProviderState::DENY),\r
+ m_subscribedState(NSProviderSubscribedState::DENY),\r
m_stateCb(NULL), m_messageCb(NULL), m_syncInfoCb(NULL) {}\r
\r
/**\r
NSProviderState getProviderState() const;\r
\r
/**\r
+ * This method is for getting SubscribedState from the Notification service provider.\r
+ *\r
+ * @return subscribedState as NSProviderSubscribedState.\r
+ */\r
+ NSProviderSubscribedState getProviderSubscribedState() const;\r
+\r
+ /**\r
* This method is for requesting subscription of Notification service.\r
*\r
*/\r
*/\r
void setProviderState(const NSProviderState &providerState);\r
\r
+ /**\r
+ * This method is for setting subscribedState for the Notification service provider.\r
+ *\r
+ * @param subscribedState as NSProviderSubscribedState.\r
+ */\r
+ void setProviderSubscribedState(const NSProviderSubscribedState &subscribedState);\r
+\r
private:\r
::NSProvider *getNSProvider();\r
\r
std::string m_providerId;\r
NSTopicsList *m_topicList;\r
NSProviderState m_state;\r
+ NSProviderSubscribedState m_subscribedState;\r
\r
ProviderStateCallback m_stateCb;\r
MessageReceivedCallback m_messageCb;\r
nsProvider->setTopicList(new NSTopicsList(topicLL));\r
if (state == NS_DISCOVERED)\r
{\r
+ nsProvider->setProviderSubscribedState(NSProviderSubscribedState::DISCOVERED);\r
if (discoveredCallback != NULL)\r
{\r
NS_LOG(DEBUG, "initiating the Discovered callback : NS_DISCOVERED, policy false");\r
}\r
else if (state == NS_ALLOW)\r
{\r
+ nsProvider->setProviderSubscribedState(NSProviderSubscribedState::SUBSCRIBED);\r
if (discoveredCallback != NULL)\r
{\r
NS_LOG(DEBUG, "initiating the Discovered callback : NS_ALLOW, policy true");\r
delete nsProvider;\r
if (state == NS_ALLOW)\r
{\r
+ oldProvider->setProviderSubscribedState(NSProviderSubscribedState::SUBSCRIBED);\r
if (changeCallback != NULL)\r
{\r
NS_LOG(DEBUG, "initiating the callback for Response : NS_ALLOW");\r
}\r
else if (state == NS_DENY)\r
{\r
+ oldProvider->setProviderSubscribedState(NSProviderSubscribedState::DENY);\r
NSConsumerService::getInstance()->getAcceptedProviders().remove(oldProvider);\r
if (changeCallback != NULL)\r
{\r
}\r
else if (state == NS_STOPPED)\r
{\r
+ oldProvider->setProviderSubscribedState(NSProviderSubscribedState::DENY);\r
+ NSConsumerService::getInstance()->getAcceptedProviders().remove(oldProvider);\r
NS_LOG(DEBUG, "initiating the State callback : NS_STOPPED");\r
if (changeCallback != NULL)\r
{\r
- NS_LOG(DEBUG, "initiating the callback for Response : NS_TOPIC");\r
+ NS_LOG(DEBUG, "initiating the callback for Response : NS_STOPPED");\r
changeCallback((NSProviderState)state);\r
}\r
}\r
{\r
NS_LOG(DEBUG, "stop - IN");\r
NSStopConsumer();\r
+ for (auto it : getAcceptedProviders())\r
+ {\r
+ delete it;\r
+ }\r
+ getAcceptedProviders().clear();\r
NS_LOG(DEBUG, "stop - OUT");\r
return;\r
}\r
m_messageCb = NULL;\r
m_syncInfoCb = NULL;\r
m_state = NSProviderState::DENY;\r
+ m_subscribedState = NSProviderSubscribedState::DENY;\r
+\r
m_topicList = new NSTopicsList();\r
\r
if (provider != nullptr)\r
NSProvider::NSProvider(const NSProvider &provider)\r
{\r
m_providerId = provider.getProviderId();\r
+ m_topicList = new NSTopicsList();\r
auto topicsList = provider.getTopicList();\r
if (topicsList != nullptr)\r
{\r
setListener(provider.getProviderStateReceivedCb(), provider.getMessageReceivedCb(),\r
provider.getSyncInfoReceivedCb());\r
setProviderState(provider.getProviderState());\r
+ setProviderSubscribedState(provider.getProviderSubscribedState());\r
}\r
\r
NSProvider &NSProvider::operator=(const NSProvider &provider)\r
{\r
- m_providerId = provider.getProviderId();\r
+ this->m_providerId = provider.getProviderId();\r
+ this->m_topicList = new NSTopicsList();\r
auto topicsList = provider.getTopicList();\r
if (topicsList != nullptr)\r
{\r
for (auto it : topicsList->getTopicsList())\r
{\r
- getTopicList()->addTopic(it->getTopicName(), it->getState());\r
+ this->getTopicList()->addTopic(it->getTopicName(), it->getState());\r
}\r
}\r
- setListener(provider.getProviderStateReceivedCb(), provider.getMessageReceivedCb(),\r
- provider.getSyncInfoReceivedCb());\r
- setProviderState(provider.getProviderState());\r
+ this->setListener(provider.getProviderStateReceivedCb(), provider.getMessageReceivedCb(),\r
+ provider.getSyncInfoReceivedCb());\r
+ this->setProviderState(provider.getProviderState());\r
+ this->setProviderSubscribedState(provider.getProviderSubscribedState());\r
return *this;\r
}\r
\r
return m_state;\r
}\r
\r
+ NSProviderSubscribedState NSProvider::getProviderSubscribedState() const\r
+ {\r
+ NS_LOG_V(DEBUG, "getProviderSubscribedState state : %d", (int)m_subscribedState);\r
+ return m_subscribedState;\r
+ }\r
+\r
void NSProvider::subscribe()\r
{\r
NS_LOG(DEBUG, "Subscribe - IN");\r
bool NSProvider::isSubscribed()\r
{\r
NS_LOG(DEBUG, "isSubscribed - IN");\r
- auto state = getProviderState();\r
- NS_LOG_V(DEBUG, "state : %d", (int)state);\r
- if ((state == NSProviderState::ALLOW) || (state == NSProviderState::TOPIC) )\r
+ NS_LOG_V(DEBUG, "Subscribed state : %d", (int)getProviderSubscribedState());\r
+ if (getProviderSubscribedState() == NSProviderSubscribedState::SUBSCRIBED)\r
return true;\r
return false;\r
}\r
{\r
m_state = providerState;\r
}\r
+\r
+ void NSProvider::setProviderSubscribedState(const NSProviderSubscribedState &subscribedState)\r
+ {\r
+ m_subscribedState = subscribedState;\r
+ }\r
}\r
}\r
std::cout << "topic : " << notification->getTopic() << std::endl;\r
\r
auto provider = NSConsumerService::getInstance()->getProvider(notification->getProviderId());\r
- provider->sendSyncInfo(notification->getMessageId(),\r
- OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_READ);\r
+ if (provider != nullptr)\r
+ provider->sendSyncInfo(notification->getMessageId(),\r
+ OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_READ);\r
}\r
\r
void onNotificationSyncCb(OIC::Service::NSSyncInfo *sync)\r
{\r
std::cout << "SendMessage" << std::endl;\r
\r
+ std::string dummy;\r
std::string title;\r
std::string body;\r
std::string topic;\r
std::cout << "id : " << ++id << std::endl;\r
std::cout << "title : ";\r
\r
- std::cin >> title;\r
+ std::getline(std::cin, dummy);\r
+ std::getline(std::cin, title);\r
\r
std::cout << "body : ";\r
- std::cin >> body;\r
+ std::getline(std::cin, body);\r
\r
std::cout << "topic : ";\r
- std::cin >> topic;\r
+ std::getline(std::cin, topic);\r
\r
std::cout << "app - mTitle : " << title << std::endl;\r
std::cout << "app - mContentText : " << body << std::endl;\r