TAO_Marshal_Except Class Reference

TAO_Marshal_Except. More...

#include <Marshal.h>

Inheritance diagram for TAO_Marshal_Except:

Inheritance graph
[legend]
Collaboration diagram for TAO_Marshal_Except:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 TAO_Marshal_Except (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_Except.

marshal an exception

Definition at line 356 of file Marshal.h.


Constructor & Destructor Documentation

ACE_INLINE TAO_Marshal_Except::TAO_Marshal_Except void   ) 
 

Definition at line 68 of file Marshal.inl.

00069 {
00070 }


Member Function Documentation

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

append operation

Implements TAO_Marshal_Object.

Definition at line 1059 of file append.cpp.

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

01063 {
01064   TAO::traverse_status retval =
01065     TAO::TRAVERSE_CONTINUE;
01066   CORBA::Boolean continue_append = true;
01067   CORBA::TypeCode_var param;
01068 
01069   // first append the RepositoryID
01070   continue_append = dest->append_string (*src);
01071 
01072   // Number of fields in the struct.
01073   const CORBA::ULong member_count =
01074     tc->member_count ();
01075 
01076   for (CORBA::ULong i = 0;
01077        i < member_count
01078          && retval == TAO::TRAVERSE_CONTINUE
01079          && continue_append == 1;
01080        ++i)
01081     {
01082       param = tc->member_type (i);
01083 
01084       retval = TAO_Marshal_Object::perform_append (param.in (),
01085                                                    src,
01086                                                    dest);
01087     }
01088 
01089   if (retval == TAO::TRAVERSE_CONTINUE
01090       && continue_append == 1)
01091     return TAO::TRAVERSE_CONTINUE;
01092 
01093   if (TAO_debug_level > 0)
01094     ACE_DEBUG ((LM_DEBUG,
01095                 ACE_TEXT ("TAO_Marshal_Except::append detected error\n")));
01096 
01097   throw ::CORBA::MARSHAL (0, CORBA::COMPLETED_MAYBE);
01098 }

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

skip operation

Implements TAO_Marshal_Object.

Definition at line 794 of file skip.cpp.

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

00795 {
00796   TAO::traverse_status retval =
00797     TAO::TRAVERSE_CONTINUE;
00798   CORBA::TypeCode_var param;
00799 
00800   // skip the Repository ID
00801   if (!stream->skip_string ())
00802     return TAO::TRAVERSE_STOP;
00803 
00804   // Number of fields in the exception
00805   const CORBA::ULong member_count =
00806     tc->member_count ();
00807 
00808   for (CORBA::ULong i = 0;
00809        i < member_count && retval == TAO::TRAVERSE_CONTINUE;
00810        ++i)
00811     {
00812       param = tc->member_type (i);
00813 
00814       retval = TAO_Marshal_Object::perform_skip (param.in (), stream);
00815     }
00816 
00817   if (retval == TAO::TRAVERSE_CONTINUE)
00818     return TAO::TRAVERSE_CONTINUE;
00819 
00820   if (TAO_debug_level > 0)
00821     ACE_DEBUG ((LM_DEBUG,
00822                 ACE_TEXT ("TAO_Marshal_Except::skip detected error\n")));
00823 
00824   throw ::CORBA::MARSHAL (0, CORBA::COMPLETED_MAYBE);
00825 }


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