#include <Marshal.h>
Inheritance diagram for TAO_Marshal_String:
Public Member Functions | |
TAO_Marshal_String (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 string
Definition at line 268 of file Marshal.h.
ACE_INLINE TAO_Marshal_String::TAO_Marshal_String | ( | void | ) |
TAO::traverse_status TAO_Marshal_String::append | ( | CORBA::TypeCode_ptr | tc, | |
TAO_InputCDR * | src, | |||
TAO_OutputCDR * | dest | |||
) | [virtual] |
append operation
Implements TAO_Marshal_Object.
Definition at line 602 of file append.cpp.
References ACE_DEBUG, ACE_TEXT, ACE_OutputCDR::append_string(), CORBA::COMPLETED_MAYBE, LM_DEBUG, and TAO_debug_level.
Referenced by TAO_Marshal_Object::perform_append().
00605 { 00606 CORBA::Boolean continue_append = true; 00607 00608 // On decode, omit the check against specified string bounds, and 00609 // cope with illegal "zero length" strings (all lengths on the wire 00610 // must include a NUL). 00611 // 00612 // This is on the principle of being gracious in what we accept; we 00613 // don't generate messages that fail to comply with protocol specs, 00614 // but we will accept them when it's clear how to do so. 00615 00616 continue_append = dest->append_string (*src); 00617 if (continue_append == 1) 00618 return TAO::TRAVERSE_CONTINUE; 00619 00620 if (TAO_debug_level > 0) 00621 ACE_DEBUG ((LM_DEBUG, 00622 ACE_TEXT ("TAO_Marshal_TypeCode::append detected error\n"))); 00623 00624 throw ::CORBA::MARSHAL (0, CORBA::COMPLETED_MAYBE); 00625 }
TAO::traverse_status TAO_Marshal_String::skip | ( | CORBA::TypeCode_ptr | tc, | |
TAO_InputCDR * | context | |||
) | [virtual] |
skip operation
Implements TAO_Marshal_Object.
Definition at line 553 of file skip.cpp.
References ACE_DEBUG, ACE_TEXT, CORBA::COMPLETED_MAYBE, LM_DEBUG, ACE_InputCDR::skip_string(), and TAO_debug_level.
Referenced by TAO_Marshal_Object::perform_skip().
00554 { 00555 CORBA::Boolean continue_skipping = true; 00556 00557 // On decode, omit the check against specified string bounds, and 00558 // cope with illegal "zero length" strings (all lengths on the wire 00559 // must include a NUL). 00560 // 00561 // This is on the principle of being gracious in what we accept; we 00562 // don't generate messages that fail to comply with protocol specs, 00563 // but we will accept them when it's clear how to do so. 00564 00565 continue_skipping = stream->skip_string (); 00566 if (continue_skipping) 00567 return TAO::TRAVERSE_CONTINUE; 00568 else 00569 { 00570 if (TAO_debug_level > 0) 00571 ACE_DEBUG ((LM_DEBUG, 00572 ACE_TEXT ("TAO_Marshal_String::skip detected error\n"))); 00573 throw ::CORBA::MARSHAL (0, CORBA::COMPLETED_MAYBE); 00574 } 00575 }