public Session( IServerDispatcher dispatcher, IHttpFilter filter ) { Contract.Ensures( dispatcher != null ); Contract.Ensures(filter!=null); Id = Guid.NewGuid().ToString(); _filter = filter; _serverConnectingEvent = new Semaphore( 1, 1 ); _logger = new SessionLogger( Id ); _serverDispatcher = dispatcher; _serverDispatcher.ActiveServerClosedConnection += new EventHandler(_serverDispatcher_ActiveServerClosedConnection); _serverDispatcher.ServerDataAvailable += ServerDispatcherServerDataAvailable; _serverDispatcher.Logger = _logger; _logger.Verbose( "Creating session" ); }
public ClientSession( IServerDispatcher dispatcher, INetworkFacadeFactory facadeFactory, IAccessLog accessLog ) { Contract.Requires( dispatcher != null ); Contract.Requires( facadeFactory != null ); Contract.Requires( accessLog != null ); ServiceLog.Logger.Verbose( "{0} ClientSession -- constructor", Id ); _facadeFactory = facadeFactory; _accessLog = accessLog; //_sendingDataToClientLock = new ManualResetEvent(true); _id = Guid.NewGuid().ToString(); _dispatcher = dispatcher; _dispatcher.SessionId = Id; _dispatcher.FatalErrorOccurred += _dispatcher_FatalErrorOccurred; _dispatcher.PartialDataAvailable += _dispatcher_PartialDataAvailable; _dispatcher.ReadResponseHeaderComplete += _dispatcher_ReadResponseHeaderComplete; _dispatcher.AllServersInactive += _dispatcher_AllServersInactive; _dispatcher.EmptyPipeline += _dispatcher_EmptyPipeline; }