#include <SystemException.h>
Public Member Functions | |
SystemException (const SystemException &src) | |
Copy constructor. | |
virtual | ~SystemException (void) |
Destructor. | |
ULong | minor (void) const |
Get the minor status. | |
void | minor (ULong m) |
Set the minor status. | |
CORBA::CompletionStatus | completed (void) const |
Get the completion status. | |
void | completed (CORBA::CompletionStatus c) |
Set the operation completion status. | |
virtual void | _raise (void) const =0 |
void | _tao_print_system_exception (FILE *f=stdout) const |
virtual ACE_CString | _info (void) const |
virtual void | _tao_encode (TAO_OutputCDR &cdr) const |
virtual void | _tao_decode (TAO_InputCDR &cdr) |
virtual CORBA::Exception * | _tao_duplicate (void) const |
Deep copy. | |
Static Public Member Functions | |
static SystemException * | _downcast (CORBA::Exception *exception) |
Narrow to a SystemException. | |
static const SystemException * | _downcast (const CORBA::Exception *exception) |
The const version of narrow operation to a SystemException. | |
static CORBA::ULong | _tao_minor_code (u_int location, int errno_value) |
Helper to create a minor status value. | |
static CORBA::ULong | _tao_errno (int errno_value) |
Protected Member Functions | |
SystemException (void) | |
Default constructor. | |
SystemException & | operator= (const SystemException &src) |
Assignment operator. | |
SystemException (CORBA::ULong code, CORBA::CompletionStatus completed) | |
Constructor using a repository id. | |
SystemException (const char *repository_id, const char *local_name, CORBA::ULong code, CORBA::CompletionStatus completed) | |
Constructor using a repository id. | |
Static Protected Member Functions | |
static const char * | _tao_get_omg_exception_description (const CORBA::SystemException &exc, CORBA::ULong minor_code) |
Private Attributes | |
CORBA::ULong | minor_ |
Minor code. | |
CORBA::CompletionStatus | completed_ |
Completion status. |
System exceptions are those defined in the CORBA specification; OMG-IDL defines these.
Definition at line 92 of file SystemException.h.
CORBA::SystemException::SystemException | ( | const SystemException & | src | ) |
Copy constructor.
Definition at line 90 of file SystemException.cpp.
: CORBA::Exception (src), minor_ (src.minor_), completed_ (src.completed_) { }
CORBA::SystemException::~SystemException | ( | void | ) | [virtual] |
CORBA::SystemException::SystemException | ( | void | ) | [protected] |
Default constructor.
Definition at line 66 of file SystemException.cpp.
: minor_ (0), completed_ (CORBA::COMPLETED_NO) { }
CORBA::SystemException::SystemException | ( | CORBA::ULong | code, | |
CORBA::CompletionStatus | completed | |||
) | [protected] |
Constructor using a repository id.
Definition at line 83 of file SystemException.cpp.
: minor_ (code), completed_ (completed) { }
CORBA::SystemException::SystemException | ( | const char * | repository_id, | |
const char * | local_name, | |||
CORBA::ULong | code, | |||
CORBA::CompletionStatus | completed | |||
) | [protected] |
Constructor using a repository id.
Definition at line 72 of file SystemException.cpp.
: CORBA::Exception (repository_id, local_name), minor_ (code), completed_ (completed) { }
CORBA::SystemException * CORBA::SystemException::_downcast | ( | CORBA::Exception * | exception | ) | [static] |
Narrow to a SystemException.
Reimplemented from CORBA::Exception.
Definition at line 32 of file SystemException.inl.
{ return dynamic_cast<CORBA::SystemException *> (exception); }
const CORBA::SystemException * CORBA::SystemException::_downcast | ( | const CORBA::Exception * | exception | ) | [static] |
The const version of narrow operation to a SystemException.
Reimplemented from CORBA::Exception.
Definition at line 38 of file SystemException.inl.
{ return dynamic_cast<const CORBA::SystemException *> (exception); }
ACE_CString CORBA::SystemException::_info | ( | void | ) | const [virtual] |
Returns a string containing information about the exception. This function is not CORBA compliant.
Implements CORBA::Exception.
Definition at line 231 of file SystemException.cpp.
{ // @@ there are a few other "user exceptions" in the CORBA scope, // they're not all standard/system exceptions ... really need to // either compare exhaustively against all those IDs (yeech) or // (preferably) to represent the exception type directly in the // exception value so it can be queried. ACE_CString info = "system exception, ID '"; info += this->_rep_id (); info += "'\n"; CORBA::ULong const VMCID = this->minor () & 0xFFFFF000u; if (VMCID == TAO::VMCID) { // @@ Move the following code to a subroutine, it is too long already! const char *location = 0; switch (this->minor () & 0x00000F80u) { case TAO_INVOCATION_LOCATION_FORWARD_MINOR_CODE: location = "location forward failed"; break; case TAO_INVOCATION_SEND_REQUEST_MINOR_CODE: location = "send request failed"; break; case TAO_POA_DISCARDING: location = "poa in discarding state"; break; case TAO_POA_HOLDING: location = "poa in holding state"; break; case TAO_POA_INACTIVE: location = "poa in inactive state"; break; case TAO_UNHANDLED_SERVER_CXX_EXCEPTION: location = "unhandled c++ exception in server side"; break; case TAO_INVOCATION_RECV_REQUEST_MINOR_CODE: location = "failed to recv request response"; break; case TAO_CONNECTOR_REGISTRY_NO_USABLE_PROTOCOL: location = "all protocols failed to parse the IOR"; break; case TAO_MPROFILE_CREATION_ERROR: location = "error during MProfile creation"; break; case TAO_TIMEOUT_CONNECT_MINOR_CODE: location = "timeout during connect"; break; case TAO_TIMEOUT_SEND_MINOR_CODE: location = "timeout during send"; break; case TAO_TIMEOUT_RECV_MINOR_CODE: location = "timeout during recv"; break; case TAO_IMPLREPO_MINOR_CODE: location = "implrepo server exception"; break; case TAO_ACCEPTOR_REGISTRY_OPEN_LOCATION_CODE: location = "endpoint initialization failure in Acceptor Registry"; break; case TAO_ORB_CORE_INIT_LOCATION_CODE: location = "ORB Core initialization failed"; break; case TAO_POLICY_NARROW_CODE: location = "Failure when narrowing a Policy"; break; case TAO_GUARD_FAILURE: location = "Failure when trying to acquire a guard/monitor"; break; case TAO_POA_BEING_DESTROYED: location = "POA has been destroyed or is currently being destroyed"; break; case TAO_AMH_REPLY_LOCATION_CODE: location = "Failure when trying to send AMH reply"; break; case TAO_RTCORBA_THREAD_CREATION_LOCATION_CODE: location = "Failure in thread creation for RTCORBA thread pool"; break; default: location = "unknown location"; } const char *errno_indication = 0; char unknown_errno [255]; CORBA::ULong minor_code = this->minor () & 0x7FU; switch (minor_code) { case TAO_UNSPECIFIED_MINOR_CODE: errno_indication = "unspecified errno"; break; case TAO_ETIMEDOUT_MINOR_CODE: errno_indication = "ETIMEOUT"; break; case TAO_ENFILE_MINOR_CODE: errno_indication = "ENFILE"; break; case TAO_EMFILE_MINOR_CODE: errno_indication = "EMFILE"; break; case TAO_EPIPE_MINOR_CODE: errno_indication = "EPIPE"; break; case TAO_ECONNREFUSED_MINOR_CODE: errno_indication = "ECONNREFUSED"; break; case TAO_ENOENT_MINOR_CODE: errno_indication = "ENOENT"; break; case TAO_EBADF_MINOR_CODE: errno_indication = "EBADF"; break; case TAO_ENOSYS_MINOR_CODE: errno_indication = "ENOSYS"; break; case TAO_EPERM_MINOR_CODE: errno_indication = "EPERM"; break; case TAO_EAFNOSUPPORT_MINOR_CODE: errno_indication = "EAFNOSUPPORT"; break; case TAO_EAGAIN_MINOR_CODE: errno_indication = "EAGAIN"; break; case TAO_ENOMEM_MINOR_CODE: errno_indication = "ENOMEM"; break; case TAO_EACCES_MINOR_CODE: errno_indication = "EACCES"; break; case TAO_EFAULT_MINOR_CODE: errno_indication = "EFAULT"; break; case TAO_EBUSY_MINOR_CODE: errno_indication = "EBUSY"; break; case TAO_EEXIST_MINOR_CODE: errno_indication = "EEXIST"; break; case TAO_EINVAL_MINOR_CODE: errno_indication = "EINVAL"; break; case TAO_ECOMM_MINOR_CODE: errno_indication = "ECOMM"; break; case TAO_ECONNRESET_MINOR_CODE: errno_indication = "ECONNRESET"; break; case TAO_ENOTSUP_MINOR_CODE: errno_indication = "ENOTSUP"; break; default: { // 7 bits of some other errno. ACE_OS::sprintf (unknown_errno, "low 7 bits of errno: %3u %s", minor_code, ACE_OS::strerror (minor_code)); errno_indication = unknown_errno; } } char buffer[BUFSIZ]; ACE_OS::sprintf (buffer, "TAO exception, " "minor code = %x (%s; %s), " "completed = %s\n", minor_code, location, errno_indication, (completed () == CORBA::COMPLETED_YES) ? "YES" : (completed () == CORBA::COMPLETED_NO) ? "NO" : (completed () == CORBA::COMPLETED_MAYBE) ? "MAYBE" : "garbage"); info += buffer; } else if (VMCID == CORBA::OMGVMCID) { CORBA::ULong const minor_code = this->minor () & 0xFFFU; const char *minor_description = 0; if (minor_code > 0) minor_description = CORBA::SystemException::_tao_get_omg_exception_description ( *this, minor_code); else minor_description = "*unknown description*"; char buffer[BUFSIZ]; ACE_OS::sprintf (buffer, "OMG minor code (%d), " "described as '%s', " "completed = %s\n", minor_code, minor_description, (completed () == CORBA::COMPLETED_YES) ? "YES" : (completed () == CORBA::COMPLETED_NO) ? "NO" : (completed () == CORBA::COMPLETED_MAYBE) ? "MAYBE" : "garbage"); info += buffer; } else { char buffer[BUFSIZ]; ACE_OS::sprintf (buffer, "Unknown vendor minor code id (%x), " "minor code = %x, completed = %s\n", VMCID, this->minor (), // Use the raw minor code (completed () == CORBA::COMPLETED_YES) ? "YES" : (completed () == CORBA::COMPLETED_NO) ? "NO" : (completed () == CORBA::COMPLETED_MAYBE) ? "MAYBE" : "garbage"); info += buffer; } return info; }
virtual void CORBA::SystemException::_raise | ( | void | ) | const [pure virtual] |
Implements CORBA::Exception.
void CORBA::SystemException::_tao_decode | ( | TAO_InputCDR & | cdr | ) | [virtual] |
Implements CORBA::Exception.
Definition at line 129 of file SystemException.cpp.
{ // The string is read by the caller, to determine the exact type of // the exception. We just decode the fields... // cdr.read_string (this->id ()); CORBA::ULong tmp; if (cdr.read_ulong (this->minor_) && cdr.read_ulong (tmp)) { this->completed_ = CORBA::CompletionStatus (tmp); return; } throw ::CORBA::MARSHAL (); }
CORBA::Exception * CORBA::SystemException::_tao_duplicate | ( | void | ) | const [virtual] |
Deep copy.
Implements CORBA::Exception.
Definition at line 208 of file SystemException.cpp.
{
return 0;
}
void CORBA::SystemException::_tao_encode | ( | TAO_OutputCDR & | cdr | ) | const [virtual] |
Implements CORBA::Exception.
Definition at line 116 of file SystemException.cpp.
{ if (cdr.write_string (this->_rep_id ()) && cdr.write_ulong (this->minor ()) && cdr.write_ulong (this->completed ())) { return; } throw ::CORBA::MARSHAL (); }
CORBA::ULong CORBA::SystemException::_tao_errno | ( | int | errno_value | ) | [static] |
Helper to translate a platform-specific errno to a TAO errno value.
Definition at line 147 of file SystemException.cpp.
{ switch (errno_value) { case 0: return TAO_UNSPECIFIED_MINOR_CODE; case ETIMEDOUT: return TAO_ETIMEDOUT_MINOR_CODE; case ENFILE: return TAO_ENFILE_MINOR_CODE; case EPIPE: return TAO_EPIPE_MINOR_CODE; case ECONNREFUSED: return TAO_ECONNREFUSED_MINOR_CODE; case ENOENT: return TAO_ENOENT_MINOR_CODE; #if !defined (ACE_HAS_WINCE) case EMFILE: return TAO_EMFILE_MINOR_CODE; case EBADF: return TAO_EBADF_MINOR_CODE; case EPERM: return TAO_EPERM_MINOR_CODE; case EINVAL: return TAO_EINVAL_MINOR_CODE; #endif // ACE_HAS_WINCE #if (ENOSYS != EFAULT) case ENOSYS: return TAO_ENOSYS_MINOR_CODE; #endif /* ENOSYS != EFAULT */ case EAFNOSUPPORT: return TAO_EAFNOSUPPORT_MINOR_CODE; case EAGAIN: return TAO_EAGAIN_MINOR_CODE; case ENOMEM: return TAO_ENOMEM_MINOR_CODE; case EACCES: return TAO_EACCES_MINOR_CODE; case EFAULT: return TAO_EFAULT_MINOR_CODE; case EBUSY: return TAO_EBUSY_MINOR_CODE; case EEXIST: return TAO_EEXIST_MINOR_CODE; case ECOMM: return TAO_ECOMM_MINOR_CODE; case ECONNRESET: return TAO_ECONNRESET_MINOR_CODE; #if (ENOTSUP != ENOSYS) case ENOTSUP: return TAO_ENOTSUP_MINOR_CODE; #endif /* ENOSYS != EFAULT */ default: // Mask off bottom 7 bits and return them. return errno_value & 0x7FU; } }
const char * CORBA::SystemException::_tao_get_omg_exception_description | ( | const CORBA::SystemException & | exc, | |
CORBA::ULong | minor_code | |||
) | [static, protected] |
Return the exception description associated with the given OMG minor code.
Definition at line 457 of file SystemException.cpp.
{ #ifndef ACE_NDEBUG static const char *UNKNOWN_TABLE[] = { "Unlisted user exception received by client.", // 1 "Non-standard SystemException not supported.", // 2 "An unknown user exception received by a portable interceptor." // 3 }; static const char *BAD_PARAM_TABLE[] = { "Failure to register, unregister, or lookup value factory.", // 1 "RID already defined in IFR.", // 2 "Name already used in the context in IFR.", // 3 "Target is not a valid container.", // 4 "Name clash in inherited context.", // 5 "Incorrect type for abstract interface.", // 6 "string_to_object conversion failed due to a bad scheme name.", // 7 "string_to_object conversion failed due to a bad address.", // 8 "string_to_object conversion failed due to a bad schema specific part.",// 9 "string_to_object conversion failed due to non specific reason.", // 10 "Attempt to derive abstract interface from non-abstract base interface in the Interface Repository.", // 11 "Attempt to let a ValueDef support more than one non-abstract interface in the Interface Repository.", // 12 "Attempt to use an incomplete TypeCode as a parameter.", // 13 "Invalid object id passed to POA::create_reference_by_id.", // 14 "Bad name argument in TypeCode operation.", // 15 "Bad RepositoryId argument in TypeCode operation.", // 16 "Invalid member name in TypeCode operation.", // 17 "Duplicate label value in create_union_tc.", // 18 "Incompatible TypeCode of label and discriminator in create_union_tc.", // 19 "Supplied discriminator type illegitimate in create_union_tc.", // 20 "Any passed to ServerRequest::set_exception does not contain an exception.", // 21 "Unlisted user exception passed to ServerRequest::set_exception", // 22 "wchar transmission code set not in service context.", // 23 "Service context is not in OMG-defined range.", // 24 "Enum value out of range.", // 25 "Invalid service context Id in portable interceptor.", // 26 "Attempt to call register_initial_reference with a null Object.", // 27 "Invalid component Id in portable interceptor.", // 28 "Invalid profile Id in portable interceptor.", // 29 "Two or more Policy objects with the same PolicyType value supplied to Object::set_policy_overrides or PolicyManager::set_policy_overrides." // 30 "Attempt to define a oneway operation with non-void result, out or inout parameters or user exceptions.", // 31 "DII asked to create request for an implicit operation.", // 32, "An OTS/XA integration xa_ call returned XAER_INVAL.", // 33 "Union branch modifier called with bad case label discriminator.", // 34 "Illegal IDL context property name.", // 35 "Illegal IDL property search string.", // 36 "Illegal IDL context name.", // 37 "Non-empty IDL context.", // 38 "Unsupported RMI/IDL customer value type stream format.", // 39 "ORB output stream does not support ValueOutputStream interface.", // 40 "ORB input stream does not support ValueInputStream interface.", // 41 "Character support limited to ISO 8859-1 for this object reference", // 42 "Attempt to add a Pollable to a second PollableSet." // 43 }; static const char *IMP_LIMIT_TABLE[] = { "Unable to use any profile in IOR." // 1 }; static const char *INITIALIZE_TABLE[] = { "Priority range too restricted for ORB." // 1 }; static const char *INV_OBJREF_TABLE[] = { "wchar Code Set support not specified.", // 1 "Codeset component required for type using wchar or wstring data." // 2 }; static const char *MARSHAL_TABLE[] = { "Unable to locate value factory.", // 1 "ServerRequest::set_result called before ServerRequest::ctx when the operation IDL contains a context clause.", // 2 "NVList passed to ServerRequest::arguments does not describe all parameters passed by client.", // 3 "Attempt to marshal Local object.", // 4 "wchar or wstring data erroneously sent by client over GIOP 1.0 connection.", // 5 "wchar or wstring data erroneously returned by server over GIOP 1.0 connection.", //6 "Unsupported RMI/IDL custom value type stream format.", // 7 "Custom data not compatible with ValueHandler read operation.", // 8 "Codeset service contexts with different values recieved on the same connection." // 9 }; static const char *BAD_TYPECODE_TABLE[] = { "Attempt to marshal incomplete TypeCode.", // 1 "Member type code illegitimate in TypeCode operation.", // 2 "Illegal parameter type." // 3 }; static const char *NO_IMPLEMENT_TABLE[] = { "Missing local value implementation.", // 1 "Incompatible value implementation version.", // 2 "Unable to use any profile in IOR.", // 3 "Attempt to use DII on Local object.", // 4 "Biomolecular Sequence Analysis iterator cannot be reset.", // 5 "Biomolecular Sequence Analysis metadata is not available as XML.", // 6 "Genomic Maps iterator cannot be rest.", // 7 "Operation not implemented in local object" // 8 }; static const char *NO_RESOURCES_TABLE[] = { "Portable Interceptor operation not support in this binding.", // 1 "No connection for request's priority." // 2 }; static const char *BAD_INV_ORDER_TABLE[] = { "Dependency exists in IFR preventing destruction of this object", // 1 "Attempt to destroy indestructible objects in IFR.", // 2 "Operation would deadlock.", // 3 "ORB has shutdown.", // 4 "Attempt to invoke \"send\" or \"invoke\" operation of the same \"Request\" object more than once.", // 5 "Attempt to set a servant manager after one has already been set.", // 6 "ServerRequest::arguments called more than once or after a call to ServerRequest::set_exception.", // 7 "ServerRequest::ctx called more than once or before ServerRequest::arguments or after ServerRequest::ctx, ServerRequest::set_result or ServerRequest::set_exception.", // 8 "ServerRequest::set_result called more than once or before ServerRequest::arguments or after ServerRequest::set_result or ServerRequest::set_exception.", // 9 "Attempt to send a DII request after it was sent previously.", // 10 "Attempt to poll a DII request or to retrieve its result before the request was sent.", // 11 "Attempt to poll a DII request or to retrieve its result after the result was retrieved previously.", // 12 "Attempt to poll a synchronous DII request or to retrieve results from a synchronous DII request.", // 13 "Invalid portable interceptor call", // 14 "Service context add failed in portable interceptor because a service context with the given id already exists.", // 15 "Registration of PolicyFactory failed because a factory already exists for the given type.", // 16 "POA cannot create POAs while undergoing destruction.", // 17 "Attempt to reassign priority.", // 18 "An OTS/XA integration xa_start call returned XAER_OUTSIDE.", // 19 "An OTS/XA integration xa_call returned XAER_PROTO.", // 20 "Transaction context of request & client threads do not match in interceptor.", // 21 "Poller has not returned any response yet.", // 22 "Registration of TaggedProfileFactory failed because a factory already exists for the given id.", // 23 "Registration of TaggedComponentFactory failed because a factory already exists for the given id.", // 24 "Iteration has no more elements.", // 25 "Invocation of this operation not allowed in post_init." // 26 }; static const char *TRANSIENT_TABLE[] = { "Request discarded because of resource exhaustion in POA, or because POA is in discarding state.", // 1 "No usable profile in IOR.", // 2 "Request cancelled.", // 3 "POA destroyed." // 4 }; static const char *OBJ_ADAPTER_TABLE[] = { "System exception in AdapterActivator::unknown_adapter.", // 1 "Incorrect servant type returned by servant manager", // 2 "No default servant available [POA policy].", // 3 "No servant manager available [POA policy].", // 4 "Violation of POA policy by ServantActivator::incarnate.",// 5 "Exception in PortableInterceptor::IORInterceptor.components_established.", // 6 "Null servant returned by servant manager." // 7 }; static const char *DATA_CONVERSION_TABLE[] = { "Character does not map to negotiated transmission code set.", // 1 "Failure of PriorityMapping object." // 2 }; static const char *OBJECT_NOT_EXIST_TABLE[] = { "Attempt to pass an unactivated (unregistered) value as an object reference.", // 1 "Failed to create or locate Object Adapter.", // 2 "Biomolecular Sequence Analysis Service is no longer available.", // 3 "Object Adapter inactive.", // 4 "This Poller has already delivered a reply to some client." // 5 }; static const char *INV_POLICY_TABLE[] = { "Unable to reconcile IOR specified policy with the effective policy override.", // 1 "Invalid PolicyType.", // 2 "No PolicyFactory has been registered for the given PolicyType." // 3 }; static const char *ACTIVITY_COMPLETED_TABLE[] = { "Activity context completed through timeout, or in some way other then requested." // 1 }; static const char *ACTIVITY_REQUIRED_TABLE[] = { "Calling thread lacks required activity context." // 1 }; static const char *BAD_OPERATION_TABLE[] = { "ServantManager returned wrong servant type.", // 1 "Operation or attribute not known to target object." // 2 }; static const char *BAD_CONTEXT_TABLE[] = { "IDL context not found.", // 1 "No matching IDL context property." // 2 }; static const char *CODESET_INCOMPATIBLE_TABLE[] = { "Codeset negotiation failed.", // 1 "Codeset delivered in CodeSetContext is not supported by server as transmission codeset." // 2 }; static const char *INTF_REPOS_TABLE[] = { "Interface Repository not available.", // 1 "No entry for requested interface in Interface Repository." // 2 }; static const char *TIMEOUT_TABLE[] = { "Reply is not available in the Poller by the timeout set for it.", // 1 "End time specified in RequestEndTimePolicy or RelativeRequestTimeoutPolicy has expired.", // 2 "End time specified in ReplyEndTimePolicy or RelativeReplyTimeoutPolicy has expired." // 3 }; if (minor_code == 0) return "*unknown description*"; --minor_code; // Adjust to match table offset. CORBA::UNKNOWN const * unknown_exception = dynamic_cast <const CORBA::UNKNOWN *> (&exc); if (unknown_exception != 0 && minor_code < sizeof UNKNOWN_TABLE / sizeof (char *)) return UNKNOWN_TABLE[minor_code]; CORBA::BAD_PARAM const * bad_param__exception = dynamic_cast <const CORBA::BAD_PARAM *> (&exc); if (bad_param__exception != 0 && minor_code < sizeof BAD_PARAM_TABLE / sizeof (char *)) return BAD_PARAM_TABLE[minor_code]; CORBA::IMP_LIMIT const * imp_limit_exception = dynamic_cast <const CORBA::IMP_LIMIT *> (&exc); if (imp_limit_exception != 0 && minor_code < sizeof IMP_LIMIT_TABLE / sizeof (char *)) return IMP_LIMIT_TABLE[minor_code]; CORBA::INITIALIZE const * initialize_exception = dynamic_cast <const CORBA::INITIALIZE *> (&exc); if (initialize_exception != 0 && minor_code < sizeof INITIALIZE_TABLE / sizeof (char *)) return INITIALIZE_TABLE[minor_code]; CORBA::INV_OBJREF const * inv_objref_exception = dynamic_cast <const CORBA::INV_OBJREF *> (&exc); if (inv_objref_exception != 0 && minor_code < sizeof INV_OBJREF_TABLE / sizeof (char *)) return INV_OBJREF_TABLE[minor_code]; CORBA::MARSHAL const * marshal_exception = dynamic_cast <const CORBA::MARSHAL *> (&exc); if (marshal_exception != 0 && minor_code < sizeof MARSHAL_TABLE / sizeof (char *)) return MARSHAL_TABLE[minor_code]; CORBA::BAD_TYPECODE const * bad_typecode_exception = dynamic_cast <const CORBA::BAD_TYPECODE *> (&exc); if (bad_typecode_exception != 0 && minor_code < sizeof BAD_TYPECODE_TABLE / sizeof (char *)) return BAD_TYPECODE_TABLE[minor_code]; CORBA::NO_IMPLEMENT const * no_implement_exception = dynamic_cast <const CORBA::NO_IMPLEMENT *> (&exc); if (no_implement_exception != 0 && minor_code < sizeof NO_IMPLEMENT_TABLE / sizeof (char *)) return NO_IMPLEMENT_TABLE[minor_code]; CORBA::NO_RESOURCES const * no_resource_exception = dynamic_cast <const CORBA::NO_RESOURCES *> (&exc); if (no_resource_exception != 0 && minor_code < sizeof NO_RESOURCES_TABLE / sizeof (char *)) return NO_RESOURCES_TABLE[minor_code]; CORBA::BAD_INV_ORDER const * bad_inv_order_exception = dynamic_cast <const CORBA::BAD_INV_ORDER *> (&exc); if (bad_inv_order_exception != 0 && minor_code < sizeof BAD_INV_ORDER_TABLE / sizeof (char *)) return BAD_INV_ORDER_TABLE[minor_code]; CORBA::TRANSIENT const * transient_exception = dynamic_cast <const CORBA::TRANSIENT *> (&exc); if (transient_exception != 0 && minor_code < sizeof TRANSIENT_TABLE / sizeof (char *)) return TRANSIENT_TABLE[minor_code]; CORBA::OBJ_ADAPTER const * obj_adapter_exception = dynamic_cast <const CORBA::OBJ_ADAPTER *> (&exc); if (obj_adapter_exception != 0 && minor_code < sizeof OBJ_ADAPTER_TABLE / sizeof (char *)) return OBJ_ADAPTER_TABLE[minor_code]; CORBA::DATA_CONVERSION const * data_conversion_exception = dynamic_cast <const CORBA::DATA_CONVERSION *> (&exc); if (data_conversion_exception != 0 && minor_code < sizeof DATA_CONVERSION_TABLE / sizeof (char *)) return DATA_CONVERSION_TABLE[minor_code]; CORBA::OBJECT_NOT_EXIST const * object_not_exist_exception = dynamic_cast <const CORBA::OBJECT_NOT_EXIST *> (&exc); if (object_not_exist_exception != 0 && minor_code < sizeof OBJECT_NOT_EXIST_TABLE / sizeof (char *)) return OBJECT_NOT_EXIST_TABLE[minor_code]; CORBA::INV_POLICY const * inv_policy_exception = dynamic_cast <const CORBA::INV_POLICY *> (&exc); if (inv_policy_exception != 0 && minor_code < sizeof INV_POLICY_TABLE / sizeof (char *)) return INV_POLICY_TABLE[minor_code]; CORBA::ACTIVITY_COMPLETED const * activity_completed_exception = dynamic_cast <const CORBA::ACTIVITY_COMPLETED *> (&exc); if (activity_completed_exception != 0 && minor_code < sizeof ACTIVITY_COMPLETED_TABLE / sizeof (char *)) return ACTIVITY_COMPLETED_TABLE[minor_code]; CORBA::ACTIVITY_REQUIRED const * activity_required_exception = dynamic_cast <const CORBA::ACTIVITY_REQUIRED *> (&exc); if (activity_required_exception != 0 && minor_code < sizeof ACTIVITY_REQUIRED_TABLE / sizeof (char *)) return ACTIVITY_REQUIRED_TABLE[minor_code]; CORBA::BAD_OPERATION const * bad_operation_exception = dynamic_cast <const CORBA::BAD_OPERATION *> (&exc); if (bad_operation_exception != 0 && minor_code < sizeof BAD_OPERATION_TABLE / sizeof (char *)) return BAD_OPERATION_TABLE[minor_code]; CORBA::BAD_CONTEXT const * bad_context_exception = dynamic_cast <const CORBA::BAD_CONTEXT *> (&exc); if (bad_context_exception != 0 && minor_code < sizeof BAD_CONTEXT_TABLE / sizeof (char *)) return BAD_CONTEXT_TABLE[minor_code]; CORBA::CODESET_INCOMPATIBLE const * codeset_incompatible_exception = dynamic_cast <const CORBA::CODESET_INCOMPATIBLE *> (&exc); if (codeset_incompatible_exception != 0 && minor_code < sizeof CODESET_INCOMPATIBLE_TABLE / sizeof (char *)) return CODESET_INCOMPATIBLE_TABLE[minor_code]; CORBA::INTF_REPOS const * intf_repos_exception = dynamic_cast <const CORBA::INTF_REPOS *> (&exc); if (intf_repos_exception != 0 && minor_code < sizeof INTF_REPOS_TABLE / sizeof (char *)) return INTF_REPOS_TABLE[minor_code]; CORBA::TIMEOUT const * timeout_exception = dynamic_cast <const CORBA::TIMEOUT *> (&exc); if (timeout_exception != 0 && minor_code < sizeof TIMEOUT_TABLE / sizeof (char *)) return TIMEOUT_TABLE[minor_code]; #else ACE_UNUSED_ARG (exc); ACE_UNUSED_ARG (minor_code); #endif /* !ACE_NDEBUG */ return "*unknown description*"; }
CORBA::ULong CORBA::SystemException::_tao_minor_code | ( | u_int | location, | |
int | errno_value | |||
) | [static] |
Helper to create a minor status value.
Definition at line 214 of file SystemException.cpp.
{ return TAO::VMCID | location | _tao_errno (errno_value); }
void CORBA::SystemException::_tao_print_system_exception | ( | FILE * | f = stdout |
) | const |
CORBA::CompletionStatus CORBA::SystemException::completed | ( | void | ) | const |
Get the completion status.
Definition at line 20 of file SystemException.inl.
{ return this->completed_; }
void CORBA::SystemException::completed | ( | CORBA::CompletionStatus | c | ) |
Set the operation completion status.
Definition at line 26 of file SystemException.inl.
{ this->completed_ = c; }
CORBA::ULong CORBA::SystemException::minor | ( | void | ) | const |
void CORBA::SystemException::minor | ( | CORBA::ULong | m | ) |
CORBA::SystemException & CORBA::SystemException::operator= | ( | const SystemException & | src | ) | [protected] |
Assignment operator.
Definition at line 102 of file SystemException.cpp.
{ if (this != &src) { this->Exception::operator= (src); this->minor_ = src.minor_; this->completed_ = src.completed_; } return *this; }
Completion status.
Definition at line 181 of file SystemException.h.
CORBA::ULong CORBA::SystemException::minor_ [private] |
Minor code.
Definition at line 178 of file SystemException.h.