TAO_Marshal_WString Class Reference

TAO_Marshal_WString. More...

#include <Marshal.h>

Inheritance diagram for TAO_Marshal_WString:

Inheritance graph
[legend]
Collaboration diagram for TAO_Marshal_WString:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 TAO_Marshal_WString (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_WString.

marshal a wide string

Definition at line 408 of file Marshal.h.


Constructor & Destructor Documentation

ACE_INLINE TAO_Marshal_WString::TAO_Marshal_WString void   ) 
 

Definition at line 73 of file Marshal.inl.

00074 {
00075 }


Member Function Documentation

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

append operation

Implements TAO_Marshal_Object.

Definition at line 1187 of file append.cpp.

References ACE_DEBUG, ACE_TEXT, ACE_THROW_RETURN, LM_DEBUG, and TAO_debug_level.

01191 {
01192   CORBA::Boolean continue_append = 1;
01193 
01194   // On decode, omit the check against specified wstring bounds, and
01195   // cope with illegal "zero length" strings (all lengths on the wire
01196   // must include a NUL).
01197   //
01198   // This is on the principle of being gracious in what we accept; we
01199   // don't generate messages that fail to comply with protocol specs,
01200   // but we will accept them when it's clear how to do so.
01201 
01202   continue_append = dest->append_wstring (*src);
01203 
01204   if (continue_append == 1)
01205     return TAO::TRAVERSE_CONTINUE;
01206 
01207   if (TAO_debug_level > 0)
01208     ACE_DEBUG ((LM_DEBUG,
01209                 ACE_TEXT ("TAO_Marshal_WString::append detected error\n")));
01210 
01211   ACE_THROW_RETURN (CORBA::MARSHAL (0,
01212                                     CORBA::COMPLETED_MAYBE),
01213                     TAO::TRAVERSE_STOP);
01214 }

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

skip operation

Implements TAO_Marshal_Object.

Definition at line 914 of file skip.cpp.

References ACE_DEBUG, ACE_TEXT, ACE_THROW_RETURN, LM_DEBUG, and TAO_debug_level.

00917 {
00918   CORBA::Boolean continue_skipping = true;
00919 
00920   // On decode, omit the check against specified wstring bounds, and
00921   // cope with illegal "zero length" strings (all lengths on the wire
00922   // must include a NUL).
00923   //
00924   // This is on the principle of being gracious in what we accept; we
00925   // don't generate messages that fail to comply with protocol specs,
00926   // but we will accept them when it's clear how to do so.
00927 
00928   // "zero length" wstrings are legal in GIOP 1.2.
00929 
00930   continue_skipping = stream->skip_wstring ();
00931 
00932   if (continue_skipping)
00933     return TAO::TRAVERSE_CONTINUE;
00934 
00935   if (TAO_debug_level > 0)
00936     ACE_DEBUG ((LM_DEBUG,
00937                 ACE_TEXT ("TAO_Marshal_WString::skip detected error\n")));
00938   ACE_THROW_RETURN (CORBA::MARSHAL (0,
00939                                     CORBA::COMPLETED_MAYBE),
00940                     TAO::TRAVERSE_STOP);
00941 }


The documentation for this class was generated from the following files:
Generated on Thu Nov 9 12:36:17 2006 for TAO_AnyTypeCode by doxygen 1.3.6