Class CDREncapsCodec
- java.lang.Object
-
- org.omg.CORBA.LocalObject
-
- com.sun.corba.ee.impl.interceptors.CDREncapsCodec
-
- All Implemented Interfaces:
java.io.Serializable
,Object
,IDLEntity
,Codec
,CodecOperations
public final class CDREncapsCodec extends LocalObject implements Codec
CDREncapsCodec is an implementation of Codec, as described in orbos/99-12-02, that supports CDR encapsulation version 1.0, 1.1, and 1.2.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private GIOPVersion
giopVersion
private ORB
orb
(package private) static ORBUtilSystemException
wrapper
-
Constructor Summary
Constructors Constructor Description CDREncapsCodec(ORB orb, int major, int minor)
Creates a new codec implementation.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Any
decode(byte[] data)
Decode the given octet sequence into an any based on a CDR encapsulated octet sequence.Any
decode_value(byte[] data, TypeCode tc)
Decode the given octet sequence into an any based on a CDR encapsulated octet sequence.private Any
decodeImpl(byte[] data, TypeCode tc)
Decode the given octet sequence into an any based on a CDR encapsulated octet sequence.byte[]
encode(Any data)
Convert the given any into a CDR encapsulated octet sequencebyte[]
encode_value(Any data)
Convert the given any into a CDR encapsulated octet sequence.private byte[]
encodeImpl(Any data, boolean sendTypeCode)
Convert the given any into a CDR encapsulated octet sequence.-
Methods inherited from class org.omg.CORBA.LocalObject
_create_request, _create_request, _duplicate, _get_domain_managers, _get_interface, _get_interface_def, _get_policy, _hash, _invoke, _is_a, _is_equivalent, _is_local, _non_existent, _orb, _release, _releaseReply, _request, _request, _servant_postinvoke, _servant_preinvoke, _set_policy_override, validate_connection
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.omg.CORBA.Object
_create_request, _create_request, _duplicate, _get_domain_managers, _get_interface_def, _get_policy, _hash, _is_a, _is_equivalent, _non_existent, _release, _request, _set_policy_override
-
-
-
-
Field Detail
-
orb
private transient ORB orb
-
wrapper
static final ORBUtilSystemException wrapper
-
giopVersion
private transient GIOPVersion giopVersion
-
-
Constructor Detail
-
CDREncapsCodec
public CDREncapsCodec(ORB orb, int major, int minor)
Creates a new codec implementation. Uses the given ORB to create CDRInputStreams when necessary.- Parameters:
orb
- The ORB to use to create a CDRInputStream or CDROutputStreammajor
- The major version of GIOP we are encoding forminor
- The minor version of GIOP we are encoding for
-
-
Method Detail
-
encode
public byte[] encode(Any data) throws InvalidTypeForEncoding
Convert the given any into a CDR encapsulated octet sequence- Specified by:
encode
in interfaceCodecOperations
- Parameters:
data
- The data, in the form of an any, to be encoded into a byte array.- Returns:
- A byte array containing the encoded Any. This byte array
contains both the
TypeCode
and the data of the type. - Throws:
InvalidTypeForEncoding
- thrown if the type is not valid for the encoding format effective for thisCodec
.
-
decode
public Any decode(byte[] data) throws FormatMismatch
Decode the given octet sequence into an any based on a CDR encapsulated octet sequence.- Specified by:
decode
in interfaceCodecOperations
- Parameters:
data
- The data, in the form of a byte array, to be decoded into an Any.- Returns:
- An Any containing the data from the decoded byte array.
- Throws:
FormatMismatch
- is thrown if the byte array cannot be decoded into an Any.
-
encode_value
public byte[] encode_value(Any data) throws InvalidTypeForEncoding
Convert the given any into a CDR encapsulated octet sequence. Only the data is stored. The type code is not.- Specified by:
encode_value
in interfaceCodecOperations
- Parameters:
data
- The data, in the form of an Any, to be encoded into a byte array.- Returns:
- A byte array containing the data from the encoded any.
- Throws:
InvalidTypeForEncoding
- thrown if the type is not valid for the encoding format effective for thisCodec
.
-
decode_value
public Any decode_value(byte[] data, TypeCode tc) throws FormatMismatch, TypeMismatch
Decode the given octet sequence into an any based on a CDR encapsulated octet sequence. The type code is expected not to appear in the octet sequence, and the given type code is used instead.- Specified by:
decode_value
in interfaceCodecOperations
- Parameters:
data
- The data, in the form of a byte array, to be decoded into an Any.tc
- The TypeCode to be used to decode the data.- Returns:
- An Any containing the data from the decoded byte array.
- Throws:
FormatMismatch
- thrown if the byte array cannot be decoded into an Any.TypeMismatch
- thrown
-
encodeImpl
private byte[] encodeImpl(Any data, boolean sendTypeCode) throws InvalidTypeForEncoding
Convert the given any into a CDR encapsulated octet sequence. If sendTypeCode is true, the type code is sent with the message, as in a standard encapsulation. If it is false, only the data is sent. Either way, the endian type is sent as the first part of the message.- Throws:
InvalidTypeForEncoding
-
decodeImpl
private Any decodeImpl(byte[] data, TypeCode tc) throws FormatMismatch
Decode the given octet sequence into an any based on a CDR encapsulated octet sequence. If the type code is null, it is expected to appear in the octet sequence. Otherwise, the given type code is used.- Throws:
FormatMismatch
-
-