Class Connection
- java.lang.Object
-
- java.lang.Thread
-
- org.jline.builtins.telnet.Connection
-
- All Implemented Interfaces:
java.lang.Runnable
public abstract class Connection extends java.lang.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:
ConnectionManager
,ConnectionData
-
-
Constructor Summary
Constructors Constructor Description Connection(java.lang.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.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
addConnectionListener(ConnectionListener cl)
Method that registers a ConnectionListener with the Connection instance.void
close()
Closes the connection and its underlying i/o and network resources.protected abstract void
doClose()
protected abstract void
doRun()
ConnectionData
getConnectionData()
Method to access the associated connection data.boolean
isActive()
Returns if a connection has been closed.void
processConnectionEvent(ConnectionEvent ce)
Method called by the io subsystem to pass on a "low-level" event.void
removeConnectionListener(ConnectionListener cl)
Method that removes a ConnectionListener from the Connection instance.void
run()
Method overloaded to implement following behaviour: On first entry, retrieve an instance of the configured login shell from the ShellManager and run it.-
Methods inherited from class java.lang.Thread
activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, suspend, toString, yield
-
-
-
-
Constructor Detail
-
Connection
public Connection(java.lang.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:
ConnectionData
-
-
Method Detail
-
run
public void run()
Method overloaded to implement following behaviour:- On first entry, retrieve an instance of the configured login shell from the ShellManager and run it.
- Handle a shell switch or close down disgracefully when problems (i.e. unhandled unchecked exceptions) occur in the running shell.
- Specified by:
run
in interfacejava.lang.Runnable
- Overrides:
run
in classjava.lang.Thread
-
doRun
protected abstract void doRun() throws java.lang.Exception
- Throws:
java.lang.Exception
-
doClose
protected abstract void doClose() throws java.lang.Exception
- Throws:
java.lang.Exception
-
getConnectionData
public ConnectionData getConnectionData()
Method to access the associated connection data.- Returns:
- ConnectionData associated with the Connection instance.
- See Also:
ConnectionData
-
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:
ConnectionListener
-
removeConnectionListener
public void removeConnectionListener(ConnectionListener cl)
Method that removes a ConnectionListener from the Connection instance.- Parameters:
cl
- ConnectionListener to be removed.- See Also:
ConnectionListener
-
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:
ConnectionEvent
-
-