Merge branch 'master' into notification-service
[platform/upstream/iotivity.git] / service / notification / cpp-wrapper / provider / inc / NSConsumer.h
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 /**\r
22  * @file\r
23  *\r
24  * This file contains Notification service Consumer representation.\r
25  */\r
26 \r
27 #ifndef _NS_CONSUMER_H_\r
28 #define _NS_CONSUMER_H_\r
29 \r
30 \r
31 #include <string>\r
32 #include "NSCommon.h"\r
33 \r
34 namespace OIC\r
35 {\r
36     namespace Service\r
37     {\r
38         /**\r
39          * @class   NSConsumer\r
40          * @brief   This class provides a set of Notification service Consumer representation APIs.\r
41          */\r
42         class NSConsumer\r
43         {\r
44             public:\r
45                 /**\r
46                       * Constructor of NSConsumer.\r
47                       */\r
48                 NSConsumer() = default;\r
49 \r
50                 /**\r
51                       * Constructor of NSConsumer.\r
52                       *\r
53                       * @param consumerId - consumerId of the Notification service Consumer.\r
54                       */\r
55                 NSConsumer(const std::string &consumerId)\r
56                     : m_consumerId(consumerId) {}\r
57 \r
58                 /**\r
59                       * Constructor of NSConsumer.\r
60                       *\r
61                       * @param consumer - NSConsumer struct to initialize.\r
62                       */\r
63                 NSConsumer(::NSConsumer *consumer);\r
64 \r
65                 /**\r
66                       * Destructor of NSConsumer.\r
67                       */\r
68                 ~NSConsumer() = default;\r
69 \r
70                 /**\r
71                       * This method is for getting ConsumerId from the Notification service Consumer.\r
72                       *\r
73                       * @return ConsumerId as string.\r
74                       */\r
75                 std::string getConsumerId() const;\r
76 \r
77                 /**\r
78                       * This method is for setting icon image for the Notification service media contents.\r
79                       *\r
80                       * @param consumer - NSConsumer.\r
81                       * @param accepted - as bool.\r
82                       */\r
83                 int acceptSubscription(NSConsumer *consumer, bool accepted);\r
84 \r
85             private:\r
86                 ::NSConsumer *getNSConsumer();\r
87 \r
88             private:\r
89                 std::string m_consumerId;\r
90         };\r
91     }\r
92 }\r
93 #endif /* _NS_CONSUMER_H_ */\r