private class Client.Link extends AbstractDataLinkLayer.Link implements DataLinkLayer.Link, PropertyQueryInterface
| Modifier and Type | Field and Description |
|---|---|
private int |
_keepAliveReceiveTimeoutCount |
private long |
_lastKeepAliveReceive |
(package private) byte[] |
_packetOnTheAir |
private java.util.Properties |
_properties |
private PropertyConsultant |
_propertyConsultant |
private java.nio.ByteBuffer |
_readBuffer |
private java.nio.ByteBuffer |
_sendBuffer |
private PriorityChannel |
_sendChannel |
private boolean |
_sendKeepAlive |
private java.nio.channels.SocketChannel |
_socketChannel |
private boolean |
_tcpConnectedWaitingForFirstReceive |
private java.util.Timer |
_timer |
private int |
_wanComConnectRetryDelay |
private byte[] |
_wanComIp8 |
private int |
_wanComKeepAliveTimeoutCount |
private int |
_wanComKeepAliveTimeSeconds |
private int |
_wanComKeepAliveType |
private int |
_wanComTlsType
WanCom-Typ für versendete TLS-Telegramme
|
private int |
_wanComTlsTypeReceive
WanCom-Typ für empfangene TLS-Telegramme, -1 bedeutet, dass beliebige Typen akzeptiert werden
|
private int |
_wanComVersion |
private boolean |
_wanComWaitForInitialReceive |
_linkLock, _linkPropertyLock, _linkState, _remoteAddress| Modifier | Constructor and Description |
|---|---|
private |
Link(int remoteAddress) |
| Modifier and Type | Method and Description |
|---|---|
void |
abort()
Abbruch der Kommunikation auf dieser logischen Verbindung.
|
private void |
closeChannel() |
private void |
closeChannel(int reconnectDelay) |
void |
connect()
Aktiviert die Kommunikation auf dieser logischen Verbindung.
|
private void |
connectSocketChannel(java.nio.channels.Selector selector) |
DataLinkLayer |
getDataLinkLayer()
Bestimmt das Kommunikationsprotokoll zu dem diese Verbindung gehört.
|
java.lang.String |
getProperty(java.lang.String name)
Bestimmt den Wert eines bestimmten Verbindungsparameters.
|
void |
handleAction(Client.ActionType action,
java.nio.channels.Selector selector) |
private void |
handleAsyncSend(java.nio.channels.Selector selector) |
void |
handleSelection(java.nio.channels.SelectionKey selectionKey,
java.nio.channels.Selector selector) |
private void |
notifyWorker(Client.ActionType action) |
void |
reload() |
private void |
scheduleActionTimer(Client.ActionType actionType,
int delaySeconds) |
void |
send(byte[] bytes,
int priority)
Übernimmt die übergebenen Nutzdaten in den Sendepuffer.
|
void |
setProperties(java.util.Properties properties)
Setzt einen neuen verbindungsspezifischen Satz von Verbindungsparametern.
|
void |
shutdown()
Beendet die Kommunikation auf dieser logischen Verbindung.
|
getRemoteAddress, getState, notifyEvent, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetRemoteAddress, getStateprivate final PriorityChannel _sendChannel
private java.nio.channels.SocketChannel _socketChannel
private java.util.Properties _properties
private final PropertyConsultant _propertyConsultant
private int _wanComVersion
private int _wanComKeepAliveTimeSeconds
private int _wanComKeepAliveTimeoutCount
private int _wanComConnectRetryDelay
private final java.util.Timer _timer
private final java.nio.ByteBuffer _readBuffer
private final java.nio.ByteBuffer _sendBuffer
private int _wanComKeepAliveType
private int _wanComTlsType
WanCom-Typ für versendete TLS-Telegramme
private int _wanComTlsTypeReceive
WanCom-Typ für empfangene TLS-Telegramme, -1 bedeutet, dass beliebige Typen akzeptiert werden
private long _lastKeepAliveReceive
private int _keepAliveReceiveTimeoutCount
private boolean _sendKeepAlive
private byte[] _wanComIp8
byte[] _packetOnTheAir
private boolean _wanComWaitForInitialReceive
private boolean _tcpConnectedWaitingForFirstReceive
private void notifyWorker(Client.ActionType action)
public DataLinkLayer getDataLinkLayer()
DataLinkLayer.LinkBestimmt das Kommunikationsprotokoll zu dem diese Verbindung gehört.
getDataLinkLayer in interface DataLinkLayer.Linkpublic java.lang.String getProperty(java.lang.String name)
DataLinkLayer.LinkBestimmt den Wert eines bestimmten Verbindungsparameters. Wenn der gewünschte Verbindungsparameter nicht in den verbindungsspezifischen Parametern enthalten ist, wird mit der DataLinkLayer.getProperty(java.lang.String) Methode des Sicherungsprotokolls ein Defaultwert bestimmt.
getProperty in interface DataLinkLayer.LinkgetProperty in interface PropertyQueryInterfacename - Name des Verbindungsparameters.DataLinkLayer.Link.setProperties(java.util.Properties),
DataLinkLayer.getProperty(java.lang.String)public void setProperties(java.util.Properties properties)
DataLinkLayer.LinkSetzt einen neuen verbindungsspezifischen Satz von Verbindungsparametern.
setProperties in interface DataLinkLayer.Linkproperties - Neue Verbindungsparameter.public void connect()
DataLinkLayer.LinkAktiviert die Kommunikation auf dieser logischen Verbindung.
connect in interface DataLinkLayer.Linkpublic void shutdown()
DataLinkLayer.LinkBeendet die Kommunikation auf dieser logischen Verbindung. Vor der Terminierung der Verbindung wird sichergestellt, dass Daten, die zuvor an die Methode DataLinkLayer.Link.send(byte[], int) übergeben wurden, auch übertragen werden.
shutdown in interface DataLinkLayer.Linkpublic void abort()
DataLinkLayer.LinkAbbruch der Kommunikation auf dieser logischen Verbindung. Der Aufruf dieser Methode führt zur sofortigen Terminierung der Verbindung. Daten, die zuvor an die Methode DataLinkLayer.Link.send(byte[], int) übergeben wurden und noch nicht übertragen wurden, werden nicht mehr übertragen.
abort in interface DataLinkLayer.Linkpublic void reload()
public void send(byte[] bytes,
int priority)
throws java.lang.InterruptedException
DataLinkLayer.LinkÜbernimmt die übergebenen Nutzdaten in den Sendepuffer. Die übergebenen Nutzdaten werden asynchron in der Reihenfolge der Aufrufe dieser Methode an den Kommunikationspartner dieser Verbindung übertragen.
send in interface DataLinkLayer.Linkbytes - Zu übertragende Nutzdatenbytes.priority - Priorität der zu übertragenden Datenjava.lang.InterruptedExceptionpublic void handleAction(Client.ActionType action, java.nio.channels.Selector selector)
private void handleAsyncSend(java.nio.channels.Selector selector)
private void closeChannel()
private void closeChannel(int reconnectDelay)
public void handleSelection(java.nio.channels.SelectionKey selectionKey,
java.nio.channels.Selector selector)
private void connectSocketChannel(java.nio.channels.Selector selector)
private void scheduleActionTimer(Client.ActionType actionType, int delaySeconds)