19.2.5 Codec

Codecは,コンポーネントのIDLデータ型とCDRカプセル化表現の間でコンポーネントを転送する機能をインタセプタに提供します。Codecは,CodecFactoryから取得されます。

コードサンプル19-11 Codecクラス(C++)

class _VISEXPORT Codec
{
  public:
     virtual CORBA::OctetSequence* encode(const CORBA::Any& _data)=0;
     virtual CORBA::Any* decode(const CORBA::OctetSequence& _data)=0;
     virtual CORBA::OctetSequence* encode_value
                                        (const CORBA::Any& _data)=0;
     virtual CORBA::Any* decode_value(const
            CORBA::OctetSequence& _data, CORBA::TypeCode_ptr _tc)=0;
};

コードサンプル19-12 Codecインタフェース(Java)

package org.omg.IOP;

public interface Codec
  extends org.omg.CORBA.portable.IDLEntity,org.omg.CORBA.LocalInterface
{
  public byte[ ] encode(org.omg.CORBA.Any data)
      throws InvalidTypeForEncoding;
  public org.omg.CORBA.Any decode(byte[ ] data)throws
                                                 FormatMismatch;
  public byte[ ] encode_value(org.omg.CORBA.Any data)
     throws InvalidTypeForEncoding;
  public org.omg.CORBA.Any decode_value(byte[ ] data,
     org.omg.CORBA.TypeCode tc)
     throws FormatMismatch,TypeMismatch;
}