From 15edbdc065d32c33fac6c3e7630da1fe552764f2 Mon Sep 17 00:00:00 2001
From: Akira Ohgaki <akiraohgaki@gmail.com>
Date: Fri, 12 May 2017 17:45:43 +0900
Subject: [PATCH] Set handlers

---
 app/src/main.cpp                       |  7 ++-----
 app/src/websockets/websocketserver.cpp | 14 ++++++++++++--
 app/src/websockets/websocketserver.h   | 21 ++++++++++++++++-----
 3 files changed, 30 insertions(+), 12 deletions(-)

diff --git a/app/src/main.cpp b/app/src/main.cpp
index a702c02..e6c228c 100644
--- a/app/src/main.cpp
+++ b/app/src/main.cpp
@@ -8,9 +8,6 @@
 #include <QDebug>
 
 #include "handlers/confighandler.h"
-//#include "handlers/systemhandler.h"
-//#include "handlers/ocshandler.h"
-//#include "handlers/itemhandler.h"
 #include "websockets/websocketserver.h"
 
 int main(int argc, char *argv[])
@@ -18,7 +15,7 @@ int main(int argc, char *argv[])
     // Init
     QCoreApplication app(argc, argv);
 
-    ConfigHandler *configHandler = new ConfigHandler(&app);
+    ConfigHandler *configHandler = new ConfigHandler();
     QJsonObject appConfigApplication = configHandler->getAppConfigApplication();
 
     app.setApplicationName(appConfigApplication["name"].toString());
@@ -48,7 +45,7 @@ int main(int argc, char *argv[])
     int port = clParser.value(clOptionPort).toInt();
 
     // Setup websocket server
-    WebSocketServer *wsServer = new WebSocketServer(appConfigApplication["id"].toString(), port, &app);
+    WebSocketServer *wsServer = new WebSocketServer(configHandler, appConfigApplication["id"].toString(), port, &app);
     QObject::connect(wsServer, &WebSocketServer::stopped, &app, &QCoreApplication::quit);
 
     if (wsServer->start()) {
diff --git a/app/src/websockets/websocketserver.cpp b/app/src/websockets/websocketserver.cpp
index 5e00aa5..897d8eb 100644
--- a/app/src/websockets/websocketserver.cpp
+++ b/app/src/websockets/websocketserver.cpp
@@ -6,12 +6,22 @@
 
 #include "qtlib_json.h"
 
-WebSocketServer::WebSocketServer(const QString &serverName, quint16 serverPort, QObject *parent)
-    : QObject(parent), serverName_(serverName), serverPort_(serverPort)
+#include "handlers/confighandler.h"
+#include "handlers/systemhandler.h"
+#include "handlers/ocshandler.h"
+#include "handlers/itemhandler.h"
+
+WebSocketServer::WebSocketServer(ConfigHandler *configHandler, const QString &serverName, quint16 serverPort, QObject *parent)
+    : QObject(parent), configHandler_(configHandler), serverName_(serverName), serverPort_(serverPort)
 {
     wsServer_ = new QWebSocketServer(serverName_, QWebSocketServer::NonSecureMode, this);
     connect(wsServer_, &QWebSocketServer::newConnection, this, &WebSocketServer::wsNewConnection);
     connect(wsServer_, &QWebSocketServer::closed, this, &WebSocketServer::stopped);
+
+    configHandler_->setParent(this);
+    systemHandler_ = new SystemHandler(this);
+    ocsHandler_ = new OcsHandler(configHandler_, this);
+    itemHandler_ = new ItemHandler(configHandler_, this);
 }
 
 WebSocketServer::~WebSocketServer()
diff --git a/app/src/websockets/websocketserver.h b/app/src/websockets/websocketserver.h
index 899d5dc..d15f563 100644
--- a/app/src/websockets/websocketserver.h
+++ b/app/src/websockets/websocketserver.h
@@ -7,24 +7,30 @@
 class QWebSocketServer;
 class QWebSocket;
 
+class ConfigHandler;
+class SystemHandler;
+class OcsHandler;
+class ItemHandler;
+
 class WebSocketServer : public QObject
 {
     Q_OBJECT
 
 public:
-    explicit WebSocketServer(const QString &serverName, quint16 serverPort = 0, QObject *parent = 0);
+    explicit WebSocketServer(ConfigHandler *configHandler, const QString &serverName = "WebSocketServer", quint16 serverPort = 0, QObject *parent = 0);
     ~WebSocketServer();
 
+signals:
+    void started();
+    void stopped();
+
+public slots:
     bool start();
     void stop();
     bool isError();
     QString errorString();
     QUrl serverUrl();
 
-signals:
-    void started();
-    void stopped();
-
 private slots:
     void wsNewConnection();
     void wsDisconnected();
@@ -38,4 +44,9 @@ private:
     quint16 serverPort_;
     QWebSocketServer *wsServer_;
     QList<QWebSocket *> wsClients_;
+
+    ConfigHandler *configHandler_;
+    SystemHandler *systemHandler_;
+    OcsHandler *ocsHandler_;
+    ItemHandler *itemHandler_;
 };
-- 
GitLab