gnu.CORBA

Class CdrEncapsCodecImpl

Implemented Interfaces:
Codec, CodecOperations, IDLEntity, Object, Serializable

public class CdrEncapsCodecImpl
extends LocalObject
implements Codec

The local Codec implementation for ENCODING_CDR_ENCAPS encoding. This is a local implementation; the remote side should have its own Codec of this kind.

Field Summary

protected ORB
orb
The associated ORB.

Constructor Summary

CdrEncapsCodecImpl(ORB _orb, Version _version)
Create an instance of this Codec, encoding following the given version.

Method Summary

String[]
_ids()
Return the array of repository ids for this object.
Any
decode(byte[] them)
Decode the contents of the byte array into Any.
Any
decode_value(byte[] them, TypeCode type)
Decode the value, stored in the byte array, into Any, assuming, that the byte array holds the data structure, defined by the given typecode.
byte[]
encode(Any that)
byte[]
encode_value(Any that)
boolean
hasLengthIndicator()
Check if the Codec writes the length indicator.
void
setUseLengthIndicator(boolean use_lengthIndicator)
Sets if the Codec must write the record length in the beginning of the array.

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, _set_policy_override, validate_connection

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

orb

protected final ORB orb
The associated ORB.

Constructor Details

CdrEncapsCodecImpl

public CdrEncapsCodecImpl(ORB _orb,
                          Version _version)
Create an instance of this Codec, encoding following the given version.

Method Details

_ids

public String[] _ids()
Return the array of repository ids for this object.
Returns:
{ "IDL:gnu/CORBA/cdrEnapsCodec:1.0" }, always.

decode

public Any decode(byte[] them)
            throws FormatMismatch
Decode the contents of the byte array into Any. The byte array may have the optional four byte length indicator in the beginning. If these four bytes are zero, it is assumed, that no length indicator is present.
Specified by:
decode in interface CodecOperations

decode_value

public Any decode_value(byte[] them,
                        TypeCode type)
            throws FormatMismatch,
                   TypeMismatch
Decode the value, stored in the byte array, into Any, assuming, that the byte array holds the data structure, defined by the given typecode. The byte array may have the optional four byte length indicator in the beginning. If these four bytes are zero, it is assumed, that no length indicator is present.
Specified by:
decode_value in interface CodecOperations

encode

public byte[] encode(Any that)
            throws InvalidTypeForEncoding
Specified by:
encode in interface CodecOperations

encode_value

public byte[] encode_value(Any that)
            throws InvalidTypeForEncoding
Specified by:
encode_value in interface CodecOperations

hasLengthIndicator

public boolean hasLengthIndicator()
Check if the Codec writes the length indicator.

setUseLengthIndicator

public void setUseLengthIndicator(boolean use_lengthIndicator)
Sets if the Codec must write the record length in the beginning of the array. Encodings both with and without that indicator are understood both by Suns and this codec, but the OMG specification seems requiring it. The default behavior is to use the length indicator.
Parameters:
use_lengthIndicator -

CdrEncapsCodecImpl.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.