forward
Class LocalForwarder

java.lang.Object
  extended by forward.LocalForwarder
All Implemented Interfaces:
IConnector, IServerManager

public class LocalForwarder
extends java.lang.Object
implements IServerManager, IConnector

Sammlung aller fuer die Behandlung von lokalen Forwarding noetigen Methoden.


Field Summary
private static java.lang.Object m_currentServerManagerId
          Die ID wenn wir als ServerManager registriert sind, ansonsten null.
private static LocalForwarder m_instance
          Die Singleton Instanz
private  boolean m_isListing
          Sind wir bereit Verbindungen anzunehmen.
private  ForwardScheduler m_scheduler
          Der Scheduler, welcher eingehende Verbindungen behandelt.
 
Constructor Summary
private LocalForwarder()
           
 
Method Summary
 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)
          Die noetigen Methoden um den lokalen Forwarder serverseitig einzurichten.
 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_instance

private static LocalForwarder m_instance
Die Singleton Instanz


m_currentServerManagerId

private static java.lang.Object m_currentServerManagerId
Die ID wenn wir als ServerManager registriert sind, ansonsten null.


m_scheduler

private ForwardScheduler m_scheduler
Der Scheduler, welcher eingehende Verbindungen behandelt.


m_isListing

private boolean m_isListing
Sind wir bereit Verbindungen anzunehmen.

Constructor Detail

LocalForwarder

private LocalForwarder()
Method Detail

registerLocalForwarder

public static void registerLocalForwarder(int a_bandwith)
Die noetigen Methoden um den lokalen Forwarder serverseitig einzurichten.


unregisterLocalForwarder

public static void unregisterLocalForwarder()
Die noetigen Schritte um die Einrichtung des lokalen Forwarders rueckgaengig zu machen.


getServerManager

public static IServerManager getServerManager()
Liefert den Server Manager fuer lokales Forwarding.


getConnector

public static IConnector getConnector()
Liefert den Connector um eine lokale Verbindung einzurichten.


getId

public java.lang.Object getId()
Die ID, sofern wird als Servermanager agieren.

Specified by:
getId in interface IServerManager
Returns:
A unique identifier Object for the ServerManager.

shutdown

public void shutdown()
Soll der Servermanager heruntergefahren werden.

Specified by:
shutdown in interface IServerManager

startServerManager

public void startServerManager(ForwardScheduler scheduler)
                        throws java.lang.Exception
Description copied from interface: IServerManager
This starts the ServerManager.

Specified by:
startServerManager in interface IServerManager
Parameters:
scheduler - The ForwardScheduler where all new connections are reported to.
Throws:
java.lang.Exception

connect

public IStreamConnection connect(LocalAddress a_address)
                          throws ConnectionException
Zentrale Methode um eine neue lokale Verbindung einzurichten.

Throws:
ConnectionException

connect

public IConnection connect(IAddress a_address)
                    throws ConnectionException
Description copied from interface: IConnector
Zentrale Methode der Schnittstelle, welche auf Basis der uebergebenen Adresse versucht, den entfernte Endpunkt zu kontaktieren und eine Verbindung einzurichten.

Sollte dies erfolgreich sein, wird die entsprechende Verbindung zurueckgegeben. Andernfalls wird das Scheitern des Versuches durch eine Ausnahme angezeigt

Specified by:
connect in interface IConnector
Throws:
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.