Updated Topic resource changes for C++ wrapper
[platform/upstream/iotivity.git] / service / notification / cpp-wrapper / provider / src / NSConsumer.cpp
1 //******************************************************************\r
2 //\r
3 // Copyright 2016 Samsung Electronics All Rights Reserved.\r
4 //\r
5 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
6 //\r
7 // Licensed under the Apache License, Version 2.0 (the "License");\r
8 // you may not use this file except in compliance with the License.\r
9 // You may obtain a copy of the License at\r
10 //\r
11 //      http://www.apache.org/licenses/LICENSE-2.0\r
12 //\r
13 // Unless required by applicable law or agreed to in writing, software\r
14 // distributed under the License is distributed on an "AS IS" BASIS,\r
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16 // See the License for the specific language governing permissions and\r
17 // limitations under the License.\r
18 //\r
19 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
20 \r
21 #include "NSConsumer.h"\r
22 #include <cstring>\r
23 #include "NSProviderInterface.h"\r
24 #include "NSConstants.h"\r
25 #include "oic_string.h"\r
26 #include "oic_malloc.h"\r
27 \r
28 namespace OIC\r
29 {\r
30     namespace Service\r
31     {\r
32         ::NSConsumer *NSConsumer::getNSConsumer()\r
33         {\r
34             ::NSConsumer *nsCon = new ::NSConsumer;\r
35             OICStrcpy(nsCon->consumerId, NS_UTILS_UUID_STRING_SIZE, m_consumerId.c_str());\r
36             return nsCon;\r
37         }\r
38 \r
39         NSConsumer::NSConsumer(::NSConsumer *consumer)\r
40         {\r
41             if (consumer != nullptr)\r
42             {\r
43                 m_consumerId.assign(consumer->consumerId, NS_UTILS_UUID_STRING_SIZE);\r
44             }\r
45         }\r
46 \r
47         std::string NSConsumer::getConsumerId() const\r
48         {\r
49             return m_consumerId;\r
50         }\r
51 \r
52         int NSConsumer::acceptSubscription(NSConsumer *consumer, bool accepted)\r
53         {\r
54             NS_LOG(DEBUG, "acceptSubscription - IN");\r
55             if (consumer != nullptr)\r
56                 return NSAcceptSubscription(consumer->getNSConsumer(), accepted);\r
57             NS_LOG(DEBUG, "acceptSubscription - OUT");\r
58             return NS_ERROR;\r
59         }\r
60 \r
61         NSResult NSConsumer::selectTopic(const std::string &topicName)\r
62         {\r
63             NS_LOG(DEBUG, "selectTopic - IN");\r
64             NSResult result = (NSResult) NSProviderSelectTopic(OICStrdup(getConsumerId().c_str()),\r
65                               OICStrdup(topicName.c_str()));\r
66             NS_LOG(DEBUG, "selectTopic - OUT");\r
67             return result;\r
68         }\r
69 \r
70         NSResult NSConsumer::unselectTopic(const std::string &topicName)\r
71         {\r
72             NS_LOG(DEBUG, "unselectTopic - IN");\r
73             NSResult result = (NSResult) NSProviderUnselectTopic(OICStrdup(getConsumerId().c_str()),\r
74                               OICStrdup(topicName.c_str()));\r
75             NS_LOG(DEBUG, "unselectTopic - OUT");\r
76             return result;\r
77         }\r
78 \r
79         NSTopicsList *NSConsumer::getConsumerTopics()\r
80         {\r
81             NS_LOG(DEBUG, "getConsumerTopics - IN");\r
82             ::NSTopicLL *topics = NSProviderGetConsumerTopics(OICStrdup(getConsumerId().c_str()));\r
83 \r
84             NSTopicsList *nsTopics = new NSTopicsList(topics);\r
85             NS_LOG(DEBUG, "getConsumerTopics - OUT");\r
86             return nsTopics;\r
87         }\r
88     }\r
89 }\r