summaryrefslogtreecommitdiff
path: root/TAO/tao/PolicyC.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/PolicyC.cpp')
-rw-r--r--TAO/tao/PolicyC.cpp166
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
{