Merge branch '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 "NSUtils.h"\r
27 #include "oic_string.h"\r
28 \r
29 namespace OIC\r
30 {\r
31     namespace Service\r
32     {\r
33         ::NSProvider *NSProvider::getNSProvider()\r
34         {\r
35             ::NSProvider *provider = new ::NSProvider;\r
36             OICStrcpy(provider->providerId, NS_UTILS_UUID_STRING_SIZE, m_providerId.c_str());\r
37             return provider;\r
38         }\r
39 \r
40         NSProvider::NSProvider(::NSProvider *provider)\r
41         {\r
42             m_messageCb = NULL;\r
43             m_syncInfoCb = NULL;\r
44             if (provider != nullptr)\r
45             {\r
46                 m_providerId.assign(provider->providerId, NS_UTILS_UUID_STRING_SIZE);\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