~renatofilho/buteo-syncfw/more-verbose

« back to all changes in this revision

Viewing changes to msyncd/TransportTracker.h

  • Committer: Sergey Gerasimenko
  • Date: 2010-06-29 12:51:21 UTC
  • Revision ID: git-v1:cd8dab07b102ac96752ece4f3cde5fc62697d717
Initial commit

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
 
 
25
#ifndef TRANSPORTTRACKER_H_
 
26
#define TRANSPORTTRACKER_H_
 
27
 
 
28
#include "SyncCommonDefs.h"
 
29
#include <QObject>
 
30
#include <QMap>
 
31
#include <QMutex>
 
32
 
 
33
class ContextProperty;
 
34
 
 
35
namespace Buteo {
 
36
 
 
37
class USBModedProxy;
 
38
 
 
39
    
 
40
/*! \brief Class for tracking transport states
 
41
 *
 
42
 * USB state is tracked with HAL, BT and Internet states with Context Framework.
 
43
 */
 
44
class TransportTracker : public QObject
 
45
{
 
46
        Q_OBJECT
 
47
 
 
48
public:
 
49
 
 
50
        /*! \brief Constructor
 
51
         *
 
52
         * @param aParent Parent object
 
53
         */
 
54
        TransportTracker(QObject *aParent = 0);
 
55
 
 
56
        //! \brief Destructor
 
57
        virtual ~TransportTracker();
 
58
 
 
59
        /*! \brief Checks the state of the given connectivity type
 
60
         *
 
61
         * @param aType Connectivity type
 
62
         * @return True if available, false if not
 
63
         */
 
64
        bool isConnectivityAvailable(Sync::ConnectivityType aType) const;
 
65
 
 
66
        // @todo: make private
 
67
        void updateState(Sync::ConnectivityType aType, bool aState);
 
68
 
 
69
signals:
 
70
 
 
71
    /*! \brief Signal emitted when a connectivity state changes
 
72
     *
 
73
     * @param aType Connectivity type whose state has changed
 
74
     * @param aState New state. True if available, false if not.
 
75
     */
 
76
        void connectivityStateChanged(Sync::ConnectivityType aType, bool aState);
 
77
 
 
78
private slots:
 
79
 
 
80
        void onUsbStateChanged(bool aConnected);
 
81
 
 
82
    void onBtStateChanged();
 
83
 
 
84
    void onInternetStateChanged();
 
85
 
 
86
private:
 
87
 
 
88
    QMap<Sync::ConnectivityType, bool> iTransportStates;
 
89
 
 
90
    USBModedProxy *iUSBProxy;
 
91
 
 
92
    ContextProperty *iBt;
 
93
 
 
94
    ContextProperty *iInternet;
 
95
 
 
96
    mutable QMutex iMutex;
 
97
 
 
98
    friend class TransportTrackerTest;
 
99
 
 
100
};
 
101
 
 
102
}
 
103
 
 
104
#endif /* TRANSPORTTRACKER_H_ */