パッケージ org.piax.gtrans.util

クラス Fragments

java.lang.Object
org.piax.gtrans.util.Fragments

public class Fragments
extends Object
メッセージをMTUサイズ以下のfragmentに分割、または、 MTUサイズ以下のfragmentに分割されたメッセージを再構成するための 機能をまとめたクラス。
  • フィールドの概要

    フィールド 
    修飾子とタイプ フィールド 説明
    static int duplicated  
    static int losses  
    static int skipped  
  • コンストラクタの概要

    コンストラクタ 
    コンストラクタ 説明
    Fragments()  
  • メソッドの概要

    修飾子とタイプ メソッド 説明
    void fin()  
    String getTag​(Endpoint src, int msgId)
    Deckを振り分けるためのtag文字列を生成する。
    byte[] newPacketBytes​(int msgId, int seq, int fragNum, byte[] bbuf, int boff, int blen)
    指定された条件を持つパケットbyte列を生成する。
    ByteBuffer put​(Endpoint src, org.piax.gtrans.util.Fragments.FragmentPacket fpac)
    fragmentの再構成処理を行う。

    クラスから継承されたメソッド java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • フィールド詳細

  • コンストラクタの詳細

  • メソッドの詳細

    • fin

      public void fin()
    • newPacketBytes

      public byte[] newPacketBytes​(int msgId, int seq, int fragNum, byte[] bbuf, int boff, int blen)
      指定された条件を持つパケットbyte列を生成する。
      パラメータ:
      msgId - msgId
      seq - 0から番号付けられたシーケンス
      fragNum - 全fragment数
      bbuf - fragment byte列を持つ配列
      boff - fragment byte列のoffset
      blen - fragment byte列の長さ
      戻り値:
      the byte array.
    • getTag

      public String getTag​(Endpoint src, int msgId)
      Deckを振り分けるためのtag文字列を生成する。 パケットを受信した際に、受信byte列からFragmentPacketを構成するが、 送信元のアドレスとmsgIdのペアを識別子として、 Deckに振り分ける必要がある。tag文字列はこの識別子として生成する。
      パラメータ:
      src - 送信元のアドレス
      msgId - msgId
      戻り値:
      tag文字列
    • put

      public ByteBuffer put​(Endpoint src, org.piax.gtrans.util.Fragments.FragmentPacket fpac)
      fragmentの再構成処理を行う。 指定された送信元アドレスとFragmentPacketのmsgIdを使い適切なDeckに fragmentを追加していく。 最後のfragmentを書き加えて、元のメッセージを完成した場合は、返り値 として、再構成したメッセージを持つByteBufferを返す。 未完成の場合は、nullが返る。
      パラメータ:
      src - 送信元のアドレス
      fpac - FragmentPacket
      戻り値:
      メッセージを完成した場合はそのByteBuffer、それ以外はnull