SVACE fixes for C++ wrapper for Notification Service.
[platform/upstream/iotivity.git] / service / notification / cpp-wrapper / common / NSMessage.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 Message representation.\r
25  */\r
26 \r
27 #ifndef _NS_MESSAGE_H_\r
28 #define _NS_MESSAGE_H_\r
29 \r
30 #include <string>\r
31 #include "NSMediaContents.h"\r
32 \r
33 namespace OIC\r
34 {\r
35     namespace Service\r
36     {\r
37         /**\r
38          * @class   NSMessage\r
39          * @brief   This class provides a set of APIs for Notification service Message .\r
40          */\r
41         class NSMessage\r
42         {\r
43             public:\r
44                 /** NSMessageType - enumeration for Notification service MessageType*/\r
45                 enum class NSMessageType\r
46                 {\r
47                     NS_MESSAGE_ALERT = 0,\r
48                     NS_MESSAGE_NOTICE = 1,\r
49                     NS_MESSAGE_EVENT = 2,\r
50                     NS_MESSAGE_INFO = 3,\r
51                 };\r
52 \r
53                 /**\r
54                         * Constructor of NSMessage.\r
55                         */\r
56                 NSMessage(): m_messageId(0), m_type(NSMessageType::NS_MESSAGE_ALERT), m_ttl(0),\r
57                                             m_mediaContents(new NSMediaContents) { }\r
58 \r
59                 /**\r
60                         * Constructor of NSMessage.\r
61                         *\r
62                         * @param msg - pointer to NSMessage struct to initialize.\r
63                         */\r
64                 NSMessage(::NSMessage *msg);\r
65 \r
66                 /**\r
67                         * Destructor of NSMessage.\r
68                         */\r
69                 ~NSMessage();\r
70 \r
71                 /**\r
72                      * This method is for getting Message Id from the Notification service Message.\r
73                      *\r
74                      * @return Id as uint64_t.\r
75                      */\r
76                 uint64_t getMessageId() const;\r
77 \r
78                 /**\r
79                      * This method is for getting Provider Id from the Notification service Message.\r
80                      *\r
81                      * @return Id as string.\r
82                      */\r
83                 std::string getProviderId() const;\r
84 \r
85                 /**\r
86                      * This method is for getting type from the Notification service Message.\r
87                      *\r
88                      * @return type as NSMessageType.\r
89                      */\r
90                 NSMessageType getType() const;\r
91 \r
92                 /**\r
93                      * This method is for setting type from the Notification service Message.\r
94                      *\r
95                      * @param type as NSMessageType.\r
96                      */\r
97                 void setType(const NSMessageType &type);\r
98 \r
99                 /**\r
100                      * This method is for getting time from the Notification service Message.\r
101                      *\r
102                      * @return time as string.\r
103                      */\r
104                 std::string getTime() const;\r
105 \r
106                 /**\r
107                      * This method is for setting time from the Notification service Message.\r
108                      *\r
109                      * @param time as string.\r
110                      */\r
111                 void setTime(const std::string &time);\r
112 \r
113                 /**\r
114                      * This method is for getting time to live from the Notification service Message.\r
115                      *\r
116                      * @return ttl as uint64_t.\r
117                      */\r
118                 uint64_t getTTL() const;\r
119 \r
120                 /**\r
121                      * This method is for setting time to live from the Notification service Message.\r
122                      *\r
123                      * @param ttl as uint64_t.\r
124                      */\r
125                 void setTTL(const uint64_t &ttl);\r
126 \r
127                 /**\r
128                      * This method is for getting Title from the Notification service Message.\r
129                      *\r
130                      * @return Title as string.\r
131                      */\r
132                 std::string getTitle() const;\r
133 \r
134                 /**\r
135                      * This method is for setting Title from the Notification service Message.\r
136                      *\r
137                      * @param Title as string.\r
138                      */\r
139                 void setTitle(const std::string &title);\r
140 \r
141                 /**\r
142                      * This method is for getting contentText from the Notification service Message.\r
143                      *\r
144                      * @return contentText as string.\r
145                      */\r
146                 std::string getContentText() const;\r
147 \r
148                 /**\r
149                      * This method is for setting contentText from the Notification service Message.\r
150                      *\r
151                      * @param contentText as string.\r
152                      */\r
153                 void setContentText(const std::string &contextText);\r
154 \r
155                 /**\r
156                      * This method is for getting sourceName from the Notification service Message.\r
157                      *\r
158                      * @return sourceName as string.\r
159                      */\r
160                 std::string getSourceName() const;\r
161 \r
162                 /**\r
163                      * This method is for setting sourceName from the Notification service Message.\r
164                      *\r
165                      * @param sourceName as string.\r
166                      */\r
167                 void setSourceName(const std::string &sourceName);\r
168 \r
169                 /**\r
170                      * This method is for getting mediaContents from the Notification service Message.\r
171                      *\r
172                      * @return mediaContents as NSMediaContents pointer.\r
173                      */\r
174                 NSMediaContents *getMediaContents() const;\r
175 \r
176                 /**\r
177                      * This method is for setting mediaContents from the Notification service Message.\r
178                      *\r
179                      * @param mediaContents as NSMediaContents pointer.\r
180                      */\r
181                 void setMediaContents(NSMediaContents *mediaContents);\r
182 \r
183 \r
184             private:\r
185                 uint64_t m_messageId;\r
186                 std::string m_providerId;\r
187 \r
188                 NSMessageType m_type;\r
189                 std::string m_time;\r
190                 uint64_t m_ttl;\r
191                 std::string m_title;\r
192                 std::string m_contentText;\r
193                 std::string m_sourceName;\r
194                 NSMediaContents *m_mediaContents;\r
195 \r
196         };\r
197     }\r
198 }\r
199 #endif /* _NS_MESSAGE_H_ */\r