|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.bsvrz.kex.tls.osi2osi3.longtelegram.Osi7LongTelegramSegment.FragmentedLongTelegram
private static final class Osi7LongTelegramSegment.FragmentedLongTelegram
Zerlegt ein Langtelegramm in Teilstücke und stellt diese per Methodenaufruf zur Verfügung
Field Summary | |
---|---|
private int |
_costEndBiggerBlock
Wie viele Bytes "kosten" die Steuerungsinformationen eines nextBiggerPiece |
private int |
_costNextBiggerPiece
Wie viele Bytes "kosten" die Steuerungsinformationen eines nextBiggerPiece |
private int |
_costStartBiggerBlock
Wie viele Bytes "kosten" die Steuerungsinformationen eines StartBiggerBlocks |
private int |
_crcChecksum
Speichert die CRC-Prüfsumme TBD in dieser Version immer 0 |
private byte |
_dataBlockNumber
Jeder DatenBlock, der verschickt wird, bekommt die gleiche Nummer, aus dieser Nummer schließt der Empfänger zu welchem Langtelegramm das Teilstück gehört. |
private int |
_dataBytesLeft
Speichert, wieviele Bytes noch verschickt werden müssen. |
private int |
_dataPosition
Speichert den Index im Byte-Array, ab dem Daten verschickt werden dürfen. |
private int |
_maxDataForBigTelegram
Speichert die maximale Anzahl von Bytes, die in einem LongTelegram vom Typ Big gesendet werden kann. |
private int |
_maxDataForTelegram
Legt die maximale Größe eines Teil-Telegramms fest. |
private int |
_numberOfNeededPieces
Wieviele Datenblockstücke müssen verschickt werden (Start und Ende zählen nicht) |
private boolean |
_onePieceLeft
Gibt an, ob noch ein Teil-Telegramm vorhanden ist, das verschickt werden muss. |
private int |
_priority
Priorität, mit der die Telegrammstücke verschickt werden sollen |
private int |
_receiverNodeNumber
Die Empfängeradresse wird von einer anderen Klasse benötigt, um an den Empfänger zu kommen. |
private int |
_senderNodeNumber
Adresse des Senders |
private boolean |
_startBlockSend
Gibt an, ob der StartBig/StartBigger Block schon verschickt wurde |
private int |
_telegramNumber
Nummer des Telegramms, das verschickt werden soll. |
private LongTelegramType |
_telegramType
Speichert den Long-Type, den das zu übertragenen Telegramm haben muss damit alle Daten übertragen werden können |
private byte[] |
_wholeTelegram
Speichert das zu übertragene Telegramm |
Constructor Summary | |
---|---|
Osi7LongTelegramSegment.FragmentedLongTelegram(byte[] telegram,
int senderNodeNumber,
byte dataBlockNumber,
int receiverNodeNumber,
int priority)
|
Method Summary | |
---|---|
private void |
createSenderNodeNumber(byte[] byteArray)
Diese Methode trägt in dem übergebenen Byte-Array die Knotennummer des Senders ein |
private int |
createTelegramFrame(byte[] byteArray)
Erzeugt einen Header und trägt den richtigen Typ (ShortBlock, StartBig,EndBig, usw ein) Danach können in das Array die Bytes des Datenblocks eingefügt werden, CRC wird ebenfalls eingetragen. |
byte |
getDataBlockNumber()
|
byte[] |
getNextPiece()
|
int |
getPriority()
|
int |
getReceiverNodeNumber()
|
int |
getSenderNodeNumber()
|
boolean |
isOnePieceLeft()
Diese Methode gibt true zurück, wenn noch ein Teil-Telegramm zur Verfügung steht. |
private boolean |
sendEndBlock()
Diese Methode stellt fest, ob das zu verschickende Telegramm das EndBigBlock oder EndBiggerBlock sein muss. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private final byte[] _wholeTelegram
private final int _senderNodeNumber
private final int _receiverNodeNumber
private final LongTelegramType _telegramType
private int _dataPosition
private int _dataBytesLeft
private boolean _onePieceLeft
private boolean _startBlockSend
private final int _maxDataForTelegram
private final int _maxDataForBigTelegram
private final byte _dataBlockNumber
private final int _numberOfNeededPieces
private int _telegramNumber
private final int _crcChecksum
private final int _costStartBiggerBlock
private final int _costNextBiggerPiece
private final int _costEndBiggerBlock
private final int _priority
Constructor Detail |
---|
public Osi7LongTelegramSegment.FragmentedLongTelegram(byte[] telegram, int senderNodeNumber, byte dataBlockNumber, int receiverNodeNumber, int priority)
Method Detail |
---|
public byte[] getNextPiece() throws IllegalStateException
IllegalStateException
public boolean isOnePieceLeft()
private int createTelegramFrame(byte[] byteArray)
byteArray
- s.o.
private boolean sendEndBlock()
private void createSenderNodeNumber(byte[] byteArray)
byteArray
- s.o.public byte getDataBlockNumber()
public int getReceiverNodeNumber()
public int getSenderNodeNumber()
public int getPriority()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |