Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

TAO_Marshal_Object Class Reference

TAO_Marshal_Object. More...

#include <Marshal.h>

Inheritance diagram for TAO_Marshal_Object:

Inheritance graph
[legend]
List of all members.

Public Methods

 TAO_Marshal_Object (void)
 constructor. More...

virtual ~TAO_Marshal_Object (void)
 destructor. More...

virtual CORBA::TypeCode::traverse_status skip (CORBA::TypeCode_ptr tc, TAO_InputCDR *context ACE_ENV_ARG_DECL)=0
 skip operation. More...

virtual CORBA::TypeCode::traverse_status append (CORBA::TypeCode_ptr tc, TAO_InputCDR *src, TAO_OutputCDR *dest ACE_ENV_ARG_DECL)=0
 append operation. More...


Static Public Methods

CORBA::TypeCode::traverse_status perform_skip (CORBA::TypeCode_ptr tc, TAO_InputCDR *context ACE_ENV_ARG_DECL)
 skip entry point, it allocates the right kind of Marshal_Object and invokes skip on it. More...

CORBA::TypeCode::traverse_status perform_append (CORBA::TypeCode_ptr tc, TAO_InputCDR *src, TAO_OutputCDR *dest ACE_ENV_ARG_DECL)
 append entry point, it allocates the right kind of Marshal_Object and invokes skip on it. More...


Detailed Description

TAO_Marshal_Object.

The Marshaling object that provides a common interface to the CDR object for marshaling different IDL data types Provides a set of virtual methods for appending and skipping data over a CDR stream.

Definition at line 62 of file Marshal.h.


Constructor & Destructor Documentation

ACE_INLINE TAO_Marshal_Object::TAO_Marshal_Object void   
 

constructor.

Definition at line 4 of file Marshal.i.

00005 {
00006 }

TAO_Marshal_Object::~TAO_Marshal_Object void    [virtual]
 

destructor.

Definition at line 35 of file Marshal.cpp.

00036 {
00037 }


Member Function Documentation

virtual CORBA::TypeCode::traverse_status TAO_Marshal_Object::append CORBA::TypeCode_ptr    tc,
TAO_InputCDR   src,
TAO_OutputCDR *dest    ACE_ENV_ARG_DECL
[pure virtual]
 

append operation.

Implemented in TAO_Marshal_Primitive.

CORBA::TypeCode::traverse_status TAO_Marshal_Object::perform_append CORBA::TypeCode_ptr    tc,
TAO_InputCDR   src,
TAO_OutputCDR *dest    ACE_ENV_ARG_DECL
[static]
 

append entry point, it allocates the right kind of Marshal_Object and invokes skip on it.

Definition at line 149 of file Marshal.cpp.

References ACE_CHECK_RETURN, ACE_ENV_ARG_DECL, ACE_ENV_ARG_PARAMETER, ACE_ENV_SINGLE_ARG_PARAMETER, TAO_Marshal_Value::append, TAO_Marshal_WString::append, TAO_Marshal_Except::append, TAO_Marshal_Alias::append, TAO_Marshal_Array::append, TAO_Marshal_Sequence::append, TAO_Marshal_String::append, TAO_Marshal_Union::append, TAO_Marshal_Struct::append, TAO_Marshal_ObjRef::append, TAO_Marshal_Principal::append, TAO_Marshal_TypeCode::append, TAO_Marshal_Any::append, and TAO_Marshal_Primitive::append.

Referenced by CORBA_NVList::_tao_encode, CORBA_Any::_tao_encode, TAO_Marshal_Value::append, TAO_Marshal_Except::append, TAO_Marshal_Alias::append, TAO_Marshal_Array::append, TAO_Marshal_Sequence::append, TAO_Marshal_Union::append, TAO_Marshal_Struct::append, TAO_Marshal_Principal::append, TAO_Marshal_TypeCode::append, TAO_Marshal_Any::append, TAO_CDR_Encaps_Codec::encode_value, operator<<, and CORBA_TypeCode::private_member_label.

