diff options
Diffstat (limited to 'TAO/tao')
-rw-r--r-- | TAO/tao/Environment.cpp | 20 | ||||
-rw-r--r-- | TAO/tao/Environment.h | 9 | ||||
-rw-r--r-- | TAO/tao/Exception.h | 3 |
3 files changed, 25 insertions, 7 deletions
diff --git a/TAO/tao/Environment.cpp b/TAO/tao/Environment.cpp index 6bc3b0fdadd..677345ae6ad 100644 --- a/TAO/tao/Environment.cpp +++ b/TAO/tao/Environment.cpp @@ -37,7 +37,12 @@ CORBA_Environment::CORBA_Environment (TAO_ORB_Core* orb_core) CORBA_Environment::CORBA_Environment (void) : exception_ (0), +#if !defined (TAO_USES_FLICK) previous_ (0) +#else + previous_ (0), + _major(CORBA::NO_EXCEPTION) +#endif /* TAO_USES_FLICK */ { // TAO_ORB_Core_instance ()->default_environment (this); } @@ -56,7 +61,7 @@ CORBA_Environment::CORBA_Environment (TAO_ORB_Core* orb_core) { orb_core->default_environment (this); } -#endif +#endif CORBA_Environment& CORBA_Environment::operator= (const CORBA_Environment& rhs) @@ -91,6 +96,9 @@ CORBA_Environment::exception (CORBA_Exception *ex) if (this->exception_ != 0) { this->exception_->_incr_refcnt (); +#if defined (TAO_USES_FLICK) + this->_major = this->exception_type(); +#endif /* TAO_USES_FLICK */ #if defined (TAO_HAS_EXCEPTIONS) this->exception_->_raise (); #endif /* TAO_HAS_EXCEPTIONS */ @@ -124,7 +132,7 @@ CORBA_Environment::default_environment () // the Environment argument) because then the user is supposed to // clear the environment before calling into the ORB. // - TAO_ORB_Core_instance ()->default_environment ()->clear (); + TAO_ORB_Core_instance ()->default_environment ()->clear (); #endif /* TAO_HAS_EXCEPTIONS */ return *TAO_ORB_Core_instance ()->default_environment (); @@ -159,7 +167,7 @@ CORBA::Environment::exception_type (void) const typecode_extra, sizeof typecode_extra - 1) != 0) || ACE_OS::strncmp (id, poa_prefix, sizeof poa_prefix - 1) == 0) return CORBA::SYSTEM_EXCEPTION; - + return CORBA::USER_EXCEPTION; } @@ -182,12 +190,12 @@ CORBA::Environment::print_exception (const char *info, if (this->exception_) { const char *id = this->exception_->_id (); - + ACE_DEBUG ((LM_ERROR, "(%P|%t) EXCEPTION, %s\n", info)); - + // @@ get rid of this logic, and rely on some member function on // Exception to say if it's user or system exception. - + if (this->exception_type () == CORBA::SYSTEM_EXCEPTION) { CORBA::SystemException *x2 = diff --git a/TAO/tao/Environment.h b/TAO/tao/Environment.h index 47fb6b5ca0b..532f2b1f3c1 100644 --- a/TAO/tao/Environment.h +++ b/TAO/tao/Environment.h @@ -101,18 +101,25 @@ public: // = Obtain a default environment to use with TAO. static CORBA_Environment &default_environment (void); +#if defined (TAO_USES_FLICK) private: +#endif /* TAO_USES_FLICK */ + friend class TAO_ORB_Core; CORBA_Environment (TAO_ORB_Core *orb_core); // Initialize using a well known ORB Core; this is intended for the // bootstraping of the ORB_Core, not for general consumption. -private: CORBA_Exception* exception_; // Pointer to the exception object contained in the environment. CORBA_Environment* previous_; // The previous environment on the "default environment stack". + +#if defined (TAO_USES_FLICK) + int _major; + char *_id; +#endif /* TAO_USES_FLICK */ }; #if defined (__ACE_INLINE__) diff --git a/TAO/tao/Exception.h b/TAO/tao/Exception.h index 49e43800aca..787b70c6451 100644 --- a/TAO/tao/Exception.h +++ b/TAO/tao/Exception.h @@ -169,7 +169,10 @@ public: virtual void _raise (void); +#if defined (TAO_USES_FLICK) private: +#endif /* TAO_USES_FLICK */ + CORBA::ULong minor_; // minor code |