public void Stop() { StateBase prevState = State; State = new DisconnectedState(); prevState.Signal(); }
public void Disconnect() { if (State == null) { State = new DisconnectedState(); } State.Disconnected(this); }
public Server(OnStateChanged onStateChanged) { _running = true; _onStateChanged = onStateChanged; _state = new StateBase(); _newState = new DisconnectedState(); _newState.Server = this; _serverThread = new Thread(this.Run); _serverThread.SetApartmentState(System.Threading.ApartmentState.STA); _serverThread.Start(); }
private Connection() { var socket = new CustomSocket(); IConnection connected = new ConnectedState <IConnection>(this, this, socket); IConnection disconnected = new DisconnectedState <IConnection>(this, this, socket); IConnection error = new ErrorState <IConnection>(this, this, socket); AddTransition(connected, ConnectedState <IConnection> .DISCONNECT, disconnected); AddTransition(connected, ConnectedState <IConnection> .ERROR, error); AddTransition(disconnected, DisconnectedState <IConnection> .CONNECT, connected); AddTransition(disconnected, DisconnectedState <IConnection> .ERROR, error); AddTransition(error, ErrorState <IConnection> .CONNECT, connected); AddTransition(error, ErrorState <IConnection> .DISCONNECT, disconnected); CurrentState = disconnected; }