public class LocalForwarder extends java.lang.Object implements IServerManager, IConnector
Modifier and Type | Field and Description |
---|---|
private static java.lang.Object |
m_currentServerManagerId
The ID, if the instance is registered as a ServerManager, otherwise null.
|
private static LocalForwarder |
m_instance
The singleton instance
|
private boolean |
m_isListing
Sind wir bereit Verbindungen anzunehmen.
|
private ForwardScheduler |
m_scheduler
Der Scheduler, welcher eingehende Verbindungen behandelt.
|
Modifier | Constructor and Description |
---|---|
private |
LocalForwarder() |
Modifier and Type | Method and Description |
---|---|
IConnection |
connect(IAddress a_address)
Zentrale Methode der Schnittstelle, welche auf Basis der uebergebenen
Adresse versucht, den entfernte Endpunkt zu kontaktieren und eine
Verbindung einzurichten.
|
IStreamConnection |
connect(LocalAddress a_address)
Zentrale Methode um eine neue lokale Verbindung einzurichten.
|
static IConnector |
getConnector()
Liefert den Connector um eine lokale Verbindung einzurichten.
|
java.lang.Object |
getId()
Die ID, sofern wird als Servermanager agieren.
|
static IServerManager |
getServerManager()
Liefert den Server Manager fuer lokales Forwarding.
|
static void |
registerLocalForwarder(int a_bandwith)
Starts the ForwardServerManager instance with the given bandwidth
and a single available connection.
|
void |
shutdown()
Soll der Servermanager heruntergefahren werden.
|
void |
startServerManager(ForwardScheduler scheduler)
This starts the ServerManager.
|
static void |
unregisterLocalForwarder()
Die noetigen Schritte um die Einrichtung des lokalen Forwarders rueckgaengig
zu machen.
|
private static LocalForwarder m_instance
private static java.lang.Object m_currentServerManagerId
private ForwardScheduler m_scheduler
private boolean m_isListing
public static void registerLocalForwarder(int a_bandwith)
a_bandwith
- The bandwidth the single connection can use.public static void unregisterLocalForwarder()
public static IServerManager getServerManager()
public static IConnector getConnector()
public java.lang.Object getId()
getId
in interface IServerManager
public void shutdown()
shutdown
in interface IServerManager
public void startServerManager(ForwardScheduler scheduler) throws java.lang.Exception
IServerManager
startServerManager
in interface IServerManager
scheduler
- The ForwardScheduler where all new connections are reported to.java.lang.Exception
public IStreamConnection connect(LocalAddress a_address) throws ConnectionException
ConnectionException
public IConnection connect(IAddress a_address) throws ConnectionException
IConnector
Sollte dies erfolgreich sein, wird die entsprechende Verbindung zurueckgegeben. Andernfalls wird das Scheitern des Versuches durch eine Ausnahme angezeigt
connect
in interface IConnector
ConnectionException
- wird geworfen, wenn Aufgrund verschiedener Probleme keine
Verbindung eingerichtet werden konnte.
Zur genaueren Beschreibung des Fehlers, sollte
CommunicationException
zur Anzeige von Fehlern bei
der Kommunikation mit dem Endpunkt (ungueltige Adresse, Fehler
im Transportmedium) verwendetet werden und Instanzen von
RequestException
um anzuzeigen, dass der
Verbindungsversuch vom Endpunkt abgelehnt wurde.
Copyright © 2023. All rights reserved.