merge with master
[framework/osp/messaging.git] / src / FMsgCbsMessage.cpp
1 //\r
2 // Open Service Platform\r
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.\r
4 //\r
5 // Licensed under the Apache License, Version 2.0 (the License);\r
6 // you may not use this file except in compliance with the License.\r
7 // You may obtain a copy of the License at\r
8 //\r
9 //     http://www.apache.org/licenses/LICENSE-2.0\r
10 //\r
11 // Unless required by applicable law or agreed to in writing, software\r
12 // distributed under the License is distributed on an "AS IS" BASIS,\r
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
14 // See the License for the specific language governing permissions and\r
15 // limitations under the License.\r
16 //\r
17 /**\r
18  * @file                FMsgCbsMessage.cpp\r
19  * @brief               This is the implementation file for the %CbsMessage class.\r
20  *\r
21  * This file contains the implementation of the %CbsMessage class.\r
22  */\r
23 \r
24 #include <FMsgCbsMessage.h>\r
25 #include <FBaseSysLog.h>\r
26 #include <FSec_AccessController.h>\r
27 #include "FMsg_Types.h"\r
28 #include "FMsg_CbsMessageImpl.h"\r
29 \r
30 using namespace Tizen::Base;\r
31 using namespace Tizen::Messaging;\r
32 using namespace Tizen::Security;\r
33 \r
34 namespace Tizen { namespace Messaging\r
35 {\r
36 \r
37 CbsMessage::CbsMessage(void)\r
38 {\r
39         __pCbsMessageImpl = new (std::nothrow) _CbsMessageImpl();\r
40         SysTryReturnVoidResult(NID_MSG, __pCbsMessageImpl != null, E_OUT_OF_MEMORY, "memory allocation failed.");\r
41 }\r
42 \r
43 CbsMessage::CbsMessage(const CbsMessage& value)\r
44 {\r
45         __pCbsMessageImpl = new (std::nothrow) _CbsMessageImpl(*(value.__pCbsMessageImpl));\r
46         SysTryReturnVoidResult(NID_MSG, __pCbsMessageImpl != null, E_OUT_OF_MEMORY, "memory allocation failed.");\r
47 }\r
48 \r
49 CbsMessage::~CbsMessage(void)\r
50 {\r
51         if (__pCbsMessageImpl)\r
52         {\r
53                 delete __pCbsMessageImpl;\r
54         }\r
55         __pCbsMessageImpl = null;\r
56 }\r
57 \r
58 CbsMessage&\r
59 CbsMessage::operator =(const CbsMessage& rhs)\r
60 {\r
61         if (this != &rhs)\r
62         {\r
63                 *__pCbsMessageImpl = *(rhs.__pCbsMessageImpl);\r
64         }\r
65 \r
66         return (*this);\r
67 }\r
68 \r
69 CbsMessage*\r
70 CbsMessage::CloneN() const\r
71 {\r
72         return __pCbsMessageImpl->CloneN();\r
73 }\r
74 \r
75 bool\r
76 CbsMessage::Equals(const Tizen::Base::Object& obj) const\r
77 {\r
78         const CbsMessage* pCbsMessage = dynamic_cast<const CbsMessage*>(&obj);\r
79         if (!pCbsMessage)\r
80         {\r
81                 SysLog(NID_MSG, "dynamic_cast is failed");\r
82                 return false;\r
83         }\r
84 \r
85         return __pCbsMessageImpl->Equals(*(pCbsMessage->__pCbsMessageImpl));\r
86 }\r
87 \r
88 int\r
89 CbsMessage::GetHashCode(void) const\r
90 {\r
91         return __pCbsMessageImpl->GetHashCode();\r
92 }\r
93 \r
94 Tizen::Base::ByteBuffer*\r
95 CbsMessage::GetSerialNumberN(void) const\r
96 {\r
97         result r = E_SUCCESS;\r
98         Tizen::Base::ByteBuffer* pSerialnumber = null;\r
99         ClearLastResult();\r
100 \r
101         SysAssertf(__pCbsMessageImpl != null, "The CbsChannel instance is not constructed yet.");\r
102 \r
103         pSerialnumber = __pCbsMessageImpl->GetSerialNumberN();\r
104 \r
105         r = GetLastResult();\r
106         SetLastResult(r);\r
107 \r
108         SysTryCatch(NID_MSG, r == E_SUCCESS, , r, "failed to get cbs message SerialNumber .");\r
109 \r
110         return pSerialnumber;\r
111 \r
112 CATCH:\r
113         SetLastResult(GetLastResult());\r
114 \r
115         if (pSerialnumber)\r
116         {\r
117                 delete pSerialnumber;\r
118                 pSerialnumber = null;\r
119         }\r
120         return null;\r
121 }\r
122 \r
123 Tizen::Base::DateTime\r
124 CbsMessage::GetReceivedTime(void) const\r
125 {\r
126         SysAssertf(__pCbsMessageImpl != null, "The CbsChannel instance is not constructed yet.");\r
127 \r
128         return (__pCbsMessageImpl->GetReceivedTime());\r
129 }\r
130 \r
131 Tizen::Base::String\r
132 CbsMessage::GetText(void) const\r
133 {\r
134         SysAssertf(__pCbsMessageImpl != null, "The CbsChannel instance is not constructed yet.");\r
135 \r
136         return (__pCbsMessageImpl->GetText());\r
137 }\r
138 \r
139 int\r
140 CbsMessage::GetMessageId(void) const\r
141 {\r
142         SysAssertf(__pCbsMessageImpl != null, "The CbsChannel instance is not constructed yet.");\r
143 \r
144         return (__pCbsMessageImpl->GetMessageId());\r
145 }\r
146 \r
147 bool\r
148 CbsMessage::IsEtwsNotification(void) const\r
149 {\r
150         SysAssertf(__pCbsMessageImpl != null, "The CbsChannel instance is not constructed yet.");\r
151 \r
152         return (__pCbsMessageImpl->IsEtwsNotification());\r
153 }\r
154 \r
155 byte \r
156 CbsMessage::GetDataCodingScheme(void) const\r
157 {\r
158         SysAssertf(__pCbsMessageImpl != null, "The CbsChannel instance is not constructed yet.");\r
159 \r
160         return (__pCbsMessageImpl->GetDataCodingScheme());\r
161 }\r
162 \r
163 Tizen::Base::String\r
164 CbsMessage::GetLanguageType(void) const\r
165 {\r
166         SysAssertf(__pCbsMessageImpl != null, "The CbsChannel instance is not constructed yet.");\r
167 \r
168         return (__pCbsMessageImpl->GetLanguageType());\r
169 }\r
170 \r
171 } } // Tizen::Messaging\r