Class Connection

java.lang.Object
java.lang.Thread
org.jline.builtins.telnet.Connection
All Implemented Interfaces:
Runnable

public abstract class Connection extends Thread
Class that implements a connection with this telnet daemon.

It is derived from java.lang.Thread, which reflects the architecture constraint of one thread per connection. This might seem a waste of resources, but as a matter of fact sharing threads would require a far more complex imlementation, due to the fact that telnet is not a stateless protocol (i.e. alive throughout a session of multiple requests and responses).

Each Connection instance is created by the listeners ConnectionManager instance, making it part of a threadgroup and passing in an associated ConnectionData instance, that holds vital information about the connection. Be sure to take a look at their documention.

Once the thread has started and is running, it will get a login shell instance from the ShellManager and run passing its own reference.

Version:
2.0 (16/07/2006)
Author:
Dieter Wimberger
See Also:
  • Constructor Details

    • Connection

      public Connection(ThreadGroup tcg, ConnectionData cd)
      Constructs a TelnetConnection by invoking its parent constructor and setting of various members.
      Subsequently instantiates the whole i/o subsystem, negotiating telnet protocol level options etc.
      Parameters:
      tcg - ThreadGroup that this instance is running in.
      cd - ConnectionData instance containing all vital information of this connection.
      See Also:
  • Method Details

    • run

      public void run()
      Method overloaded to implement following behaviour:
      1. On first entry, retrieve an instance of the configured login shell from the ShellManager and run it.
      2. Handle a shell switch or close down disgracefully when problems (i.e. unhandled unchecked exceptions) occur in the running shell.
      Specified by:
      run in interface Runnable
      Overrides:
      run in class Thread
    • doRun

      protected abstract void doRun() throws Exception
      Throws:
      Exception
    • doClose

      protected abstract void doClose() throws Exception
      Throws:
      Exception
    • getConnectionData

      public ConnectionData getConnectionData()
      Method to access the associated connection data.
      Returns:
      ConnectionData associated with the Connection instance.
      See Also:
    • close

      public void close()
      Closes the connection and its underlying i/o and network resources.
    • isActive

      public boolean isActive()
      Returns if a connection has been closed.
      Returns:
      the state of the connection.
    • addConnectionListener

      public void addConnectionListener(ConnectionListener cl)
      Method that registers a ConnectionListener with the Connection instance.
      Parameters:
      cl - ConnectionListener to be registered.
      See Also:
    • removeConnectionListener

      public void removeConnectionListener(ConnectionListener cl)
      Method that removes a ConnectionListener from the Connection instance.
      Parameters:
      cl - ConnectionListener to be removed.
      See Also:
    • processConnectionEvent

      public void processConnectionEvent(ConnectionEvent ce)
      Method called by the io subsystem to pass on a "low-level" event. It will be properly delegated to all registered listeners.
      Parameters:
      ce - ConnectionEvent to be processed.
      See Also: