2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
22 * @author Pawel Misiak (p.misiak@samsung.com)
28 #include <Commons/Exception.h>
30 #include "EventSendMessage.h"
31 #include "EventMessagingService.h"
39 IMessage::IMessage(const MessageType msgType,
44 m_validReadStatus(false),
45 m_isReadChangeStatus(false),
46 m_validisReadChangeStatus(true),
48 m_requestReceiver(NULL),
49 m_sendMessageEvent(NULL)
51 LogDebug("message creation, msgId=" << m_id << ", msgType=" << m_msgType);
53 //initialize dateTime of message
56 tm* local = localtime(&rawtime);
60 LogError("Failed to initialize message dateTime");
66 LogDebug("destroying message, msgId=" << m_id << ", msgType=" << m_msgType);
69 string IMessage::getId() const
74 const string& IMessage::getIdRef() const
79 MessageType IMessage::getMessageType() const
84 struct tm IMessage::getDateTime() const
89 string IMessage::convertId(int arg) const
96 int IMessage::convertId(const string& arg) const
99 istringstream(arg) >> retVal;
103 void IMessage::setId(const string& value)
108 void IMessage::setDateTime(const tm dateTime)
110 m_dateTime = dateTime;
113 void IMessage::setReadStatus(bool state)
115 m_validReadStatus = false;
116 m_readStatus = state;
119 void IMessage::setSize(int size)
124 int IMessage::getSize() const
129 bool IMessage::isRead() const
134 bool IMessage::isReadStatusValid() const
136 return m_validReadStatus;
139 void IMessage::setReadStatusValidity(bool valid)
141 m_validReadStatus = valid;
144 bool IMessage::isReadChangeStatus() const
146 return m_isReadChangeStatus;
149 void IMessage::setisReadChangeStatus(bool state)
151 m_validisReadChangeStatus = false;
152 m_isReadChangeStatus = state;
155 bool IMessage::isReadChangeStatusValid() const
157 return m_validisReadChangeStatus;
160 void IMessage::setisReadChangeStatusValidity(bool valid)
162 m_validisReadChangeStatus = valid;
165 FolderType IMessage::getCurrentFolder() const
170 void IMessage::setFolderType(FolderType folder)
175 string IMessage::getCurrentUserFolder() const
177 if (m_folder != USERDEFINED_FOLDER) {
178 LogError("folder is not user folder type");
179 Throw(WrtDeviceApis::Commons::UnknownException);
181 return m_userFolderName;
184 void IMessage::setCurrentUserFolder(const std::string& arg)
186 m_userFolderName = arg;
189 bool IMessage::validatePhoneNumber(std::string& number)
191 LogDebug("testing number=" << number);
192 pcrecpp::RE re("[^0-9#\\+\\*]?");
193 re.GlobalReplace("", &number); //remove invailde phone number. phone Number were composed only number.
195 if (number.empty()) {
196 LogError("wrong phoneNumber=" << number);
199 LogDebug("phoneNumber=" << number);
201 pcrecpp::RE re2("^[+#]?[0-9]{4,22}$");
202 if (re2.FullMatch(number)) {
203 LogDebug("vaildate Number=" << number);
208 LogDebug("invaildate Number=" << number);
214 bool IMessage::validateEmailAddr(const Recipients& addr)
216 for (size_t i = 0; i < addr.getRecipientSize(); i++) {
217 if (false == validateEmailAddr(addr.getRecipient(i))) {
218 LogError("wrong email address");
225 bool IMessage::validateEmailAddr(const std::string& email)
231 "^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}"
232 "\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\"
233 ".)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$"
235 if (re.FullMatch(email)) {
236 LogDebug("emailAddress=" << email);
239 LogError("wrong emailAddress=" << email);
243 void IMessage::setEmitter(const EventOnSendingFailedEmitterPtr& emitter)
248 EventOnSendingFailedEmitterPtr IMessage::getEmitter() const
253 void IMessage::setSendMessageEvent(const EventSendMessagePtr &event)
255 m_sendMessageEvent = event;
258 EventSendMessagePtr IMessage::getSendMessageEvent() const
260 return m_sendMessageEvent;
263 void IMessage::setMessagingServiceEvent(const EventMessagingServicePtr & event)
265 m_messagingServiceEvent = event;
268 EventMessagingServicePtr IMessage::getMessagingServiceEvent() const
270 return m_messagingServiceEvent;
273 void IMessage::setRequestReceiver(ReqReceiverMessage* reqReceiver)
275 m_requestReceiver = reqReceiver;
278 ReqReceiverMessage* IMessage::getRequestReceiver() const
280 return m_requestReceiver;
283 void IMessage::setMessageStatus( MessageStatus status)
285 m_msgStatus = status;
288 MessageStatus IMessage::getMessageStatus() const