Exception_Data.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  *  @file    Exception_Data.h
00006  *
00007  *  Exception_Data.h,v 1.5 2005/11/02 07:13:02 ossama Exp
00008  *
00009  *  @author  balachandran Natarajan <bala@dre.vanderbilt.edu>
00010  */
00011 //=============================================================================
00012 
00013 #ifndef TAO_EXCEPTION_DATA_H
00014 #define TAO_EXCEPTION_DATA_H
00015 #include /**/ "ace/pre.h"
00016 
00017 #include "ace/config-all.h"
00018 
00019 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00020 # pragma once
00021 #endif /* ACE_LACKS_PRAGMA_ONCE */
00022 
00023 #include "tao/orbconf.h"
00024 
00025 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00026 
00027 namespace CORBA
00028 {
00029   class TypeCode;
00030   typedef TypeCode *TypeCode_ptr;
00031 }
00032 
00033 namespace TAO
00034 {
00035   // Function pointer returning a pointer to CORBA::Exception. This is used to
00036   // describe the allocator for user-defined exceptions that are used internally
00037   // by the interpreter.
00038   typedef CORBA::Exception* (*TAO_Exception_Alloc) (void);
00039 
00040   /**
00041    * @struct Exception_Data
00042    *
00043    * @brief Description of a single exception.
00044    *
00045    * The interpreter needs a way to allocate memory to hold the exception
00046    * that was raised by the stub. This data structure provides the typecode
00047    * for the exception as well as a static function pointer that
00048    * does the job of memory allocation.
00049    */
00050   struct Exception_Data
00051   {
00052     /// Repository id of the exception.
00053     const char *id;
00054 
00055     /// The allocator for this exception.
00056     TAO_Exception_Alloc alloc;
00057 
00058 #if TAO_HAS_INTERCEPTORS == 1
00059     /// The typecode pointer for this exception.
00060     CORBA::TypeCode_ptr tc_ptr;
00061 #endif /* TAO_HAS_INTERCEPTORS */
00062   };
00063 }
00064 
00065 TAO_END_VERSIONED_NAMESPACE_DECL
00066 
00067 #include /**/ "ace/post.h"
00068 #endif /*TAO_EXCEPTION_DATA_H*/

Generated on Thu Nov 9 11:54:11 2006 for TAO by doxygen 1.3.6