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, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getRemoteAddress, getState
private 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.Link
Bestimmt das Kommunikationsprotokoll zu dem diese Verbindung gehört.
getDataLinkLayer
in interface DataLinkLayer.Link
public java.lang.String getProperty(java.lang.String name)
DataLinkLayer.Link
Bestimmt 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.Link
getProperty
in interface PropertyQueryInterface
name
- Name des Verbindungsparameters.DataLinkLayer.Link.setProperties(java.util.Properties)
,
DataLinkLayer.getProperty(java.lang.String)
public void setProperties(java.util.Properties properties)
DataLinkLayer.Link
Setzt einen neuen verbindungsspezifischen Satz von Verbindungsparametern.
setProperties
in interface DataLinkLayer.Link
properties
- Neue Verbindungsparameter.public void connect()
DataLinkLayer.Link
Aktiviert die Kommunikation auf dieser logischen Verbindung.
connect
in interface DataLinkLayer.Link
public void shutdown()
DataLinkLayer.Link
Beendet 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.Link
public void abort()
DataLinkLayer.Link
Abbruch 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.Link
public 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.Link
bytes
- Zu übertragende Nutzdatenbytes.priority
- Priorität der zu übertragenden Datenjava.lang.InterruptedException
public 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)