diff options
Diffstat (limited to 'TAO/tao/PolicyC.cpp')
-rw-r--r-- | TAO/tao/PolicyC.cpp | 166 |
1 files changed, 90 insertions, 76 deletions
diff --git a/TAO/tao/PolicyC.cpp b/TAO/tao/PolicyC.cpp index b3e5e2a584e..52122bd6f7d 100644 --- a/TAO/tao/PolicyC.cpp +++ b/TAO/tao/PolicyC.cpp @@ -92,12 +92,7 @@ void CORBA_PolicyError::_raise () // TAO extension - the _alloc method CORBA::Exception *CORBA_PolicyError::_alloc (void) { - CORBA::Exception *retval = 0; - - ACE_NEW_RETURN (retval, - CORBA_PolicyError, - 0); - return retval; + return new CORBA_PolicyError; } CORBA_PolicyError::CORBA_PolicyError( @@ -156,13 +151,7 @@ void CORBA_InvalidPolicies::_raise () // TAO extension - the _alloc method CORBA::Exception *CORBA_InvalidPolicies::_alloc (void) { - CORBA::Exception *retval = 0; - - ACE_NEW_RETURN (retval, - CORBA_InvalidPolicies, - 0); - - return retval; + return new CORBA_InvalidPolicies; } CORBA_InvalidPolicies::CORBA_InvalidPolicies( @@ -187,42 +176,47 @@ CORBA_Policy_ptr CORBA_Policy::_narrow ( if (is_a == 0) return CORBA_Policy::_nil (); TAO_Stub* stub = obj->_stubobj (); + stub->_incr_refcnt (); void* servant = 0; if (obj->_is_collocated () && obj->_servant() != 0) servant = obj->_servant()->_downcast ("IDL:omg.org/CORBA/Policy:1.0"); -#if defined (TAO_HAS_LOCALITY_CONSTRAINT_POLICIES) if (servant == 0) +#if defined (TAO_HAS_LOCALITY_CONSTRAINT_POLICIES) ACE_THROW_RETURN (CORBA::MARSHAL (), CORBA::Policy::_nil ()); #else + return new CORBA_Policy(stub); +#endif /* TAO_HAS_LOCALITY_CONSTRAINT_POLICIES */ + return new POA_CORBA::_tao_collocated_Policy( + ACE_reinterpret_cast(POA_CORBA::Policy_ptr, servant), + stub + ); +} + +CORBA_Policy_ptr CORBA_Policy::_unchecked_narrow ( + CORBA::Object_ptr obj, + CORBA::Environment &ACE_TRY_ENV + ) +{ + if (CORBA::is_nil (obj)) + return CORBA_Policy::_nil (); + TAO_Stub* stub = obj->_stubobj (); stub->_incr_refcnt (); + void* servant = 0; + if (obj->_is_collocated () && obj->_servant() != 0) + servant = obj->_servant()->_downcast ("IDL:omg.org/CORBA/Policy:1.0"); if (servant == 0) { - CORBA_Policy_ptr rval = - CORBA_Policy::_nil (); - - ACE_NEW_RETURN (rval, - CORBA_Policy (stub), - CORBA_Policy::_nil ()); - - return rval; - } - +#if defined (TAO_HAS_LOCALITY_CONSTRAINT_POLICIES) + ACE_THROW_RETURN (CORBA::MARSHAL (), CORBA::Policy::_nil ()); +#else + ACE_UNUSED_ARG (ACE_TRY_ENV); + return new CORBA_Policy(stub); #endif /* TAO_HAS_LOCALITY_CONSTRAINT_POLICIES */ - - CORBA_Policy_ptr retval = - CORBA_Policy::_nil (); - - ACE_NEW_RETURN ( - retval, - POA_CORBA::_tao_collocated_Policy ( - ACE_reinterpret_cast (POA_CORBA::Policy_ptr, - servant), - stub - ), - CORBA_Policy::_nil () + } + return new POA_CORBA::_tao_collocated_Policy( + ACE_reinterpret_cast(POA_CORBA::Policy_ptr, servant), + stub ); - - return retval; } #if !defined (TAO_HAS_LOCALITY_CONSTRAINT_POLICIES) @@ -441,25 +435,37 @@ CORBA::PolicyManager_ptr CORBA_PolicyManager::_narrow ( ACE_CHECK_RETURN (CORBA_PolicyManager::_nil ()); if (is_a == 0) return CORBA_PolicyManager::_nil (); + TAO_Stub* stub = obj->_stubobj (); + stub->_incr_refcnt (); void* servant = 0; - if (!obj->_is_collocated () || !obj->_servant() || - (servant = obj->_servant()->_downcast ("IDL:omg.org/CORBA/PolicyManager:1.0")) == 0) - ACE_THROW_RETURN (CORBA::MARSHAL (), CORBA_PolicyManager::_nil ()); - - CORBA::PolicyManager_ptr retval = - CORBA_PolicyManager::_nil (); - - ACE_NEW_RETURN ( - retval, - POA_CORBA::_tao_collocated_PolicyManager ( - ACE_reinterpret_cast (POA_CORBA::PolicyManager_ptr, - servant), - 0 - ), - CORBA_PolicyManager::_nil () + if (obj->_is_collocated () && obj->_servant() != 0) + servant = obj->_servant()->_downcast ("IDL:omg.org/CORBA/PolicyManager:1.0"); + if (servant == 0) + return new CORBA_PolicyManager(stub); + return new POA_CORBA::_tao_collocated_PolicyManager( + ACE_reinterpret_cast(POA_CORBA::PolicyManager_ptr, servant), + stub ); +} - return retval; +CORBA_PolicyManager_ptr CORBA_PolicyManager::_unchecked_narrow ( + CORBA::Object_ptr obj, + CORBA::Environment & + ) +{ + if (CORBA::is_nil (obj)) + return CORBA_PolicyManager::_nil (); + TAO_Stub* stub = obj->_stubobj (); + stub->_incr_refcnt (); + void* servant = 0; + if (obj->_is_collocated () && obj->_servant() != 0) + servant = obj->_servant()->_downcast ("IDL:omg.org/CORBA/PolicyManager:1.0"); + if (servant == 0) + return new CORBA_PolicyManager(stub); + return new POA_CORBA::_tao_collocated_PolicyManager( + ACE_reinterpret_cast(POA_CORBA::PolicyManager_ptr, servant), + stub + ); } CORBA_PolicyList * CORBA_PolicyManager::get_policy_overrides ( @@ -514,25 +520,37 @@ CORBA_PolicyCurrent_ptr CORBA_PolicyCurrent::_narrow ( ACE_CHECK_RETURN (CORBA_PolicyCurrent::_nil ()); if (is_a == 0) return CORBA_PolicyCurrent::_nil (); + TAO_Stub* stub = obj->_stubobj (); + stub->_incr_refcnt (); void* servant = 0; - if (!obj->_is_collocated () || !obj->_servant() || - (servant = obj->_servant()->_downcast ("IDL:omg.org/CORBA/PolicyCurrent:1.0")) == 0) - ACE_THROW_RETURN (CORBA::MARSHAL (), CORBA_PolicyCurrent::_nil ()); - - CORBA_PolicyCurrent_ptr retval = - CORBA_PolicyCurrent::_nil (); - - ACE_NEW_RETURN ( - retval, - POA_CORBA::_tao_collocated_PolicyCurrent ( - ACE_reinterpret_cast (POA_CORBA::PolicyCurrent_ptr, - servant), - 0 - ), - CORBA_PolicyCurrent::_nil () + if (obj->_is_collocated () && obj->_servant() != 0) + servant = obj->_servant()->_downcast ("IDL:omg.org/CORBA/PolicyCurrent:1.0"); + if (servant == 0) + return new CORBA_PolicyCurrent(stub); + return new POA_CORBA::_tao_collocated_PolicyCurrent( + ACE_reinterpret_cast(POA_CORBA::PolicyCurrent_ptr, servant), + stub ); +} - return retval; +CORBA_PolicyCurrent_ptr CORBA_PolicyCurrent::_unchecked_narrow ( + CORBA::Object_ptr obj, + CORBA::Environment & + ) +{ + if (CORBA::is_nil (obj)) + return CORBA_PolicyCurrent::_nil (); + TAO_Stub* stub = obj->_stubobj (); + stub->_incr_refcnt (); + void* servant = 0; + if (obj->_is_collocated () && obj->_servant() != 0) + servant = obj->_servant()->_downcast ("IDL:omg.org/CORBA/PolicyCurrent:1.0"); + if (servant == 0) + return new CORBA_PolicyCurrent(stub); + return new POA_CORBA::_tao_collocated_PolicyCurrent( + ACE_reinterpret_cast(POA_CORBA::PolicyCurrent_ptr, servant), + stub + ); } CORBA::Boolean CORBA_PolicyCurrent::_is_a (const CORBA::Char *value, CORBA::Environment &ACE_TRY_ENV) @@ -557,9 +575,7 @@ const char* CORBA_PolicyCurrent::_interface_repository_id (void) const void operator<<= (CORBA::Any &_tao_any, const CORBA_PolicyError &_tao_elem) // copying { - CORBA_PolicyError *_tao_any_val = 0; - ACE_NEW (_tao_any_val, - CORBA_PolicyError (_tao_elem)); + CORBA_PolicyError *_tao_any_val = new CORBA_PolicyError (_tao_elem); if (!_tao_any_val) return; ACE_TRY_NEW_ENV { @@ -624,9 +640,7 @@ CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, CORBA_PolicyError *&_tao void operator<<= (CORBA::Any &_tao_any, const CORBA_InvalidPolicies &_tao_elem) // copying { - CORBA_InvalidPolicies *_tao_any_val = 0; - ACE_NEW (_tao_any_val, - CORBA_InvalidPolicies (_tao_elem)); + CORBA_InvalidPolicies *_tao_any_val = new CORBA_InvalidPolicies (_tao_elem); if (!_tao_any_val) return; ACE_TRY_NEW_ENV { |