00153 {
00154   CORBA::ULong kind = tc->kind (ACE_ENV_SINGLE_ARG_PARAMETER);
00155   ACE_CHECK_RETURN (CORBA::TypeCode::TRAVERSE_STOP);
00156 
00157   switch (kind)
00158     {
00159     default:
00160     case CORBA::tk_fixed:
00161     case CORBA::tk_value_box:
00162     case CORBA::tk_native:
00163     case CORBA::tk_abstract_interface:
00164     case CORBA::tk_component:
00165     case CORBA::tk_home:
00166       // @@ We don't know how to handle any of them yet.
00167       return CORBA::TypeCode::TRAVERSE_STOP;
00168 
00169     case CORBA::tk_null:
00170     case CORBA::tk_void:
00171     case CORBA::tk_short:
00172     case CORBA::tk_long:
00173     case CORBA::tk_ushort:
00174     case CORBA::tk_ulong:
00175     case CORBA::tk_float:
00176     case CORBA::tk_double:
00177     case CORBA::tk_boolean:
00178     case CORBA::tk_char:
00179     case CORBA::tk_octet:
00180     case CORBA::tk_longlong:
00181     case CORBA::tk_ulonglong:
00182     case CORBA::tk_longdouble:
00183     case CORBA::tk_wchar:
00184     case CORBA::tk_enum:
00185       {
00186         TAO_Marshal_Primitive marshal;
00187         return marshal.append (tc, src, dest ACE_ENV_ARG_PARAMETER);
00188       }
00189 
00190     case CORBA::tk_any:
00191       {
00192         TAO_Marshal_Any marshal;
00193         return marshal.append (tc, src, dest ACE_ENV_ARG_PARAMETER);
00194       }
00195     case CORBA::tk_TypeCode:
00196       {
00197         TAO_Marshal_TypeCode marshal;
00198         return marshal.append (tc, src, dest ACE_ENV_ARG_PARAMETER);
00199       }
00200     case CORBA::tk_Principal:
00201       {
00202         TAO_Marshal_Principal marshal;
00203         return marshal.append (tc, src, dest ACE_ENV_ARG_PARAMETER);
00204       }
00205     case CORBA::tk_objref:
00206       {
00207         TAO_Marshal_ObjRef marshal;
00208         return marshal.append (tc, src, dest ACE_ENV_ARG_PARAMETER);
00209       }
00210     case CORBA::tk_struct:
00211       {
00212         TAO_Marshal_Struct marshal;
00213         return marshal.append (tc, src, dest ACE_ENV_ARG_PARAMETER);
00214       }
00215     case CORBA::tk_union:
00216       {
00217         TAO_Marshal_Union marshal;
00218         return marshal.append (tc, src, dest ACE_ENV_ARG_PARAMETER);
00219       }
00220     case CORBA::tk_string:
00221       {
00222         TAO_Marshal_String marshal;
00223         return marshal.append (tc, src, dest ACE_ENV_ARG_PARAMETER);
00224       }
00225     case CORBA::tk_sequence:
00226       {
00227         TAO_Marshal_Sequence marshal;
00228         return marshal.append (tc, src, dest ACE_ENV_ARG_PARAMETER);
00229       }
00230     case CORBA::tk_array:
00231       {
00232         TAO_Marshal_Array marshal;
00233         return marshal.append (tc, src, dest ACE_ENV_ARG_PARAMETER);
00234       }
00235     case CORBA::tk_alias:
00236       {
00237         TAO_Marshal_Alias marshal;
00238         return marshal.append (tc, src, dest ACE_ENV_ARG_PARAMETER);
00239       }
00240     case CORBA::tk_except:
00241       {
00242         TAO_Marshal_Except marshal;
00243         return marshal.append (tc, src, dest ACE_ENV_ARG_PARAMETER);
00244       }
00245     case CORBA::tk_wstring:
00246       {
00247         TAO_Marshal_WString marshal;
00248         return marshal.append (tc, src, dest ACE_ENV_ARG_PARAMETER);
00249       }
00250     case CORBA::tk_value:
00251       {
00252         TAO_Marshal_Value marshal;
00253         return marshal.append (tc, src, dest ACE_ENV_ARG_PARAMETER);
00254       }
00255     }
00256 }

CORBA::TypeCode::traverse_status TAO_Marshal_Object::perform_skip CORBA::TypeCode_ptr    tc,
TAO_InputCDR *context    ACE_ENV_ARG_DECL
[static]
 

skip entry point, it allocates the right kind of Marshal_Object and invokes skip on it.

Referenced by CORBA_Any::_tao_decode, TAO_CDR_Encaps_Codec::decode_value, operator>>, CORBA_TypeCode::private_member_label, CORBA_TypeCode::private_member_name, and CORBA_TypeCode::private_member_type.

virtual CORBA::TypeCode::traverse_status TAO_Marshal_Object::skip CORBA::TypeCode_ptr    tc,
TAO_InputCDR *context    ACE_ENV_ARG_DECL
[pure virtual]
 

skip operation.

Implemented in TAO_Marshal_Primitive.


The documentation for this class was generated from the following files:
Generated on Mon Jun 16 15:28:16 2003 for TAO by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002