Public Member Functions

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

TAO_Marshal_Except::TAO_Marshal_Except ( void   ) 

Definition at line 68 of file Marshal.inl.

{
}


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.

{
  TAO::traverse_status retval =
    TAO::TRAVERSE_CONTINUE;
  CORBA::Boolean continue_append = true;
  CORBA::TypeCode_var param;

  // first append the RepositoryID
  continue_append = dest->append_string (*src);

  // Number of fields in the struct.
  const CORBA::ULong member_count =
    tc->member_count ();

  for (CORBA::ULong i = 0;
       i < member_count
         && retval == TAO::TRAVERSE_CONTINUE
         && continue_append == 1;
       ++i)
    {
      param = tc->member_type (i);

      retval = TAO_Marshal_Object::perform_append (param.in (),
                                                   src,
                                                   dest);
    }

  if (retval == TAO::TRAVERSE_CONTINUE
      && continue_append == 1)
    return TAO::TRAVERSE_CONTINUE;

  if (TAO_debug_level > 0)
    ACE_DEBUG ((LM_DEBUG,
                ACE_TEXT ("TAO_Marshal_Except::append detected error\n")));

  throw ::CORBA::MARSHAL (0, CORBA::COMPLETED_MAYBE);
}

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.

{
  TAO::traverse_status retval =
    TAO::TRAVERSE_CONTINUE;
  CORBA::TypeCode_var param;

  // skip the Repository ID
  if (!stream->skip_string ())
    return TAO::TRAVERSE_STOP;

  // Number of fields in the exception
  const CORBA::ULong member_count =
    tc->member_count ();

  for (CORBA::ULong i = 0;
       i < member_count && retval == TAO::TRAVERSE_CONTINUE;
       ++i)
    {
      param = tc->member_type (i);

      retval = TAO_Marshal_Object::perform_skip (param.in (), stream);
    }

  if (retval == TAO::TRAVERSE_CONTINUE)
    return TAO::TRAVERSE_CONTINUE;

  if (TAO_debug_level > 0)
    ACE_DEBUG ((LM_DEBUG,
                ACE_TEXT ("TAO_Marshal_Except::skip detected error\n")));

  throw ::CORBA::MARSHAL (0, CORBA::COMPLETED_MAYBE);
}


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines