de.bsvrz.kex.tls.osi2osi3.osi2.api
Class AbstractDataLinkLayer

java.lang.Object
  extended by de.bsvrz.kex.tls.osi2osi3.osi2.api.AbstractDataLinkLayer
All Implemented Interfaces:
DataLinkLayer
Direct Known Subclasses:
AbstractTc57, WanCom

public abstract class AbstractDataLinkLayer
extends Object
implements DataLinkLayer

Klasse mit Default-Implementierungen einzelner Methoden der Schnittstelle für Protokolle der Sicherungsschicht (OSI 2).

Author:
Kappich Systemberatung

Nested Class Summary
static class AbstractDataLinkLayer.Link
           
 
Field Summary
private  LinkedList<DataLinkLayerListener> _dataLinkLayerListeners
           
private  Debug _debug
           
private  int _localAddress
           
private  Properties _properties
           
private  Object _propertiesSync
           
 
Constructor Summary
AbstractDataLinkLayer()
           
 
Method Summary
 void addEventListener(DataLinkLayerListener dataLinkLayerListener)
           
protected  boolean allowConnection(List<AbstractDataLinkLayer.Link> links)
          Überprüft ob eine Verbindung erlaubt ist.
protected  boolean allowConnection(List<AbstractDataLinkLayer.Link> links, Properties properties)
          Überprüft ob eine Verbindung erlaubt ist.
protected  void checkConnection(List<AbstractDataLinkLayer.Link> links, Properties properties)
          Überprüft, ob die Verbindung zulässig ist.
protected abstract  String getDefaultProperty(String name)
           
 int getLocalAddress()
          Bestimmt die OSI2-Adresse bzw.
 String getProperty(String name)
          Bestimmt den Wert eines bestimmten Protokoll-Parameters.
protected  void notifyEvent(DataLinkLayer.Link link, DataLinkLayerEvent.Type type, Object data)
           
protected  void notifyEvent(DataLinkLayerEvent event)
           
 void removeEventListener(DataLinkLayerListener dataLinkLayerListener)
           
 void setLocalAddress(int port)
          Setzt die OSI2-Adresse bzw.
 void setProperties(Properties properties)
          Setzt einen neuen Satz von Protokoll-Parametern.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface de.bsvrz.kex.tls.osi2osi3.osi2.api.DataLinkLayer
abort, createLink, getMaximumDataSize, isStarted, setDavConnection, shutdown, start
 

Field Detail

_dataLinkLayerListeners

private final LinkedList<DataLinkLayerListener> _dataLinkLayerListeners

_localAddress

private int _localAddress

_properties

private Properties _properties

_propertiesSync

private final Object _propertiesSync

_debug

private final Debug _debug
Constructor Detail

AbstractDataLinkLayer

public AbstractDataLinkLayer()
Method Detail

getDefaultProperty

protected abstract String getDefaultProperty(String name)

getProperty

public String getProperty(String name)
Description copied from interface: DataLinkLayer
Bestimmt den Wert eines bestimmten Protokoll-Parameters.

Specified by:
getProperty in interface DataLinkLayer
Parameters:
name - Name des Protokoll-Parameters.
Returns:
Wert des Protokoll-Parameters.

setProperties

public void setProperties(Properties properties)
Description copied from interface: DataLinkLayer
Setzt einen neuen Satz von Protokoll-Parametern. Diese dienen auch als Defaultwerte für die Verbindungsparameter.

Specified by:
setProperties in interface DataLinkLayer
Parameters:
properties - Neue Verbindungsparameter.
See Also:
DataLinkLayer.Link.getProperty(java.lang.String)

addEventListener

public final void addEventListener(DataLinkLayerListener dataLinkLayerListener)
Specified by:
addEventListener in interface DataLinkLayer

removeEventListener

public final void removeEventListener(DataLinkLayerListener dataLinkLayerListener)
Specified by:
removeEventListener in interface DataLinkLayer

notifyEvent

protected final void notifyEvent(DataLinkLayerEvent event)

notifyEvent

protected final void notifyEvent(DataLinkLayer.Link link,
                                 DataLinkLayerEvent.Type type,
                                 Object data)

setLocalAddress

public void setLocalAddress(int port)
Description copied from interface: DataLinkLayer
Setzt die OSI2-Adresse bzw. Portnummer des eigenen Kommunikationsendpunkts.

Specified by:
setLocalAddress in interface DataLinkLayer
Parameters:
port - Eigene OSI2-Adresse bzw. Portnummer.

getLocalAddress

public int getLocalAddress()
Description copied from interface: DataLinkLayer
Bestimmt die OSI2-Adresse bzw. Portnummer des eigenen Kommunikationsendpunkts.

Specified by:
getLocalAddress in interface DataLinkLayer
Returns:
Eigene OSI2-Adresse bzw. Portnummer.

checkConnection

protected void checkConnection(List<AbstractDataLinkLayer.Link> links,
                               Properties properties)
Überprüft, ob die Verbindung zulässig ist. Die Secondary Adresse 1-199 und 255 ist immer zulässig, die Adressen 200-254 sind nur zulässig wenn Parameter "secondary.adressen200-254Akzeptieren" gesetzt ist. Sollte die Verbindung nicht zulässig sein, wird eine Debug Ausgabe erzeugt.

Parameters:
links - Liste mit allen Links/Verbindungen
properties - Neue Properties

allowConnection

protected boolean allowConnection(List<AbstractDataLinkLayer.Link> links)
Überprüft ob eine Verbindung erlaubt ist. Normalerweise sind die Secondary-Adressen von 1-199 und 255 erlaubt. Mithilfe des Parameters "secondary.adressen200-254Akzeptieren" können auch die Adressen 1-255 zugelassen werden.

Parameters:
links - Liste mit allen Verbindungen
Returns:
true: Die Verbindung darf aufgebaut werden.
false: Es darf kein Telegram Austausch stattfinden.

allowConnection

protected boolean allowConnection(List<AbstractDataLinkLayer.Link> links,
                                  Properties properties)
Überprüft ob eine Verbindung erlaubt ist. Normalerweise sind die Secondary-Adressen von 1-199 und 255 erlaubt. Mithilfe des Parameters "secondary.adressen200-254Akzeptieren" können auch die Adressen 1-255 zugelassen werden.

Parameters:
links - Liste mit allen Verbindungen
properties - Neue Einstellungen
Returns:
true: Die Verbindung darf aufgebaut werden.
false: Es darf kein Telegram Austausch stattfinden.