TAO_Marshal_Primitive. More...
#include <Marshal.h>


Public Member Functions | |
| TAO_Marshal_Primitive (void) | |
| virtual TAO::traverse_status | skip (CORBA::TypeCode_ptr tc, TAO_InputCDR *context) |
| skip operation | |
| virtual TAO::traverse_status | append (CORBA::TypeCode_ptr tc, TAO_InputCDR *src, TAO_OutputCDR *dest) |
| append operation | |
marshaling primitives
Definition at line 114 of file Marshal.h.
| TAO_Marshal_Primitive::TAO_Marshal_Primitive | ( | void | ) |
Definition at line 13 of file Marshal.inl.
{
}
| TAO::traverse_status TAO_Marshal_Primitive::append | ( | CORBA::TypeCode_ptr | tc, | |
| TAO_InputCDR * | src, | |||
| TAO_OutputCDR * | dest | |||
| ) | [virtual] |
append operation
Implements TAO_Marshal_Object.
Definition at line 45 of file append.cpp.
{
CORBA::Boolean continue_append = true;
TAO::traverse_status retval =
TAO::TRAVERSE_CONTINUE; // status of encode operation
CORBA::TCKind const k = tc->kind ();
switch (k)
{
case CORBA::tk_null:
case CORBA::tk_void:
break;
case CORBA::tk_short:
case CORBA::tk_ushort:
continue_append = dest->append_short (*src);
break;
case CORBA::tk_long:
case CORBA::tk_ulong:
case CORBA::tk_float:
case CORBA::tk_enum:
continue_append = dest->append_long (*src);
break;
case CORBA::tk_double:
case CORBA::tk_longlong:
case CORBA::tk_ulonglong:
continue_append = dest->append_double (*src);
break;
case CORBA::tk_boolean:
continue_append = dest->append_boolean (*src);
break;
case CORBA::tk_char:
case CORBA::tk_octet:
continue_append = dest->append_octet (*src);
break;
case CORBA::tk_longdouble:
continue_append = dest->append_longdouble (*src);
break;
case CORBA::tk_wchar:
continue_append = dest->append_wchar (*src);
break;
default:
retval = TAO::TRAVERSE_STOP;
// we are not a primitive type
}
if (retval == TAO::TRAVERSE_CONTINUE
&& continue_append == 1)
return TAO::TRAVERSE_CONTINUE;
if (TAO_debug_level > 0)
ACE_DEBUG ((
LM_DEBUG,
ACE_TEXT ("TAO_Marshal_Primitive::append detected error\n")
));
throw ::CORBA::MARSHAL (0, CORBA::COMPLETED_MAYBE);
}
| TAO::traverse_status TAO_Marshal_Primitive::skip | ( | CORBA::TypeCode_ptr | tc, | |
| TAO_InputCDR * | context | |||
| ) | [virtual] |
skip operation
Implements TAO_Marshal_Object.
Definition at line 39 of file skip.cpp.
{
CORBA::Boolean continue_skipping = true;
// Status of skip operation.
TAO::traverse_status retval = TAO::TRAVERSE_CONTINUE;
CORBA::TCKind const k = tc->kind ();
switch (k)
{
case CORBA::tk_null:
case CORBA::tk_void:
break;
case CORBA::tk_short:
case CORBA::tk_ushort:
continue_skipping = stream->skip_short ();
break;
case CORBA::tk_long:
case CORBA::tk_ulong:
case CORBA::tk_float:
case CORBA::tk_enum:
continue_skipping = stream->skip_long ();
break;
case CORBA::tk_double:
case CORBA::tk_longlong:
case CORBA::tk_ulonglong:
continue_skipping = stream->skip_longlong ();
break;
case CORBA::tk_boolean:
continue_skipping = stream->skip_boolean ();
break;
case CORBA::tk_char:
case CORBA::tk_octet:
continue_skipping = stream->skip_char ();
break;
case CORBA::tk_longdouble:
continue_skipping = stream->skip_longdouble ();
break;
case CORBA::tk_wchar:
continue_skipping = stream->skip_wchar ();
break;
default:
retval = TAO::TRAVERSE_STOP;
// we are not a primitive type
}
if (retval == TAO::TRAVERSE_CONTINUE && continue_skipping)
return TAO::TRAVERSE_CONTINUE;
else
{
if (TAO_debug_level > 0)
ACE_DEBUG ((
LM_DEBUG,
ACE_TEXT ("TAO_Marshal_Primitive::skip detected error\n")
));
throw ::CORBA::MARSHAL (0, CORBA::COMPLETED_MAYBE);
}
}
1.7.0