Any_SystemException.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  *  @file    Any_SystemException.h
00006  *
00007  *  $Id: Any_SystemException.h 69182 2005-11-03 17:38:46Z ossama $
00008  *
00009  *  @authors  Carlos O'Ryan and Jeff Parsons
00010  */
00011 //=============================================================================
00012 #ifndef TAO_ANY_SYSTEMEXCEPTION_H
00013 #define TAO_ANY_SYSTEMEXCEPTION_H
00014 
00015 #include /**/ "ace/pre.h"
00016 
00017 #include "tao/AnyTypeCode/Any_Impl.h"
00018 #include "tao/SystemException.h"
00019 
00020 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00021 # pragma once
00022 #endif /* ACE_LACKS_PRAGMA_ONCE */
00023 
00024 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00025 
00026 namespace CORBA
00027 {
00028   class Any;
00029 }
00030 
00031 namespace TAO
00032 {
00033   /**
00034    * @class Any_SystemException
00035    *
00036    * @brief Template Any class for IDL types with 2 modes of insertion
00037    *
00038    * Used for the IDL types that have copying and non-copying insertion,
00039    * but which are not (de)marshaled as pointers - struct, union, sequence,
00040    * and exception.
00041    */
00042   class Any_SystemException : public Any_Impl
00043   {
00044   public:
00045     Any_SystemException (_tao_destructor destructor,
00046                          CORBA::TypeCode_ptr,
00047                          CORBA::SystemException* const);
00048 
00049     Any_SystemException (_tao_destructor destructor,
00050                          CORBA::TypeCode_ptr,
00051                          const CORBA::SystemException &);
00052 
00053     Any_SystemException (CORBA::TypeCode_ptr);
00054 
00055     virtual ~Any_SystemException (void);
00056 
00057     static void insert (CORBA::Any &,
00058                         _tao_destructor,
00059                         CORBA::TypeCode_ptr,
00060                         CORBA::SystemException * const);
00061 
00062     static void insert_copy (CORBA::Any &,
00063                              _tao_destructor destructor,
00064                              CORBA::TypeCode_ptr,
00065                              const CORBA::SystemException &);
00066 
00067     static CORBA::Boolean extract (const CORBA::Any &,
00068                                    _tao_destructor,
00069                                    CORBA::TypeCode_ptr,
00070                                    const CORBA::SystemException *&,
00071                                    excp_factory f);
00072 
00073     virtual CORBA::Boolean marshal_value (TAO_OutputCDR &);
00074     CORBA::Boolean demarshal_value (TAO_InputCDR &);
00075 
00076     virtual const void *value (void) const;
00077     virtual void free_value (void);
00078 
00079   protected:
00080     CORBA::SystemException *value_;
00081   };
00082 }
00083 
00084 TAO_END_VERSIONED_NAMESPACE_DECL
00085 
00086 #include /**/ "ace/post.h"
00087 #endif /*TAO_ANY_SYSTEMEXCEPTION_H*/

Generated on Sun Jan 27 13:21:06 2008 for TAO_AnyTypeCode by doxygen 1.3.6