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

TAO_Marshal_Primitive Class Reference

TAO_Marshal_Primitive. More...

#include <Marshal.h>

Inheritance diagram for TAO_Marshal_Primitive:

Inheritance graph
[legend]
Collaboration diagram for TAO_Marshal_Primitive:

Collaboration graph
[legend]
List of all members.

Public Methods

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

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


Detailed Description

TAO_Marshal_Primitive.

marshaling primitives

Definition at line 105 of file Marshal.h.


Constructor & Destructor Documentation

ACE_INLINE TAO_Marshal_Primitive::TAO_Marshal_Primitive void   
 

Definition at line 9 of file Marshal.i.

00010 {
00011 }


Member Function Documentation

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

append operation.

Implements TAO_Marshal_Object.

Definition at line 39 of file append.cpp.

References ACE_DEBUG, ACE_ENV_ARG_DECL, ACE_TEXT, ACE_THROW_RETURN, LM_DEBUG, and TAO_DEFAULT_MINOR_CODE.

Referenced by TAO_Marshal_Object::perform_append.

00043 {
00044   CORBA::Boolean continue_append = 1;
00045   CORBA::TypeCode::traverse_status retval =
00046     CORBA::TypeCode::TRAVERSE_CONTINUE; // status of encode operation
00047 
00048   switch (tc->kind_)
00049     {
00050     case CORBA::tk_null:
00051     case CORBA::tk_void:
00052       break;
00053     case CORBA::tk_short:
00054     case CORBA::tk_ushort:
00055       continue_append = dest->append_short (*src);
00056       break;
00057     case CORBA::tk_long:
00058     case CORBA::tk_ulong:
00059     case CORBA::tk_float:
00060     case CORBA::tk_enum:
00061       continue_append = dest->append_long (*src);
00062       break;
00063     case CORBA::tk_double:
00064     case CORBA::tk_longlong:
00065     case CORBA::tk_ulonglong:
00066       continue_append = dest->append_double (*src);
00067       break;
00068     case CORBA::tk_boolean:
00069       continue_append = dest->append_boolean (*src);
00070       break;
00071     case CORBA::tk_char:
00072     case CORBA::tk_octet:
00073       continue_append = dest->append_octet (*src);
00074       break;
00075     case CORBA::tk_longdouble:
00076       continue_append = dest->append_longdouble (*src);
00077       break;
00078     case CORBA::tk_wchar:
00079       continue_append = dest->append_wchar (*src);
00080       break;
00081     default:
00082       retval = CORBA::TypeCode::TRAVERSE_STOP;
00083       // we are not a primitive type
00084     }
00085 
00086   if (retval == CORBA::TypeCode::TRAVERSE_CONTINUE
00087       && continue_append == 1)
00088     return CORBA::TypeCode::TRAVERSE_CONTINUE;
00089 
00090   if (TAO_debug_level > 0)
00091     ACE_DEBUG ((
00092         LM_DEBUG,
00093         ACE_TEXT ("TAO_Marshal_Primitive::append detected error\n")
00094       ));
00095 
00096   ACE_THROW_RETURN (CORBA::MARSHAL (TAO_DEFAULT_MINOR_CODE,
00097                                     CORBA::COMPLETED_MAYBE),
00098                     CORBA::TypeCode::TRAVERSE_STOP);
00099 }

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

skip operation.

Implements TAO_Marshal_Object.


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