From 84c0428d26ae632c93354a052dcde7e6c4a92d1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benedikt-Alexander=20Mokro=C3=9F?= Date: Fri, 19 Nov 2021 10:03:55 +0100 Subject: [PATCH] Added convenience method for sending DTO's via WebSocket. --- src/oatpp-websocket/WebSocket.cpp | 7 ++++++- src/oatpp-websocket/WebSocket.hpp | 9 +++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/oatpp-websocket/WebSocket.cpp b/src/oatpp-websocket/WebSocket.cpp index 2d0ebd3..5db2479 100644 --- a/src/oatpp-websocket/WebSocket.cpp +++ b/src/oatpp-websocket/WebSocket.cpp @@ -388,5 +388,10 @@ void WebSocket::sendOneFrameBinary(const oatpp::String& message) const { throw std::runtime_error("[oatpp::web::protocol::websocket::WebSocket::sendOneFrameBinary()]: Unknown error while writing to socket."); } } - + +void WebSocket::sendOneFrameDto(const Void &dto, + const std::shared_ptr &objectMapper) const { + sendOneFrameText(objectMapper->writeToString(dto)); +} + }} diff --git a/src/oatpp-websocket/WebSocket.hpp b/src/oatpp-websocket/WebSocket.hpp index 16e064d..1e9b291 100644 --- a/src/oatpp-websocket/WebSocket.hpp +++ b/src/oatpp-websocket/WebSocket.hpp @@ -30,6 +30,8 @@ #include "oatpp/core/data/stream/BufferStream.hpp" #include "oatpp/core/provider/Provider.hpp" +#include "oatpp/core/data/mapping/ObjectMapper.hpp" +#include "oatpp/core/macro/component.hpp" namespace oatpp { namespace websocket { @@ -271,6 +273,13 @@ class WebSocket : public oatpp::base::Countable { * @throws - `runtime_error`. */ void sendOneFrameBinary(const oatpp::String& message) const; + + /** + * Send one-frame dto message. + * @param message - message dto. &id:oatpp::data::mapping::type::Void;. + * @throws - `runtime_error`. + */ + void sendOneFrameDto(const oatpp::data::mapping::type::Void& dto, const std::shared_ptr& objectMapper = OATPP_GET_COMPONENT(std::shared_ptr)) const; };