public void Push(SessionState state) { lock (sessionStates) { SessionState previousState = Peek(); if (previousState != null) previousState.Pause(); state.Session = owner; sessionStates.Push(state); state.Start(); } }
public static Session Create(IConnection connection, SessionState sessionState, IConnectionWriterFactory connectionWriterFactory, IServiceProvider services) { if (connection == null) throw new ArgumentNullException("connection", "connection is null."); if (sessionState == null) throw new ArgumentNullException("sessionState", "sessionState is null."); Session session = new Session(connectionWriterFactory) { Connection = connection, Services = services }; session.PushState(sessionState); return session; }
public void PushState(SessionState sessionState) { stateStack.Push(sessionState); }