パッケージ org.piax.gtrans.util
クラス Fragments
java.lang.Object
org.piax.gtrans.util.Fragments
public class Fragments extends Object
メッセージをMTUサイズ以下のfragmentに分割、または、
MTUサイズ以下のfragmentに分割されたメッセージを再構成するための
機能をまとめたクラス。
-
フィールドの概要
フィールド 修飾子とタイプ フィールド 説明 static intduplicatedstatic intlossesstatic intskipped -
コンストラクタの概要
コンストラクタ コンストラクタ 説明 Fragments() -
メソッドの概要
修飾子とタイプ メソッド 説明 voidfin()StringgetTag(Endpoint src, int msgId)Deckを振り分けるためのtag文字列を生成する。byte[]newPacketBytes(int msgId, int seq, int fragNum, byte[] bbuf, int boff, int blen)指定された条件を持つパケットbyte列を生成する。ByteBufferput(Endpoint src, org.piax.gtrans.util.Fragments.FragmentPacket fpac)fragmentの再構成処理を行う。
-
フィールド詳細
-
duplicated
public static int duplicated -
skipped
public static int skipped -
losses
public static int losses
-
-
コンストラクタの詳細
-
Fragments
public Fragments()
-
-
メソッドの詳細
-
fin
public void fin() -
newPacketBytes
public byte[] newPacketBytes(int msgId, int seq, int fragNum, byte[] bbuf, int boff, int blen)指定された条件を持つパケットbyte列を生成する。- パラメータ:
msgId- msgIdseq- 0から番号付けられたシーケンスfragNum- 全fragment数bbuf- fragment byte列を持つ配列boff- fragment byte列のoffsetblen- fragment byte列の長さ- 戻り値:
- the byte array.
-
getTag
Deckを振り分けるためのtag文字列を生成する。 パケットを受信した際に、受信byte列からFragmentPacketを構成するが、 送信元のアドレスとmsgIdのペアを識別子として、 Deckに振り分ける必要がある。tag文字列はこの識別子として生成する。- パラメータ:
src- 送信元のアドレスmsgId- msgId- 戻り値:
- tag文字列
-
put
fragmentの再構成処理を行う。 指定された送信元アドレスとFragmentPacketのmsgIdを使い適切なDeckに fragmentを追加していく。 最後のfragmentを書き加えて、元のメッセージを完成した場合は、返り値 として、再構成したメッセージを持つByteBufferを返す。 未完成の場合は、nullが返る。- パラメータ:
src- 送信元のアドレスfpac- FragmentPacket- 戻り値:
- メッセージを完成した場合はそのByteBuffer、それ以外はnull
-