# sal.io.serializable

interface Serializable;
  クラスがシリアライズ可能であることを示すインタフェース.
abstract interface Externalizable: sal.io.serializable.Serializable;
  オブジェクトを外部に出力、または外部から入力可能とするインタフェース.
  abstract void readExternal(ObjectInput input);
    入力ストリームより、オブジェクトを復元します. 本インタフェースを使用するクラスは、 引数なしのコンストラクタを呼び出した後、 本メソッドを呼び出し、オブジェクトの復元を試みます.
    Params:

    ObjectInput input | 入力ストリーム

  abstract const void writeExternal(ObjectOutput output);
    オブジェクトを出力ストリームへ書き出します. 本メソッドの呼び出しにより、クラス内部の状態が変更されてはなりません.
    Params:

    ObjectOutput output | 出力ストリーム

class ObjectInput;
  オブジェクト入力ストリーム.
  this(in ubyte[] buff, ref int* offset, in Endian e = endian);
    指定されたエンディアンの入力ストリームを構築します.
    Params:

    ubyte[] buff | バッファ
    int* offset | オフセット
    Endian e | エンディアン

  T read(T)(ref T t);
    指定された型で値を読み取ります.
    型として、次の値を指定することができます.
    - プリミティブな型
    - struct 型
    - Externalizable を継承したクラス
    型の中に動的配列が含まれる場合、事前にサイズを決める必要があります.

        struct Sample {
             int     magic;
             ubyte[] data;
         }
         Sample s;
         s.data = new ubyte[40];
         s      = input.read(s);	// input is ObjectInput instance

    Params:

    t | 読み出す型

    Return:
    値
  int getNextOffset();
    次のバッファのオフセット位置を取得します.
    Return:
    次のバッファのオフセット位置
class ObjectOutput;
  オブジェクト出力ストリーム.
  this(ref ubyte[] buff, ref int* offset, in Endian e = endian);
    指定されたエンディアンの入力ストリームを構築します. バッファが足りない場合、自動的にバッファサイズが拡張されます.
    Params:

    ubyte[] buff | バッファ
    int* offset | オフセット
    Endian e | エンディアン

  void write(T)(in T t);
    指定された値をストリームに書き出します.
    型として、次の値を指定することができます.
    - プリミティブな型
    - struct 型
    - Externalizable を継承したクラス
    Params:

    t | 書き出す値

  int getNextOffset();
    次のバッファのオフセット位置を取得します.
    Return:
    次のバッファのオフセット位置
  ubyte[] getBytes();
    ストリームバイトバッファを取得します.
    Return:
    バイトバッファ
ubyte[] toBytes(T)(in T t, in Endian e = endian);
  指定された値を ubyte[] に変換します. 値は指定されたエンディアンに従い、シリアライズ化されます.
  Params:

  t | 値
  e | エンディアン (Endian.BigEndian/Endian.LittleEndian)

  Return:
  変換後の値
ubyte[] toBytes(T)(ref ubyte[] buff, ref int* offset, in T t, in Endian e);
  指定されたバイトバッファを指定された型の値に変換します.
  Params:

  t | 変換するスカラ型
  buff | バイトバッファ
  offset | オフセット
  e | エンディアン

  Return:
  変換後の値
T toValue(T)(ref T t, in ubyte[] buff, in Endian e = endian);
  指定された buff を指定された型に変換します.
  Params:

  t | 変換する型
  buff | バッファ
  e | エンディアン

  Return:
  変換後の値
T toValue(T)(ref T t, in ubyte[] buff, ref int* offset, in Endian e);
  指定されたバイトバッファを指定された型の値に変換します.
  Params:

  t | 変換するスカラ型
  buff | バイトバッファ
  offset | オフセット
  e | エンディアン

  Return:
  変換後の値
size_t getSize(T)(in T t);
  指定された型のシリアライズ化された際のサイズを取得します.
  Params:

  t | 型オブジェクト

  Return:
  サイズ
ubyte[] toScalarBytes(T)(ref ubyte[] buff, ref int* offset, in T t, in Endian e);
  指定されたスカラ型の値を ubyte[] に変換します. 指定されたバッファに収まらない場合、バッファが拡張されます.
  Params:

  buff | バイトバッファ
  offset | オフセット
  t | 変換する型
  e | エンディアン

  Return:
  変換後の値
ubyte[] toStructBytes(T)(ref ubyte[] buff, ref int* offset, in T t, in Endian e);
  指定されたstruct型の値を ubyte[] に変換します. 指定されたバッファに収まらない場合、バッファが拡張されます.
  Params:

  buff | バイトバッファ
  offset | オフセット
  t | 変換する型
  e | エンディアン

  Return:
  変換後の値
ubyte[] toArrayBytes(T)(ref ubyte[] buff, ref int* offset, in T t, in Endian e);
  指定された配列型の値を ubyte[] に変換します. 指定されたバッファに収まらない場合、バッファが拡張されます.
  Params:

  buff | バイトバッファ
  offset | オフセット
  t | 変換する型
  e | エンディアン

  Return:
  変換後の値
ubyte[] toExternalizableBytes(T)(ref ubyte[] buff, ref int* offset, in T t, in Endian e);
  指定された Externalizableを実装したクラスを ubyte[] に変換します. 指定されたバッファに収まらない場合、バッファが拡張されます.
  Params:

  buff | バイトバッファ
  offset | オフセット
  t | 変換する型
  e | エンディアン

  Return:
  変換後の値
ubyte[] toUnionBytes(T)(ref ubyte[] buff, ref int* offset, in T t, in Endian e);
  指定されたunion型の値を ubyte[] に変換します. もっともサイズの大きい型にて変換されます. 指定されたバッファに収まらない場合、バッファが拡張されます.
  Params:

  buff | バイトバッファ
  offset | オフセット
  t | 変換する型
  e | エンディアン

  Return:
  変換後の値
T toScalarValue(T)(ref T t, in ubyte[] buff, ref int* offset, in Endian e);
  指定されたバイトバッファを指定されたスカラ型の値に変換します.
  Params:

  t | 変換する型
  buff | バイトバッファ
  offset | オフセット
  e | エンディアン

  Return:
  変換後の値
T toStructValue(T)(ref T t, in ubyte[] buff, ref int* offset, in Endian e);
  指定されたバイトバッファを指定されたstruct型の値に変換します.
  Params:

  t | 変換する型
  buff | バイトバッファ
  offset | オフセット
  e | エンディアン

  Return:
  変換後の値
T toArrayValue(T)(ref T t, in ubyte[] buff, ref int* offset, in Endian e);
  指定されたバイトバッファを指定されたstruct型の値に変換します.
  Params:

  t | 変換する型
  buff | バイトバッファ
  offset | オフセット
  e | エンディアン

  Return:
  変換後の値
T toExternalizableValue(T)(ref T t, in ubyte[] buff, ref int* offset, in Endian e);
  指定されたバイトバッファを指定された Externalizable を 実装したクラスに変換します.
  Params:

  t | 変換する型
  buff | バイトバッファ
  offset | オフセット
  e | エンディアン

  Return:
  変換後の値
T toUnionValue(T)(ref T t, in ubyte[] buff, ref int* offset, in Endian e);
  指定されたバイトバッファを指定されたunion型の値に変換します. もっとも, サイズの大きい型に調整されます.
  Params:

  t | 変換する型
  buff | バイトバッファ
  offset | オフセット
  e | エンディアン

  Return:
  変換後の値

Page generated by Ddoc.