abstract public void Send(TCPConnection con);
abstract public void Open(TCPConnection con);
abstract public void Close(TCPConnection con);
public override void Open(TCPConnection con) { Console.WriteLine("abrindo"); SetState(con, new TCPOpenned()); }
public override void Send(TCPConnection con) { Console.WriteLine("impossível mandar mensagem com cone~xão fechada"); }
public override void Close(TCPConnection con) { Console.WriteLine("conexão já fechada"); }
public override void Send(TCPConnection con) { Console.WriteLine("enviar mensagem"); }
public override void Open(TCPConnection con) { Console.WriteLine("conexão já aberta"); }
public override void Close(TCPConnection con) { Console.WriteLine("fechando conexao"); SetState(con, new TCPClosed()); // modo burro, so de exemplo }
protected void SetState(TCPConnection con, ITCPState state) { con.state = state; }