#include <Marshal.h>
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 | |
static TAO::traverse_status | perform_skip (CORBA::TypeCode_ptr tc, TAO_InputCDR *context) |
static TAO::traverse_status | perform_append (CORBA::TypeCode_ptr tc, TAO_InputCDR *src, TAO_OutputCDR *dest) |
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.
TAO_Marshal_Object::TAO_Marshal_Object | ( | void | ) |
TAO_Marshal_Object::~TAO_Marshal_Object | ( | void | ) | [virtual] |
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.
{ CORBA::ULong kind = tc->kind (); switch (kind) { default: case CORBA::tk_fixed: case CORBA::tk_native: case CORBA::tk_abstract_interface: case CORBA::tk_component: case CORBA::tk_home: // @@ We don't know how to handle any of them yet. return TAO::TRAVERSE_STOP; case CORBA::tk_null: case CORBA::tk_void: case CORBA::tk_short: case CORBA::tk_long: case CORBA::tk_ushort: case CORBA::tk_ulong: case CORBA::tk_float: case CORBA::tk_double: case CORBA::tk_boolean: case CORBA::tk_char: case CORBA::tk_octet: case CORBA::tk_longlong: case CORBA::tk_ulonglong: case CORBA::tk_longdouble: case CORBA::tk_wchar: case CORBA::tk_enum: { TAO_Marshal_Primitive marshal; return marshal.append (tc, src, dest); } case CORBA::tk_any: { TAO_Marshal_Any marshal; return marshal.append (tc, src, dest); } case CORBA::tk_TypeCode: { TAO_Marshal_TypeCode marshal; return marshal.append (tc, src, dest); } case CORBA::tk_Principal: { TAO_Marshal_Principal marshal; return marshal.append (tc, src, dest); } case CORBA::tk_objref: { TAO_Marshal_ObjRef marshal; return marshal.append (tc, src, dest); } case CORBA::tk_struct: { TAO_Marshal_Struct marshal; return marshal.append (tc, src, dest); } case CORBA::tk_union: { TAO_Marshal_Union marshal; return marshal.append (tc, src, dest); } case CORBA::tk_string: { TAO_Marshal_String marshal; return marshal.append (tc, src, dest); } case CORBA::tk_sequence: { TAO_Marshal_Sequence marshal; return marshal.append (tc, src, dest); } case CORBA::tk_array: { TAO_Marshal_Array marshal; return marshal.append (tc, src, dest); } case CORBA::tk_alias: { TAO_Marshal_Alias marshal; return marshal.append (tc, src, dest); } case CORBA::tk_except: { TAO_Marshal_Except marshal; return marshal.append (tc, src, dest); } case CORBA::tk_wstring: { TAO_Marshal_WString marshal; return marshal.append (tc, src, dest); } case CORBA::tk_value_box: case CORBA::tk_value: case CORBA::tk_event: { TAO_Marshal_Value marshal; return marshal.append (tc, src, dest); } } }
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.
{ CORBA::ULong const kind = tc->kind (); switch (kind) { default: case CORBA::tk_fixed: case CORBA::tk_native: case CORBA::tk_abstract_interface: case CORBA::tk_component: case CORBA::tk_home: // @@ We don't know how to handle any of them yet. return TAO::TRAVERSE_STOP; case CORBA::tk_null: case CORBA::tk_void: case CORBA::tk_short: case CORBA::tk_long: case CORBA::tk_ushort: case CORBA::tk_ulong: case CORBA::tk_float: case CORBA::tk_double: case CORBA::tk_boolean: case CORBA::tk_char: case CORBA::tk_octet: case CORBA::tk_longlong: case CORBA::tk_ulonglong: case CORBA::tk_longdouble: case CORBA::tk_wchar: case CORBA::tk_enum: { TAO_Marshal_Primitive marshal; return marshal.skip (tc, stream); } case CORBA::tk_any: { TAO_Marshal_Any marshal; return marshal.skip (tc, stream); } case CORBA::tk_TypeCode: { TAO_Marshal_TypeCode marshal; return marshal.skip (tc, stream); } case CORBA::tk_Principal: { TAO_Marshal_Principal marshal; return marshal.skip (tc, stream); } case CORBA::tk_objref: { TAO_Marshal_ObjRef marshal; return marshal.skip (tc, stream); } case CORBA::tk_struct: { TAO_Marshal_Struct marshal; return marshal.skip (tc, stream); } case CORBA::tk_union: { TAO_Marshal_Union marshal; return marshal.skip (tc, stream); } case CORBA::tk_string: { TAO_Marshal_String marshal; return marshal.skip (tc, stream); } case CORBA::tk_sequence: { TAO_Marshal_Sequence marshal; return marshal.skip (tc, stream); } case CORBA::tk_array: { TAO_Marshal_Array marshal; return marshal.skip (tc, stream); } case CORBA::tk_alias: { TAO_Marshal_Alias marshal; return marshal.skip (tc, stream); } case CORBA::tk_except: { TAO_Marshal_Except marshal; return marshal.skip (tc, stream); } case CORBA::tk_wstring: { TAO_Marshal_WString marshal; return marshal.skip (tc, stream); } case CORBA::tk_value_box: case CORBA::tk_value: case CORBA::tk_event: { TAO_Marshal_Value marshal; return marshal.skip (tc, stream); } } }
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.