From 52b217d9deb4eb36eb7210a3e884e3cadd317120 Mon Sep 17 00:00:00 2001 From: Akira Ohgaki <akiraohgaki@gmail.com> Date: Mon, 1 May 2017 17:25:04 +0900 Subject: [PATCH] Add signals --- app/src/main.cpp | 2 ++ app/src/websockets/websocketserver.cpp | 11 +++++++---- app/src/websockets/websocketserver.h | 4 ++++ 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/app/src/main.cpp b/app/src/main.cpp index acfa5fd..6d2aa87 100644 --- a/app/src/main.cpp +++ b/app/src/main.cpp @@ -49,6 +49,8 @@ int main(int argc, char *argv[]) // Setup websocket server WebSocketServer *webSocketServer = new WebSocketServer(appConfigApplication["id"].toString(), port, &app); + QObject::connect(webSocketServer, &WebSocketServer::stopped, &app, &QCoreApplication::quit); + if (webSocketServer->start()) { qDebug() << "Websocket server started at:" << webSocketServer->serverUrl().toString(); } diff --git a/app/src/websockets/websocketserver.cpp b/app/src/websockets/websocketserver.cpp index b323173..dc4d308 100644 --- a/app/src/websockets/websocketserver.cpp +++ b/app/src/websockets/websocketserver.cpp @@ -7,19 +7,22 @@ WebSocketServer::WebSocketServer(const QString &serverName, quint16 serverPort, : QObject(parent), serverName_(serverName), serverPort_(serverPort) { webSocketServer_ = new QWebSocketServer(serverName_, QWebSocketServer::NonSecureMode, this); + connect(webSocketServer_, &QWebSocketServer::closed, this, &WebSocketServer::stopped); } WebSocketServer::~WebSocketServer() { - if (webSocketServer_->isListening()) { - webSocketServer_->close(); - } + stop(); webSocketServer_->deleteLater(); } bool WebSocketServer::start() { - return webSocketServer_->listen(QHostAddress::Any, serverPort_); + if (webSocketServer_->listen(QHostAddress::Any, serverPort_)) { + emit started(); + return true; + } + return false; } void WebSocketServer::stop() diff --git a/app/src/websockets/websocketserver.h b/app/src/websockets/websocketserver.h index b381e6e..d17dd50 100644 --- a/app/src/websockets/websocketserver.h +++ b/app/src/websockets/websocketserver.h @@ -13,6 +13,10 @@ public: explicit WebSocketServer(const QString &serverName, quint16 serverPort = 0, QObject *parent = 0); ~WebSocketServer(); +signals: + void started(); + void stopped(); + public slots: bool start(); void stop(); -- GitLab