#include <Marshal.h>
Inheritance diagram for TAO_Marshal_Struct:
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 |
marshal a struct
Definition at line 224 of file Marshal.h.
|
Definition at line 38 of file Marshal.inl.
00039 { 00040 } |
|
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 } |
|
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 } |