TAO_Marshal_Struct Class Reference

TAO_Marshal_Struct. More...

#include <Marshal.h>

Inheritance diagram for TAO_Marshal_Struct:

Inheritance graph
[legend]
Collaboration diagram for TAO_Marshal_Struct:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 TAO_Marshal_Struct (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


Detailed Description

TAO_Marshal_Struct.

marshal a struct

Definition at line 224 of file Marshal.h.


Constructor & Destructor Documentation

ACE_INLINE TAO_Marshal_Struct::TAO_Marshal_Struct void   ) 
 

Definition at line 38 of file Marshal.inl.

00039 {
00040 }


Member Function Documentation

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

append operation

Implements TAO_Marshal_Object.

Definition at line 324 of file append.cpp.

References ACE_DEBUG, ACE_TEXT, LM_DEBUG, TAO_Marshal_Object::perform_append(), and TAO_debug_level.

00327 {
00328   TAO::traverse_status retval =
00329     TAO::TRAVERSE_CONTINUE;
00330   CORBA::TypeCode_var param;
00331 
00332   // Number of fields in the struct.
00333   const CORBA::ULong member_count =
00334     tc->member_count ();
00335 
00336   for (CORBA::ULong i = 0;
00337        i < member_count && retval == TAO::TRAVERSE_CONTINUE;
00338        ++i)
00339     {
00340       // get member type
00341       param = tc->member_type (i);
00342 
00343       retval = TAO_Marshal_Object::perform_append (param.in (), src, dest);
00344     }
00345 
00346   if (retval == TAO::TRAVERSE_CONTINUE)
00347     return TAO::TRAVERSE_CONTINUE;
00348 
00349   if (TAO_debug_level > 0)
00350     ACE_DEBUG ((LM_DEBUG,
00351                 ACE_TEXT ("TAO_Marshal_Struct::append detected error\n")));
00352 
00353   throw ::CORBA::MARSHAL (0, CORBA::COMPLETED_MAYBE);
00354 }

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

skip operation

Implements TAO_Marshal_Object.

Definition at line 292 of file skip.cpp.

References ACE_DEBUG, ACE_TEXT, LM_DEBUG, TAO_Marshal_Object::perform_skip(), and TAO_debug_level.

00293 {
00294   TAO::traverse_status retval = TAO::TRAVERSE_CONTINUE;
00295   CORBA::TypeCode_var param;
00296 
00297   // Number of fields in the struct.
00298   CORBA::ULong const member_count =
00299     tc->member_count ();
00300 
00301   for (CORBA::ULong i = 0;
00302        i < member_count && retval == TAO::TRAVERSE_CONTINUE;
00303        ++i)
00304     {
00305       param = tc->member_type (i);
00306 
00307       retval = TAO_Marshal_Object::perform_skip (param.in (), stream);
00308     }
00309 
00310   if (retval == TAO::TRAVERSE_CONTINUE)
00311     return TAO::TRAVERSE_CONTINUE;
00312 
00313   if (TAO_debug_level > 0)
00314     ACE_DEBUG ((LM_DEBUG,
00315                 ACE_TEXT ("TAO_Marshal_Struct::skip detected error\n")));
00316 
00317   throw ::CORBA::MARSHAL (0, CORBA::COMPLETED_MAYBE);
00318 }


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