summaryrefslogtreecommitdiff
path: root/agents/hostmanagerconn.h
diff options
context:
space:
mode:
Diffstat (limited to 'agents/hostmanagerconn.h')
-rw-r--r--agents/hostmanagerconn.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/agents/hostmanagerconn.h b/agents/hostmanagerconn.h
new file mode 100644
index 0000000..3543a6c
--- /dev/null
+++ b/agents/hostmanagerconn.h
@@ -0,0 +1,68 @@
+#ifndef HOSTMANAGERPEER_H
+#define HOSTMANAGERPEER_H
+
+#include <QtCore/QVariant>
+#include "sapconnection.h"
+#include "sapsocket.h"
+
+class HostManagerConn : public QObject
+{
+ Q_OBJECT
+
+public:
+ HostManagerConn(SAPConnection *conn, QObject *parent = 0);
+
+protected:
+ struct AppInfo {
+ QString name;
+ QString packageName;
+ QString version;
+ bool preloaded;
+ bool isAppWidget;
+
+ QStringList requiredPackages;
+ QStringList requiringPackages;
+ bool installed;
+ };
+
+ struct DeviceInfo {
+ QString deviceId;
+ QString deviceName;
+ QString devicePlatform;
+ QString devicePlatformVersion;
+ QString deviceType;
+ QString modelNumber;
+ QString swVersion;
+
+ QList<AppInfo> apps;
+
+ bool telephony;
+ bool messaging;
+ bool tablet;
+ bool autolock;
+ bool smartrelay;
+ bool safetyassistence;
+ QString vendor;
+ };
+
+ static DeviceInfo parseDeviceInfo(const QString &xmlData);
+
+private:
+ void sendMessage(const QJsonObject &obj);
+
+ void handleMessage(const QJsonObject &obj);
+
+ void performTimeSync();
+
+ QString generateHostXml();
+
+private slots:
+ void handleConnected();
+ void handleMessageReceived();
+
+private:
+ SAPConnection *_conn;
+ SAPSocket *_socket;
+};
+
+#endif // HOSTMANAGERPEER_H