Runnable
public abstract class Connection extends Thread
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.
ConnectionManager
,
ConnectionData
Thread.State, Thread.UncaughtExceptionHandler
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
Constructor | Description |
---|---|
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. |
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.
|
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
public Connection(ThreadGroup tcg, ConnectionData cd)
tcg
- ThreadGroup that this instance is running in.cd
- ConnectionData instance containing all vital information
of this connection.ConnectionData
public void run()
public ConnectionData getConnectionData()
ConnectionData
public void close()
public boolean isActive()
public void addConnectionListener(ConnectionListener cl)
cl
- ConnectionListener to be registered.ConnectionListener
public void removeConnectionListener(ConnectionListener cl)
cl
- ConnectionListener to be removed.ConnectionListener
public void processConnectionEvent(ConnectionEvent ce)
ce
- ConnectionEvent to be processed.ConnectionEvent
Copyright © 2020. All rights reserved.