Update change log and spec for wrt-plugins-tizen_0.2.73
[profile/ivi/wrt-plugins-tizen.git] / src / platform / Tizen / Messaging / NetworkStatus.cpp
1 /*
2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
3 *
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
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
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. 
15 */
16
17 /**
18  * @author          Zbigniew Kostrzewa (z.kostrzewa@samsung.com)
19  */
20
21 #include <dpl/assert.h>
22 #include <Commons/Exception.h>
23 #include "NetworkStatus.h"
24
25 namespace {
26 const char* DBUS_INTERFACE_NETWORK_STATUS = "User.Email.NetworkStatus";
27 const int DBUS_MESSAGE_PARAMETERS_NUMBER = 5;
28 }
29
30 namespace TizenApis {
31 namespace Platform {
32 namespace Messaging {
33
34 NetworkStatus::NetworkStatus(const DBus::MessagePtr& message)
35 {
36     Assert(message->getInterface() == DBUS_INTERFACE_NETWORK_STATUS);
37     initialize(message);
38 }
39
40 int NetworkStatus::getStatus() const
41 {
42     return m_status;
43 }
44
45 int NetworkStatus::getAccountId() const
46 {
47     return m_accountId;
48 }
49
50 std::string NetworkStatus::getSource() const
51 {
52     return m_source;
53 }
54
55 int NetworkStatus::getMailId() const
56 {
57     return m_mailId;
58 }
59
60 int NetworkStatus::getErrorCode() const
61 {
62     return m_errorCode;
63 }
64
65 void NetworkStatus::initialize(const DBus::MessagePtr& message)
66 {
67     DBus::Message::ReadIterator it = message->getReadIterator();
68     for (int i = 0; i < DBUS_MESSAGE_PARAMETERS_NUMBER; it->next(), ++i) {
69         if (!it->isValid()) {
70             ThrowMsg(WrtDeviceApis::Commons::PlatformException, "Missing some properties.");
71         }
72
73         switch (i) {
74         case 0: m_status = it->getInt();
75             break;
76         case 1: m_accountId = it->getInt();
77             break;
78         case 2: m_source = it->getString();
79             break;
80         case 3: m_mailId = it->getInt();
81             break;
82         case 4: m_errorCode = it->getInt();
83             break;
84         }
85     }
86 }
87 }
88 }
89 }