From 13cbe866bb01d37e9f481fbbb0c4ce0c353dc108 Mon Sep 17 00:00:00 2001 From: DJGosnell Date: Tue, 13 Sep 2016 09:59:53 -0400 Subject: [PATCH] Isolated socket from MQ implementation. --- DtronixMessageQueue/MqSession.cs | 9 +++++++++ DtronixMessageQueue/Socket/SocketSession.cs | 8 ++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/DtronixMessageQueue/MqSession.cs b/DtronixMessageQueue/MqSession.cs index 44deccb..aea5d1c 100644 --- a/DtronixMessageQueue/MqSession.cs +++ b/DtronixMessageQueue/MqSession.cs @@ -33,6 +33,11 @@ public abstract class MqSession : SocketSession /// private MqMessage message; + /// + /// Internal framebuilder for this instance. + /// + private MqFrameBuilder frame_builder; + /// /// Outbox message queue. Internally used to store Messages before being sent to the wire by the Postmaster. /// @@ -53,6 +58,10 @@ public abstract class MqSession : SocketSession /// public SocketBase BaseSocket { get; set; } + protected override void OnSetup() { + frame_builder = new MqFrameBuilder((MqSocketConfig)Config); + } + /// /// Adds bytes from the client/server reading methods to be processed by the Postmaster. /// diff --git a/DtronixMessageQueue/Socket/SocketSession.cs b/DtronixMessageQueue/Socket/SocketSession.cs index b600b44..a82dbd4 100644 --- a/DtronixMessageQueue/Socket/SocketSession.cs +++ b/DtronixMessageQueue/Socket/SocketSession.cs @@ -60,12 +60,9 @@ public enum State : byte { /// public State CurrentState { get; protected set; } - /// - /// Internal framebuilder for this instance. + /// The last time that this session received a message. /// - protected MqFrameBuilder frame_builder; - private DateTime last_received = DateTime.UtcNow; /// @@ -73,7 +70,7 @@ public enum State : byte { /// public DateTime LastReceived => last_received; - protected System.Net.Sockets.Socket socket; + private System.Net.Sockets.Socket socket; /// /// Raw socket for this session. @@ -132,7 +129,6 @@ public static void Setup(SocketSession session, System.Net.Sockets.Socket socket session.send_args.Completed += session.IoCompleted; session.receive_args = args_pool.Pop(); session.receive_args.Completed += session.IoCompleted; - session.frame_builder = new MqFrameBuilder((MqSocketConfig)config); session.socket = socket; session.write_reset = new ManualResetEventSlim(true);