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.
20 * @author Pawel Misiak (p.misiak@samsung.com)
25 #include <dpl/log/log.h>
26 #include <Commons/Exception.h>
28 #include "EventSendMessage.h"
32 namespace WrtDeviceApis {
35 IMessage::IMessage(const MessageType msgType,
40 m_validReadStatus(false),
42 m_requestReceiver(NULL),
43 m_sendMessageEvent(NULL)
45 LogDebug("message creation, msgId=" << m_id << ", msgType=" << m_msgType);
47 //initialize dateTime of message
50 tm* local = localtime(&rawtime);
54 LogError("Failed to initialize message dateTime");
60 LogDebug("destroying message, msgId=" << m_id << ", msgType=" << m_msgType);
63 string IMessage::getId() const
68 const string& IMessage::getIdRef() const
73 MessageType IMessage::getMessageType() const
78 struct tm IMessage::getDateTime() const
83 string IMessage::convertId(int arg) const
90 int IMessage::convertId(const string& arg) const
93 istringstream(arg) >> retVal;
97 void IMessage::setId(const string& value)
102 void IMessage::setDateTime(const tm dateTime)
104 m_dateTime = dateTime;
107 void IMessage::setReadStatus(bool state)
109 m_validReadStatus = false;
110 m_readStatus = state;
113 void IMessage::setSize(int size)
118 int IMessage::getSize() const
123 bool IMessage::isRead() const
128 bool IMessage::isReadStatusValid() const
130 return m_validReadStatus;
133 void IMessage::setReadStatusValidity(bool valid)
135 m_validReadStatus = valid;
138 FolderType IMessage::getCurrentFolder() const
143 void IMessage::setFolderType(FolderType folder)
148 string IMessage::getCurrentUserFolder() const
150 if (m_folder != USERDEFINED_FOLDER) {
151 LogError("folder is not user folder type");
152 Throw(Commons::UnknownException);
154 return m_userFolderName;
157 void IMessage::setCurrentUserFolder(const std::string& arg)
159 m_userFolderName = arg;
162 bool IMessage::validatePhoneNumber(std::string& number)
164 LogDebug("testing number=" << number);
165 pcrecpp::RE re("[^0-9#\\+\\*]?");
166 re.GlobalReplace("", &number);
167 if (number.empty()) {
168 LogError("wrong phoneNumber=" << number);
171 LogDebug("phoneNumber=" << number);
176 bool IMessage::validateEmailAddr(const Recipients& addr)
178 for (size_t i = 0; i < addr.getRecipientSize(); i++) {
179 if (false == validateEmailAddr(addr.getRecipient(i))) {
180 LogError("wrong email address");
187 bool IMessage::validateEmailAddr(const std::string& email)
193 "^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}"
194 "\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\"
195 ".)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$"
197 if (re.FullMatch(email)) {
198 LogDebug("emailAddress=" << email);
201 LogError("wrong emailAddress=" << email);
205 void IMessage::setEmitter(const EventOnSendingFailedEmitterPtr& emitter)
210 EventOnSendingFailedEmitterPtr IMessage::getEmitter() const
215 void IMessage::setSendMessageEvent(const EventSendMessagePtr &event)
217 m_sendMessageEvent = event;
220 EventSendMessagePtr IMessage::getSendMessageEvent() const
222 return m_sendMessageEvent;
225 void IMessage::setRequestReceiver(ReqReceiverMessage* reqReceiver)
227 m_requestReceiver = reqReceiver;
230 ReqReceiverMessage* IMessage::getRequestReceiver() const
232 return m_requestReceiver;