From: abitha.s Date: Fri, 26 Aug 2016 11:52:21 +0000 (+0530) Subject: 1. Modified the Accepted Providers Consumers list to return references X-Git-Tag: 1.2.0+RC3~219 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8c5f55bc4081c04c6c0efe2738ffc12c0c06e673;hp=e3193a0b511a2ab50a37a684af1156ae77f5602e;p=platform%2Fupstream%2Fiotivity.git 1. Modified the Accepted Providers Consumers list to return references 2. Added API to setTopic in Message for setting via application 3. Updated Logs Change-Id: Id3b37c148c3e96d391224ccb5cf75a57c40ced6f Signed-off-by: abitha.s Reviewed-on: https://gerrit.iotivity.org/gerrit/10965 Tested-by: jenkins-iotivity Reviewed-by: Uze Choi (cherry picked from commit 4bc6feed319d383524a70662318d25eb4bb14266) Reviewed-on: https://gerrit.iotivity.org/gerrit/11041 --- diff --git a/service/notification/cpp-wrapper/common/NSMessage.cpp b/service/notification/cpp-wrapper/common/NSMessage.cpp index a8aae6e..28780e0 100755 --- a/service/notification/cpp-wrapper/common/NSMessage.cpp +++ b/service/notification/cpp-wrapper/common/NSMessage.cpp @@ -155,5 +155,10 @@ namespace OIC { m_mediaContents = mediaContents; } + + void NSMessage::setTopic(const std::string &topic) + { + m_topic = topic; + } } } diff --git a/service/notification/cpp-wrapper/common/NSMessage.h b/service/notification/cpp-wrapper/common/NSMessage.h index f9dab49..3c4d8c6 100755 --- a/service/notification/cpp-wrapper/common/NSMessage.h +++ b/service/notification/cpp-wrapper/common/NSMessage.h @@ -187,6 +187,13 @@ namespace OIC */ std::string getTopic() const; + /** + * This method is for setting Topic for the Notification service Message. + * + * @return Topic as string. + */ + void setTopic(const std::string &topic); + private: uint64_t m_messageId; std::string m_providerId; diff --git a/service/notification/cpp-wrapper/consumer/inc/NSConsumerService.h b/service/notification/cpp-wrapper/consumer/inc/NSConsumerService.h index 36e2781..0b1c197 100755 --- a/service/notification/cpp-wrapper/consumer/inc/NSConsumerService.h +++ b/service/notification/cpp-wrapper/consumer/inc/NSConsumerService.h @@ -129,7 +129,7 @@ namespace OIC * get list of providers acceted. * @return m_acceptedProviders -list of accepted providers */ - std::list getAcceptedProviders(); + std::list &getAcceptedProviders(); private : ConsumerConfig m_config; diff --git a/service/notification/cpp-wrapper/consumer/src/NSConsumerService.cpp b/service/notification/cpp-wrapper/consumer/src/NSConsumerService.cpp index fbc4e12..f3ee775 100755 --- a/service/notification/cpp-wrapper/consumer/src/NSConsumerService.cpp +++ b/service/notification/cpp-wrapper/consumer/src/NSConsumerService.cpp @@ -35,7 +35,10 @@ namespace OIC NS_LOG(DEBUG, "onNSProviderDiscovered - IN"); NSProvider *nsProvider = new NSProvider(provider); if (NSConsumerService::getInstance()->getConsumerConfig().m_discoverCb != NULL) + { + NS_LOG(DEBUG, "initiating the callback"); NSConsumerService::getInstance()->getConsumerConfig().m_discoverCb(nsProvider); + } delete nsProvider; NS_LOG(DEBUG, "onNSProviderDiscovered - OUT"); } @@ -52,13 +55,19 @@ namespace OIC { NSConsumerService::getInstance()->getAcceptedProviders().push_back(nsProvider); if (changeCallback != NULL) + { + NS_LOG(DEBUG, "initiating the callback for Response : ALLOW"); changeCallback(nsProvider, (NSResponse) response); + } } else if (response == NS_DENY) { NSConsumerService::getInstance()->getAcceptedProviders().remove(nsProvider); if (changeCallback != NULL) + { + NS_LOG(DEBUG, "initiating the callback for Response : NS_DENY"); changeCallback(nsProvider, (NSResponse) response); + } delete nsProvider; } else if (response == NS_TOPIC) @@ -67,8 +76,15 @@ namespace OIC nsProvider->getProviderId()); if (oldProvider != nullptr) { + NS_LOG(DEBUG, "Provider with same Id exists. updating the Topics data"); + nsProvider->setListener(oldProvider->getMessageReceivedCb(), oldProvider->getSyncInfoReceivedCb()); NSConsumerService::getInstance()->getAcceptedProviders().remove(oldProvider); NSConsumerService::getInstance()->getAcceptedProviders().push_back(nsProvider); + if (changeCallback != NULL) + { + NS_LOG(DEBUG, "initiating the callback for Response : NS_TOPIC"); + changeCallback(nsProvider, (NSResponse) response); + } delete oldProvider; } } @@ -83,9 +99,11 @@ namespace OIC { if (it->getProviderId() == nsMessage->getProviderId()) { + NS_LOG(DEBUG, "Found Provider with given ID"); auto callback = it->getMessageReceivedCb(); if (callback != NULL) { + NS_LOG(DEBUG, "initiating the callback for messageReceived"); callback(nsMessage); } break; @@ -103,9 +121,11 @@ namespace OIC { if (it->getProviderId() == nsSyncInfo->getProviderId()) { + NS_LOG(DEBUG, "Found Provider with given ID"); auto callback = it->getSyncInfoReceivedCb(); if (callback != NULL) { + NS_LOG(DEBUG, "initiating the callback for SyncInfoReceived"); callback(nsSyncInfo); } break; @@ -184,8 +204,12 @@ namespace OIC for (auto it : getAcceptedProviders()) { if (it->getProviderId() == id) + { + NS_LOG(DEBUG, "getProvider : Found Provider with given ID"); return it; + } } + NS_LOG(DEBUG, "getProvider : Not Found Provider with given ID"); return NULL; } @@ -206,7 +230,7 @@ namespace OIC return m_config; } - std::list NSConsumerService::getAcceptedProviders() + std::list& NSConsumerService::getAcceptedProviders() { return m_acceptedProviders; } diff --git a/service/notification/cpp-wrapper/examples/linux/notificationserviceconsumer.cpp b/service/notification/cpp-wrapper/examples/linux/notificationserviceconsumer.cpp index effe625..3b7e48f 100755 --- a/service/notification/cpp-wrapper/examples/linux/notificationserviceconsumer.cpp +++ b/service/notification/cpp-wrapper/examples/linux/notificationserviceconsumer.cpp @@ -42,6 +42,9 @@ void onNotificationPostedCb(OIC::Service::NSMessage *notification) std::cout << "content : " << notification->getContentText() << std::endl; std::cout << "source : " << notification->getSourceName() << std::endl; std::cout << "topic : " << notification->getTopic() << std::endl; + + auto provider = NSConsumerService::getInstance()->getProvider(notification->getProviderId()); + provider->SendSyncInfo(notification->getMessageId(), OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_READ); } void onNotificationSyncCb(OIC::Service::NSSyncInfo *sync) @@ -75,49 +78,6 @@ void onProviderChangedCb(OIC::Service::NSProvider *provider, OIC::Service::NSRes std::cout << "Topic Name: " << it->getTopicName() << std::endl; std::cout << "Topic state: " << (int) it->getState() << std::endl; } - - std::cout << "7. Get Topics" << std::endl; - std::cout << "8. Select Topics" << std::endl; - std::cout << "0. Exit" << std::endl; - std::cout << "input: " << std::endl; - - int num = 0; - std::cin >> num; - switch (num) - { - case 7: - { - std::cout << "getInterestTopics" << std::endl; - if (provider != nullptr) - { - auto topicList = provider->getTopicList(); - if (topicList != nullptr) - for (auto it : topicList->getTopicsList()) - { - std::cout << "Topic Name: " << it->getTopicName() << std::endl; - std::cout << "Topic state: " << (int) it->getState() << std::endl; - } - } - } - break; - case 8: - { - std::cout << "selectInterestTopics" << std::endl; - if (provider != nullptr) - { - NSTopicsList *topicList = new NSTopicsList(); - topicList->addTopic("OCF_TOPIC1", NSTopic::NSTopicState::UNSUBSCRIBED); - topicList->addTopic("OCF_TOPIC2", NSTopic::NSTopicState::UNSUBSCRIBED); - topicList->addTopic("OCF_TOPIC3", NSTopic::NSTopicState::UNSUBSCRIBED); - - provider->selectInterestTopics(topicList); - } - } - break; - case 0: - default: - break; - } } } diff --git a/service/notification/cpp-wrapper/examples/linux/notificationserviceprovider.cpp b/service/notification/cpp-wrapper/examples/linux/notificationserviceprovider.cpp index ca2a37d..8f7e637 100755 --- a/service/notification/cpp-wrapper/examples/linux/notificationserviceprovider.cpp +++ b/service/notification/cpp-wrapper/examples/linux/notificationserviceprovider.cpp @@ -20,6 +20,7 @@ #include #include +#include #include "NSCommon.h" #include "NSProviderService.h" #include "NSUtils.h" @@ -35,6 +36,7 @@ using namespace std; using namespace OIC::Service; std::string mainConsumer; +uint64_t mainMessageId; extern char *strdup(const char *s); @@ -168,6 +170,8 @@ int main() msg->setTitle(title.c_str()); msg->setContentText(body.c_str()); msg->setSourceName("OCF"); + msg->setTopic(topic); + mainMessageId = msg->getMessageId(); NSProviderService::getInstance()->SendMessage(msg); @@ -176,7 +180,7 @@ int main() case 4: { std::cout << "SendSyncInfo" << std::endl; - NSProviderService::getInstance()->SendSyncInfo(1, + NSProviderService::getInstance()->SendSyncInfo(mainMessageId, OIC::Service::NSSyncInfo::NSSyncType::NS_SYNC_READ); break; } diff --git a/service/notification/cpp-wrapper/provider/inc/NSProviderService.h b/service/notification/cpp-wrapper/provider/inc/NSProviderService.h index 75ca9a2..06326dc 100755 --- a/service/notification/cpp-wrapper/provider/inc/NSProviderService.h +++ b/service/notification/cpp-wrapper/provider/inc/NSProviderService.h @@ -176,7 +176,7 @@ namespace OIC * get list of Consumers accepted. * @return m_acceptedConsumers -list of accepted Consumers */ - std::list getAcceptedConsumers(); + std::list &getAcceptedConsumers(); private : ProviderConfig m_config; diff --git a/service/notification/cpp-wrapper/provider/src/NSProviderService.cpp b/service/notification/cpp-wrapper/provider/src/NSProviderService.cpp index 0df46f7..c2e2855 100755 --- a/service/notification/cpp-wrapper/provider/src/NSProviderService.cpp +++ b/service/notification/cpp-wrapper/provider/src/NSProviderService.cpp @@ -37,9 +37,12 @@ namespace OIC { NS_LOG(DEBUG, "onConsumerSubscribedCallback - IN"); NSConsumer *nsConsumer = new NSConsumer(consumer); + NSProviderService::getInstance()->getAcceptedConsumers().push_back(nsConsumer); if (NSProviderService::getInstance()->getProviderConfig().m_subscribeRequestCb != NULL) + { + NS_LOG(DEBUG, "initiating the callback"); NSProviderService::getInstance()->getProviderConfig().m_subscribeRequestCb(nsConsumer); - NSProviderService::getInstance()->getAcceptedConsumers().push_back(nsConsumer); + } NS_LOG(DEBUG, "onConsumerSubscribedCallback - OUT"); } @@ -48,7 +51,10 @@ namespace OIC NS_LOG(DEBUG, "onMessageSynchronizedCallback - IN"); NSSyncInfo *nsSyncInfo = new NSSyncInfo(syncInfo); if (NSProviderService::getInstance()->getProviderConfig().m_syncInfoCb != NULL) + { + NS_LOG(DEBUG, "initiating the callback"); NSProviderService::getInstance()->getProviderConfig().m_syncInfoCb(nsSyncInfo); + } delete nsSyncInfo; NS_LOG(DEBUG, "onMessageSynchronizedCallback - OUT"); } @@ -64,6 +70,7 @@ namespace OIC nsMsg->ttl = msg->getTTL(); nsMsg->title = OICStrdup(msg->getTitle().c_str()); nsMsg->contentText = OICStrdup(msg->getContentText().c_str()); + nsMsg->topic = OICStrdup(msg->getTopic().c_str()); nsMsg->mediaContents = new ::NSMediaContents; if (msg->getMediaContents() != nullptr) @@ -183,8 +190,12 @@ namespace OIC for (auto it : getAcceptedConsumers()) { if (it->getConsumerId() == id) + { + NS_LOG(DEBUG, "getConsumer : Found Consumer with given ID"); return it; + } } + NS_LOG(DEBUG, "getConsumer : Not Found Consumer with given ID"); return NULL; } @@ -219,7 +230,7 @@ namespace OIC return m_config; } - std::list NSProviderService::getAcceptedConsumers() + std::list& NSProviderService::getAcceptedConsumers() { return m_acceptedConsumers; }