25.6 custom valuetype

IDLでcustom valuetypeを宣言することによって,デフォルトのマーシャルモデルとアンマーシャルモデルをスキップできますが,ユーザはエンコーディングとデコーディングの責任を負います。

IDLサンプル25-3 custom valuetype IDL

custom valuetype customPoint{
  public long x;
  public long y;
  private string label;
  factory create(in long x, in long y, in string z);
};

ユーザは,CustomMarshalインタフェースからマーシャルおよびアンマーシャルメソッドをインプリメントする必要があります。

C++の場合
custom valuetypeを宣言する場合,正規のvaluetypeであるCORBA::StreamableValueとは対照的に,valuetypeはCORBA::CustomValueを継承します。コンパイラは,ユーザのvaluetype用の読み込みメソッド,書き込みメソッドを生成しません。
ユーザは,値の読み込み,書き込みを行うためにCORBA::DataInputStreamとCORBA::DataOutputStreamをそれぞれ使用して自分の読み込みメソッド,書き込みメソッドをインプリメントする必要があります。
Javaの場合
custom valuetypeを宣言する場合,正規のvaluetypeであるorg.omg.CORBA.portable.StreamableValueとは対照的に,valuetypeはorg.omg.CORBA.portable.CustomValueを継承します。コンパイラは,ユーザのvaluetype用の読み込みメソッド,書き込みメソッドを生成しません。
ユーザは,値の読み込み,書き込みを行うためにorg.omg.CORBA.portable.DataInputStreamとorg.omg.CORBA.portable.DataOutputStreamをそれぞれ使用して自分の読み込みメソッド,書き込みメソッドをインプリメントする必要があります。