#include <QtCore/QObject>
#include <QtCore/QTimerEvent>
+#include <QtCore/QString>
+#include <QtCore/QByteArray>
+#include <QtCore/QList>
#include <QtDBus/QDBusInterface>
#include <QtDBus/QDBusMessage>
Q_OBJECT
public:
+
+ enum ConnectionType {NO_TYPE, WLAN, GPRS};
+ enum Error {NO_ERROR, NO_AVAILABLE_CONNECTIONS, INVALID_IAP, UNKNOWN_ERROR};
+
+ struct Connection
+ {
+ ConnectionType type;
+ QString id;
+ QString name;
+ int strength;
+ };
+
ConnectionManager(QObject* parent = 0);
~ConnectionManager();
+ void setBlocking(bool value);
bool connect();
- bool disconnect();
+ bool connect(Connection const& connection);
+ bool connect(QString const& id);
+ bool getBestConnection(Connection& connection, ConnectionType type = NO_TYPE);
+ bool disconnect(bool force = false);
bool isConnected();
+ bool scanConnections(QList<Connection>& connections, ConnectionType type = NO_TYPE);
+ Error error() const;
static unsigned int const TIMEOUT = 20000;
+signals:
+ void connectReply(bool connected);
+ void isConnectedReply(bool connected);
+ void newConnection(ConnectionManager::Connection const& connection);
+ void scanReady();
+
protected:
virtual void timerEvent(QTimerEvent* event);
private slots:
void stateChange(const QDBusMessage& rep);
void connectionChange(const QDBusMessage& rep);
+ void scanResult(const QDBusMessage& rep);
private:
- bool waitSignal();
- bool ready_;
+ bool waitSignal(bool* ready);
+ bool blocking_;
+ bool stateReady_;
+ bool connectionReady_;
+ bool scanReady_;
bool connected_;
bool timeout_;
- bool ignoreStateChanges_;
+ int numberOfConnections_;
+ int scannedConnections_;
int timer_;
- QDBusInterface *icd2interface_;
+ Error error_;
+ QList<Connection>* connections_;
+ QDBusInterface* icd2interface_;
};
#endif