Merge branch 'master' into notification-service
[platform/upstream/iotivity.git] / service / notification / cpp-wrapper / consumer / src / NSProvider.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 "NSProvider.h"\r
22 #include <cstring>\r
23 #include "NSConsumerInterface.h"\r
24 #include "NSConstants.h"\r
25 #include "NSCommon.h"\r
26 #include "oic_string.h"\r
27 \r
28 namespace OIC\r
29 {\r
30     namespace Service\r
31     {\r
32         ::NSProvider *NSProvider::getNSProvider()\r
33         {\r
34             ::NSProvider *provider = new ::NSProvider;\r
35             OICStrcpy(provider->providerId, m_providerId.length(), m_providerId.c_str());\r
36             return provider;\r
37         }\r
38 \r
39         NSProvider::NSProvider(::NSProvider *provider)\r
40         {\r
41             m_messageCb = NULL;\r
42             m_syncInfoCb = NULL;\r
43             if (provider != nullptr)\r
44             {\r
45                 if ((provider->providerId != nullptr) && strlen(provider->providerId))\r
46                     m_providerId.assign(provider->providerId, strlen(provider->providerId));\r
47             }\r
48         }\r
49 \r
50         std::string NSProvider::getProviderId() const\r
51         {\r
52             return m_providerId;\r
53         }\r
54 \r
55         void NSProvider::subscribe()\r
56         {\r
57             NS_LOG(DEBUG, "subscribe - IN");\r
58             NSSubscribe(getNSProvider());\r
59             NS_LOG(DEBUG, "subscribe - OUT");\r
60         }\r
61 \r
62         void NSProvider::unSubscribe()\r
63         {\r
64             NS_LOG(DEBUG, "unSubscribe - IN");\r
65             NSUnsubscribe(getNSProvider());\r
66             NS_LOG(DEBUG, "unSubscribe - OUT");\r
67         }\r
68 \r
69         void NSProvider::SendSyncInfo(uint64_t messageId, NSSyncInfo::NSSyncType type)\r
70         {\r
71             NS_LOG(DEBUG, "SendSyncInfo - IN");\r
72             NSConsumerSendSyncInfo(m_providerId.c_str(), messageId, (::NSSyncType)type);\r
73             NS_LOG(DEBUG, "SendSyncInfo - OUT");\r
74             return;\r
75         }\r
76 \r
77         void NSProvider::setListener(NSProvider::MessageReceivedCallback messageHandle,\r
78                                      NSProvider::SyncInfoReceivedCallback syncHandle)\r
79         {\r
80             m_messageCb = messageHandle;\r
81             m_syncInfoCb = syncHandle;\r
82         }\r
83 \r
84         NSProvider::MessageReceivedCallback NSProvider::getMessageReceivedCb()\r
85         {\r
86             return m_messageCb;\r
87         }\r
88 \r
89         NSProvider::SyncInfoReceivedCallback NSProvider::getSyncInfoReceivedCb()\r
90         {\r
91             return m_syncInfoCb;\r
92         }\r
93     }\r
94 }\r