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 Member Functions

 TAO_Marshal_Object (void)
 constructor

virtual ~TAO_Marshal_Object (void)
 destructor

virtual TAO::traverse_status skip (CORBA::TypeCode_ptr tc, TAO_InputCDR *context)=0
 skip operation

virtual TAO::traverse_status append (CORBA::TypeCode_ptr tc, TAO_InputCDR *src, TAO_OutputCDR *dest)=0
 append operation


Static Public Member Functions

TAO::traverse_status perform_skip (CORBA::TypeCode_ptr tc, TAO_InputCDR *context)
TAO::traverse_status perform_append (CORBA::TypeCode_ptr tc, TAO_InputCDR *src, TAO_OutputCDR *dest)

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 77 of file Marshal.h.


Constructor & Destructor Documentation

TAO_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE TAO_Marshal_Object::TAO_Marshal_Object void   ) 
 

constructor

Definition at line 8 of file Marshal.inl.

00009 {
00010 }

TAO_BEGIN_VERSIONED_NAMESPACE_DECL TAO_Marshal_Object::~TAO_Marshal_Object void   )  [virtual]
 

destructor

Definition at line 30 of file Marshal.cpp.

00031 {
00032 }


Member Function Documentation

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

append operation

Implemented in TAO_Marshal_Primitive, TAO_Marshal_Any, TAO_Marshal_TypeCode, TAO_Marshal_Principal, TAO_Marshal_ObjRef, TAO_Marshal_Struct, TAO_Marshal_Union, TAO_Marshal_String, TAO_Marshal_Sequence, TAO_Marshal_Array, TAO_Marshal_Alias, TAO_Marshal_Except, TAO_Marshal_WString, and TAO_Marshal_Value.

TAO::traverse_status TAO_Marshal_Object::perform_append CORBA::TypeCode_ptr  tc,
TAO_InputCDR src,
TAO_OutputCDR dest
[static]
 

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

Definition at line 142 of file Marshal.cpp.

Referenced by CORBA::NVList::_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(), and TAO::Unknown_IDL_Type::marshal_value().

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

TAO::traverse_status TAO_Marshal_Object::perform_skip CORBA::TypeCode_ptr  tc,
TAO_InputCDR context
[static]
 

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

Definition at line 35 of file Marshal.cpp.

Referenced by TAO::Unknown_IDL_Type::_tao_decode(), TAO_Marshal_Value::skip(), TAO_Marshal_Except::skip(), TAO_Marshal_Alias::skip(), TAO_Marshal_Array::skip(), TAO_Marshal_Sequence::skip(), TAO_Marshal_Union::skip(), TAO_Marshal_Struct::skip(), and TAO_Marshal_Any::skip().

00036 {
00037   CORBA::ULong const kind = tc->kind ();
00038 
00039   switch (kind)
00040     {
00041     default:
00042     case CORBA::tk_fixed:
00043     case CORBA::tk_native:
00044     case CORBA::tk_abstract_interface:
00045     case CORBA::tk_component:
00046     case CORBA::tk_home:
00047       // @@ We don't know how to handle any of them yet.
00048       return TAO::TRAVERSE_STOP;
00049 
00050     case CORBA::tk_null:
00051     case CORBA::tk_void:
00052     case CORBA::tk_short:
00053     case CORBA::tk_long:
00054     case CORBA::tk_ushort:
00055     case CORBA::tk_ulong:
00056     case CORBA::tk_float:
00057     case CORBA::tk_double:
00058     case CORBA::tk_boolean:
00059     case CORBA::tk_char:
00060     case CORBA::tk_octet:
00061     case CORBA::tk_longlong:
00062     case CORBA::tk_ulonglong:
00063     case CORBA::tk_longdouble:
00064     case CORBA::tk_wchar:
00065     case CORBA::tk_enum:
00066       {
00067         TAO_Marshal_Primitive marshal;
00068         return marshal.skip (tc, stream);
00069       }
00070 
00071     case CORBA::tk_any:
00072       {
00073         TAO_Marshal_Any marshal;
00074         return marshal.skip (tc, stream);
00075       }
00076     case CORBA::tk_TypeCode:
00077       {
00078         TAO_Marshal_TypeCode marshal;
00079         return marshal.skip (tc, stream);
00080       }
00081     case CORBA::tk_Principal:
00082       {
00083         TAO_Marshal_Principal marshal;
00084         return marshal.skip (tc, stream);
00085       }
00086     case CORBA::tk_objref:
00087       {
00088         TAO_Marshal_ObjRef marshal;
00089         return marshal.skip (tc, stream);
00090       }
00091     case CORBA::tk_struct:
00092       {
00093         TAO_Marshal_Struct marshal;
00094         return marshal.skip (tc, stream);
00095       }
00096     case CORBA::tk_union:
00097       {
00098         TAO_Marshal_Union marshal;
00099         return marshal.skip (tc, stream);
00100       }
00101     case CORBA::tk_string:
00102       {
00103         TAO_Marshal_String marshal;
00104         return marshal.skip (tc, stream);
00105       }
00106     case CORBA::tk_sequence:
00107       {
00108         TAO_Marshal_Sequence marshal;
00109         return marshal.skip (tc, stream);
00110       }
00111     case CORBA::tk_array:
00112       {
00113         TAO_Marshal_Array marshal;
00114         return marshal.skip (tc, stream);
00115       }
00116     case CORBA::tk_alias:
00117       {
00118         TAO_Marshal_Alias marshal;
00119         return marshal.skip (tc, stream);
00120       }
00121     case CORBA::tk_except:
00122       {
00123         TAO_Marshal_Except marshal;
00124         return marshal.skip (tc, stream);
00125       }
00126     case CORBA::tk_wstring:
00127       {
00128         TAO_Marshal_WString marshal;
00129         return marshal.skip (tc, stream);
00130       }
00131     case CORBA::tk_value_box:
00132     case CORBA::tk_value:
00133     case CORBA::tk_event:
00134       {
00135         TAO_Marshal_Value marshal;
00136         return marshal.skip (tc, stream);
00137       }
00138     }
00139 }

virtual TAO::traverse_status TAO_Marshal_Object::skip CORBA::TypeCode_ptr  tc,
TAO_InputCDR context
[pure virtual]
 

skip operation

Implemented in TAO_Marshal_Primitive, TAO_Marshal_Any, TAO_Marshal_TypeCode, TAO_Marshal_Principal, TAO_Marshal_ObjRef, TAO_Marshal_Struct, TAO_Marshal_Union, TAO_Marshal_String, TAO_Marshal_Sequence, TAO_Marshal_Array, TAO_Marshal_Alias, TAO_Marshal_Except, TAO_Marshal_WString, and TAO_Marshal_Value.


The documentation for this class was generated from the following files:
Generated on Sun Jan 27 13:21:56 2008 for TAO_AnyTypeCode by doxygen 1.3.6