#include <Marshal.h>
Inheritance diagram for TAO_Marshal_Except:
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 |
marshal an exception
Definition at line 356 of file Marshal.h.
|
Definition at line 68 of file Marshal.inl.
00069 { 00070 } |
|
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 } |
|
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 } |