websockets mechanism implemented
[staging/HomeScreen.git] / HomeScreen / src2 / usermanagement.h
index 099c991..382d1ac 100644 (file)
@@ -1,32 +1,85 @@
 #ifndef USERMANAGEMENT_H
 #define USERMANAGEMENT_H
 
+#define REAL_SERVER "ws://your_server.com:1234"
+
 #include <QObject>
 #include "applicationmodel.h"
 #include <QTimer>
+#include <QPointF>
 #include <QtWebSockets/QWebSocket>
+#ifndef REAL_SERVER
+#include <QtWebSockets/QWebSocketServer>
+#endif
+struct User {
+    QString postal_address;
+    QPointF loc;
+    QString country;
+    QString mail;
+    QString city;
+    QString graphEmail;
+    QString graphPreferredLanguage;
+    QString ccNumberMasked;
+    QString ccExpYear;
+    QString ccExpMonth;
+    QString description;
+    QStringList groups;
+    QString last_name;
+    QString ccNumber;
+    QString house_identifier;
+    QString phone;
+    QString name;
+    QString state;
+    QString common_name;
+    QString fax;
+    QString postal_code;
+    QString first_name;
+    QString keytoken;
+};
+
 class UserManagement : public QObject
 {
     Q_OBJECT
 public:
-    explicit UserManagement(QObject *home, QObject *shortcutArea, QObject *statusArea);
+    explicit UserManagement(QObject *root);
 
 signals:
 
 public slots:
-    void slot_timerTest();
+    void connectWebsockets();
     void onConnected();
     void onClosed();
     void onTextMessageReceived(QString message);
+    void onWebSocketError(QAbstractSocket::SocketError);
+    void slot_sendData();
+#ifndef REAL_SERVER
+    void onServerNewConnection();
+    void onServerClosed();
+    void processBinaryMessage(QByteArray message);
+    void processTextMessage(QString message);
+    void serverSocketDisconnected();
+    void slot_timerTest();
+#endif
 private:
     QObject *home;
     QObject *shortcutArea;
     QObject *statusArea;
+    QObject *logo;
+    QByteArray data;
     ApplicationModel *appModel;
-    QTimer timerTest;
-    QString currentLanguage;
     QWebSocket webSocket;
-    void connectWebsockets(const QUrl &url);
+    int sequence;
+    bool jsonToMap(const QByteArray &buf, QVariantMap *map) const;
+    bool mapToJson(const QVariantMap &map, QByteArray *json) const;
+    bool jsonToList(const QByteArray &buf, QList<QVariant> *list) const;
+    bool listToJson(const QList<QVariant> &list, QByteArray *json) const;
+    void setUser(const User &user);
+#ifndef REAL_SERVER
+    QTimer timerTest;
+    QWebSocket *pSocket;
+    QWebSocketServer *webSocketServer;
+    void launchServer();
+#endif
 };
 
 #endif // USERMANAGEMENT_H