ButeoSynchronizationFramework
TransportTracker.h
1 /*
2  * This file is part of buteo-syncfw package
3  *
4  * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
5  *
6  * Contact: Sateesh Kavuri <sateesh.kavuri@nokia.com>
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public License
10  * version 2.1 as published by the Free Software Foundation.
11  *
12  * This library is distributed in the hope that it will be useful, but
13  * WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this library; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20  * 02110-1301 USA
21  *
22  */
23 
24 #ifndef TRANSPORTTRACKER_H_
25 #define TRANSPORTTRACKER_H_
26 
27 #include "SyncCommonDefs.h"
28 #include <QObject>
29 #include <QMap>
30 #include <QMutex>
31 #include <QDBusVariant>
32 #include <QDBusConnection>
33 
34 namespace Buteo {
35 
36 class USBModedProxy;
37 class NetworkManager;
38 
39 
44 class TransportTracker : public QObject
45 {
46  Q_OBJECT
47 
48 public:
49 
54  TransportTracker(QObject *aParent = 0);
55 
57  virtual ~TransportTracker();
58 
64  bool isConnectivityAvailable(Sync::ConnectivityType aType) const;
65 
66 signals:
67 
73  void connectivityStateChanged(Sync::ConnectivityType aType, bool aState);
74 
80  void networkStateChanged(bool aState, Sync::InternetConnectionType aType);
81 
84  void sessionConnected();
85 
88  void sessionError();
89 
90 private slots:
91 
92  void onUsbStateChanged(bool aConnected);
93 
94  void onBtStateChanged(QString aKey, QDBusVariant aValue);
95 
96  void onInternetStateChanged(bool aConnected, Sync::InternetConnectionType aType);
97 
98 private:
99 
100  QMap<Sync::ConnectivityType, bool> iTransportStates;
101 
102  USBModedProxy *iUSBProxy;
103 
104  NetworkManager *iInternet;
105  QDBusConnection iSystemBus;
106 
107  mutable QMutex iMutex;
108 
114  void updateState(Sync::ConnectivityType aType, bool aState);
115 
116 #ifdef SYNCFW_UNIT_TESTS
117  friend class TransportTrackerTest;
118  friend class SynchronizerTest;
119 #endif
120 
121  bool btConnectivityStatus();
122 
123 };
124 
125 }
126 
127 #endif /* TRANSPORTTRACKER_H_ */
Buteo::TransportTracker::sessionConnected
void sessionConnected()
Signal emitted when a network session is successfully opened.
Definition: moc_TransportTracker.cpp:224
Buteo::TransportTracker
Class for tracking transport states.
Definition: TransportTracker.h:44
Buteo::TransportTracker::TransportTracker
TransportTracker(QObject *aParent=0)
Constructor.
Definition: TransportTracker.cpp:37
QMap< Sync::ConnectivityType, bool >
Buteo::TransportTracker::connectivityStateChanged
void connectivityStateChanged(Sync::ConnectivityType aType, bool aState)
Signal emitted when a connectivity state changes.
Definition: moc_TransportTracker.cpp:210
Buteo::TransportTracker::networkStateChanged
void networkStateChanged(bool aState, Sync::InternetConnectionType aType)
Signal emitted when a n/w state changes.
Definition: moc_TransportTracker.cpp:217
Buteo::TransportTracker::~TransportTracker
virtual ~TransportTracker()
Destructor.
Definition: TransportTracker.cpp:99
Buteo::TransportTracker::sessionError
void sessionError()
Signal emitted when opening a network session fails.
Definition: moc_TransportTracker.cpp:230
Buteo::TransportTracker::isConnectivityAvailable
bool isConnectivityAvailable(Sync::ConnectivityType aType) const
Checks the state of the given connectivity type.
Definition: TransportTracker.cpp:104
Buteo::USBModedProxy
Proxy class for interface com.meego.usb_moded
Definition: USBModedProxy.h:50
Buteo::NetworkManager
Class for managing network sessions.
Definition: NetworkManager.h:43