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.
17 * @author Zbigniew Kostrzewa (z.kostrzewa@samsung.com)
19 #include <dpl/log/log.h>
21 #include <Commons/Exception.h>
23 #include "EmailConverter.h"
25 #define LOG_ENTER LogDebug("---> ENTER");
26 #define LOG_EXIT LogDebug("---> EXIT");
28 namespace WrtDeviceApis {
30 namespace EmailConverter {
32 emf_mail_priority_t toMailPriority(Api::MessagePriority::Priority priority)
36 case Api::MessagePriority::LOW: return EMF_MAIL_PRIORITY_LOW;
37 case Api::MessagePriority::NORMAL: return EMF_MAIL_PRIORITY_NORMAL;
38 case Api::MessagePriority::HIGH: return EMF_MAIL_PRIORITY_HIGH;
40 ThrowMsg(Commons::PlatformException,
41 "Unsupported priority: " << priority);
45 Api::MessagePriority::Priority toMessagePriority(emf_mail_priority_t priority)
49 case EMF_MAIL_PRIORITY_LOW: return Api::MessagePriority::LOW;
50 case EMF_MAIL_PRIORITY_NORMAL: return Api::MessagePriority::NORMAL;
51 case EMF_MAIL_PRIORITY_HIGH: return Api::MessagePriority::HIGH;
53 // TODO Think it through, log is enough or exception should be thrown.
54 // ThrowMsg(Commons::PlatformException,
55 // "Unsupported platform priority: " << priority);
56 LogWarning("Unsupported platform priority");
59 // TODO Fix this. What to return if non-existing priority returned by platform.
60 return Api::MessagePriority::NORMAL;
63 Api::MessagePriority::Priority toMessagePriority(unsigned char priority)
65 return toMessagePriority(static_cast<emf_mail_priority_t>(priority));
68 emf_mailbox_type_e toMailboxType(Api::FolderType folder)
72 case Api::INBOX: return EMF_MAILBOX_TYPE_INBOX;
73 case Api::OUTBOX: return EMF_MAILBOX_TYPE_OUTBOX;
74 case Api::SENTBOX: return EMF_MAILBOX_TYPE_SENTBOX;
75 case Api::DRAFTBOX: return EMF_MAILBOX_TYPE_DRAFT;
76 case Api::SPAMBOX: return EMF_MAILBOX_TYPE_SPAMBOX;
77 case Api::ALL_FOLDERS: return EMF_MAILBOX_TYPE_ALL_EMAILS;
78 case Api::USERDEFINED_FOLDER: return EMF_MAILBOX_TYPE_USER_DEFINED;
80 ThrowMsg(Commons::PlatformException, "Conversion failed.");
84 const char* toMailboxName(Api::FolderType folder)
88 case Api::INBOX: return EMF_INBOX_NAME;
89 case Api::OUTBOX: return EMF_OUTBOX_NAME;
90 case Api::SENTBOX: return EMF_SENTBOX_NAME;
91 case Api::DRAFTBOX: return EMF_DRAFTBOX_NAME;
92 case Api::SPAMBOX: return EMF_SPAMBOX_NAME;
94 ThrowMsg(Commons::PlatformException,
95 "Mailbox not found. Folder: " << folder);
99 Api::FolderType toFolderType(emf_mailbox_type_e mailboxType)
102 switch (mailboxType) {
103 case EMF_MAILBOX_TYPE_INBOX: return Api::INBOX;
104 case EMF_MAILBOX_TYPE_OUTBOX: return Api::OUTBOX;
105 case EMF_MAILBOX_TYPE_SENTBOX: return Api::SENTBOX;
106 case EMF_MAILBOX_TYPE_DRAFT: return Api::DRAFTBOX;
107 case EMF_MAILBOX_TYPE_SPAMBOX: return Api::SPAMBOX;
108 case EMF_MAILBOX_TYPE_ALL_EMAILS: return Api::ALL_FOLDERS;
109 case EMF_MAILBOX_TYPE_USER_DEFINED: return Api::USERDEFINED_FOLDER;
111 ThrowMsg(Commons::PlatformException, "Conversion failed.");