public void OpenStream(StreamSessionParameters parameters) { if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } if (string.IsNullOrWhiteSpace(parameters.Host)) { throw new ArgumentException(@"Host is required", nameof(parameters)); } if (_session != null) { // Another session is open. // Close the session first before opening this new one ShutdownSession(); } // Fix the parameters if (!parameters.Host.StartsWith(">tcp://")) { parameters.Host = ">tcp://" + parameters.Host; } if (!parameters.Host.EndsWith(":")) { parameters.Host = parameters.Host + ":"; } // Open a new session and open it var session = new StreamSession(this, _resultConverter, parameters); OpenSession(session); }
public StreamSession(ISessionHandler sessionHandler, IResultConverter resultConverter, StreamSessionParameters parameters) { if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } _sessionHandler = sessionHandler; _resultConverter = resultConverter; _host = parameters.Host; _port = parameters.Port; _closeAfterCompleted = parameters.CloseAfterCompleted; _syncContext = SynchronizationContext.Current; }