From 75011d0b4e41f9ee8b0c970f4cf4bcf34ae7f554 Mon Sep 17 00:00:00 2001 From: dimon4eg Date: Thu, 9 May 2019 00:23:16 +0300 Subject: [PATCH] simplify bindWebsocket --- ixwebsocket/IXWebSocketMessageQueue.cpp | 61 ++++++++++++------------- 1 file changed, 30 insertions(+), 31 deletions(-) diff --git a/ixwebsocket/IXWebSocketMessageQueue.cpp b/ixwebsocket/IXWebSocketMessageQueue.cpp index a62757bf..222478d8 100644 --- a/ixwebsocket/IXWebSocketMessageQueue.cpp +++ b/ixwebsocket/IXWebSocketMessageQueue.cpp @@ -26,42 +26,41 @@ namespace ix void WebSocketMessageQueue::bindWebsocket(WebSocket * websocket) { - if (_websocket != websocket) + if (_websocket == websocket) return; + + // unbind old + if (_websocket) { - // unbind old - if (_websocket) - { - _websocket->setOnMessageCallback(nullptr); - } + _websocket->setOnMessageCallback(nullptr); + } - _websocket = websocket; + _websocket = websocket; - // bind new - if (_websocket) + // bind new + if (_websocket) + { + _websocket->setOnMessageCallback([this]( + WebSocketMessageType type, + const std::string& str, + size_t wireSize, + const WebSocketErrorInfo& errorInfo, + const WebSocketOpenInfo& openInfo, + const WebSocketCloseInfo& closeInfo) { - _websocket->setOnMessageCallback([this]( - WebSocketMessageType type, - const std::string& str, - size_t wireSize, - const WebSocketErrorInfo& errorInfo, - const WebSocketOpenInfo& openInfo, - const WebSocketCloseInfo& closeInfo) + MessageDataPtr message(new Message()); + + message->type = type; + message->str = str; + message->wireSize = wireSize; + message->errorInfo = errorInfo; + message->openInfo = openInfo; + message->closeInfo = closeInfo; + { - MessageDataPtr message(new Message()); - - message->type = type; - message->str = str; - message->wireSize = wireSize; - message->errorInfo = errorInfo; - message->openInfo = openInfo; - message->closeInfo = closeInfo; - - { - std::lock_guard lock(_messagesMutex); - _messages.emplace_back(std::move(message)); - } - }); - } + std::lock_guard lock(_messagesMutex); + _messages.emplace_back(std::move(message)); + } + }); } }