#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.
1.7.0