Go to the documentation of this file.00001
00002
00003 #include "tao/AnyTypeCode/SystemExceptionA.h"
00004 #include "tao/AnyTypeCode/Any_SystemException.h"
00005 #include "tao/AnyTypeCode/Any_Dual_Impl_T.h"
00006 #include "tao/AnyTypeCode/TypeCode.h"
00007 #include "tao/AnyTypeCode/TypeCode_Constants.h"
00008 #include "tao/AnyTypeCode/Enum_TypeCode_Static.h"
00009 #include "tao/AnyTypeCode/TypeCode_Struct_Field.h"
00010 #include "tao/AnyTypeCode/Struct_TypeCode_Static.h"
00011 #include "tao/AnyTypeCode/Null_RefCount_Policy.h"
00012
00013 #include "tao/CORBA_String.h"
00014
00015 ACE_RCSID (AnyTypeCode,
00016 SystemExceptionA,
00017 "$Id: SystemExceptionA.cpp 72893 2006-06-01 08:58:57Z jwillemsen $")
00018
00019
00020 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00021
00022 #if defined (THREAD_CANCELLED)
00023 #undef THREAD_CANCELLED
00024 #endif
00025
00026
00027
00028
00029 #define STANDARD_EXCEPTION_LIST \
00030 TAO_SYSTEM_EXCEPTION (UNKNOWN) \
00031 TAO_SYSTEM_EXCEPTION (BAD_PARAM) \
00032 TAO_SYSTEM_EXCEPTION (NO_MEMORY) \
00033 TAO_SYSTEM_EXCEPTION (IMP_LIMIT) \
00034 TAO_SYSTEM_EXCEPTION (COMM_FAILURE) \
00035 TAO_SYSTEM_EXCEPTION (INV_OBJREF) \
00036 TAO_SYSTEM_EXCEPTION (OBJECT_NOT_EXIST) \
00037 TAO_SYSTEM_EXCEPTION (NO_PERMISSION) \
00038 TAO_SYSTEM_EXCEPTION (INTERNAL) \
00039 TAO_SYSTEM_EXCEPTION (MARSHAL) \
00040 TAO_SYSTEM_EXCEPTION (INITIALIZE) \
00041 TAO_SYSTEM_EXCEPTION (NO_IMPLEMENT) \
00042 TAO_SYSTEM_EXCEPTION (BAD_TYPECODE) \
00043 TAO_SYSTEM_EXCEPTION (BAD_OPERATION) \
00044 TAO_SYSTEM_EXCEPTION (NO_RESOURCES) \
00045 TAO_SYSTEM_EXCEPTION (NO_RESPONSE) \
00046 TAO_SYSTEM_EXCEPTION (PERSIST_STORE) \
00047 TAO_SYSTEM_EXCEPTION (BAD_INV_ORDER) \
00048 TAO_SYSTEM_EXCEPTION (TRANSIENT) \
00049 TAO_SYSTEM_EXCEPTION (FREE_MEM) \
00050 TAO_SYSTEM_EXCEPTION (INV_IDENT) \
00051 TAO_SYSTEM_EXCEPTION (INV_FLAG) \
00052 TAO_SYSTEM_EXCEPTION (INTF_REPOS) \
00053 TAO_SYSTEM_EXCEPTION (BAD_CONTEXT) \
00054 TAO_SYSTEM_EXCEPTION (OBJ_ADAPTER) \
00055 TAO_SYSTEM_EXCEPTION (DATA_CONVERSION) \
00056 TAO_SYSTEM_EXCEPTION (INV_POLICY) \
00057 TAO_SYSTEM_EXCEPTION (REBIND) \
00058 TAO_SYSTEM_EXCEPTION (TIMEOUT) \
00059 TAO_SYSTEM_EXCEPTION (TRANSACTION_UNAVAILABLE) \
00060 TAO_SYSTEM_EXCEPTION (TRANSACTION_MODE) \
00061 TAO_SYSTEM_EXCEPTION (TRANSACTION_REQUIRED) \
00062 TAO_SYSTEM_EXCEPTION (TRANSACTION_ROLLEDBACK) \
00063 TAO_SYSTEM_EXCEPTION (INVALID_TRANSACTION) \
00064 TAO_SYSTEM_EXCEPTION (CODESET_INCOMPATIBLE) \
00065 TAO_SYSTEM_EXCEPTION (BAD_QOS) \
00066 TAO_SYSTEM_EXCEPTION (INVALID_ACTIVITY) \
00067 TAO_SYSTEM_EXCEPTION (ACTIVITY_COMPLETED) \
00068 TAO_SYSTEM_EXCEPTION (ACTIVITY_REQUIRED) \
00069 TAO_SYSTEM_EXCEPTION (THREAD_CANCELLED)
00070
00071 namespace TAO
00072 {
00073 namespace TypeCode
00074 {
00075 char const * const enumerators_CORBA_CompletionStatus[] =
00076 {
00077 "COMPLETED_YES",
00078 "COMPLETED_NO",
00079 "COMPLETED_MAYBE"
00080 };
00081
00082 Enum<char const *,
00083 char const * const *,
00084 TAO::Null_RefCount_Policy>
00085 tc_CompletionStatus ("IDL:omg.org/CORBA/CompletionStatus:1.0",
00086 "CompletionStatus",
00087 enumerators_CORBA_CompletionStatus,
00088 3 );
00089 }
00090 }
00091
00092 namespace CORBA
00093 {
00094
00095 TypeCode_ptr const _tc_CompletionStatus =
00096 &TAO::TypeCode::tc_CompletionStatus;
00097 }
00098
00099 namespace TAO
00100 {
00101 namespace TypeCode
00102 {
00103 Struct_Field<char const *,
00104 CORBA::TypeCode_ptr const *> const
00105 fields_CORBA_SystemException[] =
00106 {
00107 { "minor", &CORBA::_tc_ulong },
00108 { "completed", &CORBA::_tc_CompletionStatus }
00109 };
00110
00111 typedef TAO::TypeCode::Struct<char const *,
00112 CORBA::TypeCode_ptr const *,
00113 TAO::TypeCode::Struct_Field<char const *,
00114 CORBA::TypeCode_ptr const *> const *,
00115 TAO::Null_RefCount_Policy> tc_SystemException;
00116 }
00117 }
00118
00119 #define TAO_SYSTEM_EXCEPTION(name) \
00120 namespace TAO \
00121 { \
00122 namespace TypeCode \
00123 { \
00124 tc_SystemException tc_CORBA_ ## name ( \
00125 CORBA::tk_except, \
00126 "IDL:omg.org/CORBA/" #name ":1.0", \
00127 #name, \
00128 TAO::TypeCode::fields_CORBA_SystemException, \
00129 2 ); \
00130 } \
00131 } \
00132 CORBA::TypeCode_ptr const CORBA::_tc_ ## name = \
00133 &TAO::TypeCode::tc_CORBA_ ## name;
00134
00135 STANDARD_EXCEPTION_LIST
00136 #undef TAO_SYSTEM_EXCEPTION
00137
00138
00139 #define TAO_SYSTEM_EXCEPTION(name) \
00140 void \
00141 CORBA::operator<<= (CORBA::Any &any, const CORBA::name &ex) \
00142 { \
00143 TAO::Any_SystemException::insert_copy ( \
00144 any, \
00145 CORBA::name ::_tao_any_destructor, \
00146 CORBA::_tc_ ## name, \
00147 ex \
00148 ); \
00149 }
00150
00151 STANDARD_EXCEPTION_LIST
00152 #undef TAO_SYSTEM_EXCEPTION
00153
00154 #define TAO_SYSTEM_EXCEPTION(name) \
00155 void \
00156 CORBA::operator<<= (CORBA::Any &any, CORBA::name *ex) \
00157 { \
00158 TAO::Any_SystemException::insert ( \
00159 any, \
00160 CORBA::name ::_tao_any_destructor, \
00161 CORBA::_tc_ ## name, \
00162 ex \
00163 ); \
00164 }
00165
00166 STANDARD_EXCEPTION_LIST
00167 #undef TAO_SYSTEM_EXCEPTION
00168
00169 #define TAO_SYSTEM_EXCEPTION(name) \
00170 CORBA::Boolean operator>>= (const CORBA::Any &any, \
00171 const CORBA::name *&ex) \
00172 { \
00173 return \
00174 TAO::Any_SystemException::extract ( \
00175 any, \
00176 CORBA::name ::_tao_any_destructor, \
00177 CORBA::_tc_ ## name, \
00178 (const CORBA::SystemException *&) ex, \
00179 &CORBA::name ::_tao_create); \
00180 }
00181
00182 STANDARD_EXCEPTION_LIST
00183 #undef TAO_SYSTEM_EXCEPTION
00184
00185 TAO_END_VERSIONED_NAMESPACE_DECL