[Libreoffice-commits] online.git: net/Socket.hpp

Ashod Nakashian ashod.nakashian at collabora.co.uk
Tue Mar 14 04:31:45 UTC 2017


 net/Socket.hpp |    9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

New commits:
commit b2583550393ec0ad44636d0ae27b89495b36b24e
Author: Ashod Nakashian <ashod.nakashian at collabora.co.uk>
Date:   Mon Mar 13 21:59:50 2017 -0400

    wsd: StreamSocket supports changing its SocketHandler
    
    Change-Id: I2ffc33daad4da5b98183af39e3c2a64e7e10b3e8
    Reviewed-on: https://gerrit.libreoffice.org/35158
    Reviewed-by: Ashod Nakashian <ashnakash at gmail.com>
    Tested-by: Ashod Nakashian <ashnakash at gmail.com>

diff --git a/net/Socket.hpp b/net/Socket.hpp
index 75d92ee..a5405a8 100644
--- a/net/Socket.hpp
+++ b/net/Socket.hpp
@@ -513,7 +513,7 @@ public:
 };
 
 /// A plain, non-blocking, data streaming socket.
-class StreamSocket : public Socket
+class StreamSocket : public Socket, public std::enable_shared_from_this<StreamSocket>
 {
 public:
     /// Create a StreamSocket from native FD and take ownership of handler instance.
@@ -625,6 +625,13 @@ public:
         return len != 0; // zero is eof / clean socket close.
     }
 
+    /// Replace the existing SocketHandler with a new one.
+    void setHandler(std::unique_ptr<SocketHandlerInterface> handler)
+    {
+        _socketHandler = std::move(handler);
+        _socketHandler->onConnect(shared_from_this());
+    }
+
     /// Create a socket of type TSocket given an FD and a handler.
     /// We need this helper since the handler needs a shared_ptr to the socket
     /// but we can't have a shared_ptr in the ctor.


More information about the Libreoffice-commits mailing list