Version 0.2
[marketstoday] / src / cpp / connectionutility.h
1 #ifndef CONECTIONUTILITY_H
2 #define CONECTIONUTILITY_H
3
4 #include <QDebug>
5
6 #include <QNetworkConfigurationManager>
7 #include <QNetworkConfiguration>
8 #include "logutility.h"
9
10 class ConnectionUtility: public QObject
11 {
12     Q_OBJECT
13
14 private:
15     LogUtility * logUtility;
16
17 public:
18     ConnectionUtility(QObject *parent = 0) :
19         QObject(parent){
20         logUtility = new LogUtility(this);
21     }
22
23     ~ConnectionUtility(){
24         qDebug() << "Markets Today: In ConnectionUtility object destructor..";
25     }
26
27 signals:
28     void connectionsAvailable();
29
30 public slots:
31     void checkConnectionStatus(){
32         QNetworkConfigurationManager manager;
33         logUtility->logMessage("Verifying connection status");
34         if (manager.isOnline()) {
35             logUtility->logMessage("A network session is already in progress, OK to update");
36             emit connectionsAvailable();
37         }
38         else{
39             logUtility->logMessage("No active network sessions found, searching for available networks");
40             manager.updateConfigurations();
41         }
42     }
43
44     void connectionListUpdated(){
45         QNetworkConfigurationManager manager;
46         QList<QNetworkConfiguration> list = manager.allConfigurations(QNetworkConfiguration::Discovered);
47
48         bool conxnAvailable = false;
49
50         for (int i = 0 ; i < list.count() ; ++i)
51         {
52             qDebug() << "Name: " << list[i].name() << "Type: " << list[i].bearerTypeName() << "State: " << list[i].state() << "Identifier: " << list[i].identifier();
53
54             if (list[i].bearerType() == QNetworkConfiguration::BearerWLAN && list[i].type() == QNetworkConfiguration::InternetAccessPoint) {
55                 conxnAvailable = true;
56                 logUtility->logMessage("Found network "+list[i].name());
57                 break;
58             }
59
60             if (conxnAvailable) emit connectionsAvailable();
61         }
62     }
63 };
64
65 #endif // CONECTIONUTILITY_H