summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/examples/CosEC/Factory/CosEventChannelFactory_i.cpp
diff options
context:
space:
mode:
authorpradeep <pradeep@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-07-21 15:39:50 +0000
committerpradeep <pradeep@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-07-21 15:39:50 +0000
commit0d1a89ef8559a795439be6253b95a6a253c55b4d (patch)
tree7d3de921fd6c1311d065dea0306ab58f8c456e3a /TAO/orbsvcs/examples/CosEC/Factory/CosEventChannelFactory_i.cpp
parent8eb271abf694a22cda84c363ffdc49ee009f44a1 (diff)
downloadATCD-0d1a89ef8559a795439be6253b95a6a253c55b4d.tar.gz
*** empty log message ***
Diffstat (limited to 'TAO/orbsvcs/examples/CosEC/Factory/CosEventChannelFactory_i.cpp')
-rw-r--r--TAO/orbsvcs/examples/CosEC/Factory/CosEventChannelFactory_i.cpp55
1 files changed, 30 insertions, 25 deletions
diff --git a/TAO/orbsvcs/examples/CosEC/Factory/CosEventChannelFactory_i.cpp b/TAO/orbsvcs/examples/CosEC/Factory/CosEventChannelFactory_i.cpp
index 808b0c0cef9..599367d40b1 100644
--- a/TAO/orbsvcs/examples/CosEC/Factory/CosEventChannelFactory_i.cpp
+++ b/TAO/orbsvcs/examples/CosEC/Factory/CosEventChannelFactory_i.cpp
@@ -55,9 +55,14 @@ TAO_CosEventChannelFactory_i::init (PortableServer::POA_ptr poa,
policy_list [1] =
PortableServer::IdAssignmentPolicy::_duplicate (assignpolicy.in ());
+ PortableServer::POAManager_ptr manager =
+ poa->the_POAManager (ACE_TRY_ENV);
+ ACE_CHECK_RETURN (-1);
+ // @@ Pradeep : TODO - find a way to destroy the policy_list if we return here.
+
// Create the child POA.
this->poa_ = poa->create_POA (child_poa_name,
- PortableServer::POAManager::_nil (),
+ manager,
policy_list,
ACE_TRY_ENV);
@@ -86,8 +91,7 @@ TAO_CosEventChannelFactory_i::create (const char * channel_id,
{
ACE_ASSERT (!CORBA::is_nil (this->poa_.in ()));
- CosEventChannelAdmin::EventChannel_ptr const ec_nil =
- CosEventChannelAdmin::EventChannel::_nil ();
+ CosEventChannelAdmin::EventChannel_var ec_return;
ACE_TRY
{
@@ -144,7 +148,7 @@ TAO_CosEventChannelFactory_i::create (const char * channel_id,
if (retval == -1)
ACE_THROW_RETURN (CosEventChannelFactory::DuplicateChannel (),
- ec_nil);
+ ec_return._retn ());
ec.release (); // release the ownership from the auto_ptr.
@@ -165,52 +169,52 @@ TAO_CosEventChannelFactory_i::create (const char * channel_id,
ACE_TRY_CHECK;
}
- return CosEventChannelAdmin::EventChannel::_narrow (obj.in ());
+ ec_return = CosEventChannelAdmin::EventChannel::_narrow (obj.in ());
}
ACE_CATCH (PortableServer::POA::ServantAlreadyActive, sa_ex)
{
ACE_THROW_RETURN (CosEventChannelFactory::DuplicateChannel (),
- ec_nil);
+ ec_return._retn ());
}
ACE_CATCH (PortableServer::POA::ObjectAlreadyActive, oaa_ex)
{
ACE_THROW_RETURN (CosEventChannelFactory::DuplicateChannel (),
- ec_nil);
+ ec_return._retn ());
}
ACE_CATCH (PortableServer::POA::WrongPolicy, wp_ex)
{
ACE_THROW_RETURN (CORBA::UNKNOWN (),
- ec_nil);
+ ec_return._retn ());
}
ACE_CATCH (PortableServer::POA::ObjectNotActive, ona_ex)
{
ACE_THROW_RETURN (CosEventChannelFactory::BindFailed (),
- ec_nil);
+ ec_return._retn ());
}
ACE_CATCH (CosNaming::NamingContext::NotFound, nf_ex)
{
ACE_THROW_RETURN (CosEventChannelFactory::BindFailed (),
- ec_nil);
+ ec_return._retn ());
}
ACE_CATCH (CosNaming::NamingContext::CannotProceed, cp_ex)
{
ACE_THROW_RETURN (CosEventChannelFactory::BindFailed (),
- ec_nil);
+ ec_return._retn ());
}
ACE_CATCH (CosNaming::NamingContext::InvalidName, in_ex)
{
ACE_THROW_RETURN (CosEventChannelFactory::BindFailed (),
- ec_nil);
+ ec_return._retn ());
}
ACE_CATCH (CosNaming::NamingContext::AlreadyBound, ab)
{
ACE_THROW_RETURN (CosEventChannelFactory::BindFailed (),
- ec_nil);
+ ec_return._retn ());
}
ACE_ENDTRY;
- ACE_CHECK_RETURN (ec_nil);
+ ACE_CHECK_RETURN (ec_return._retn ());
- ACE_NOTREACHED (return ec_nil);
+ return ec_return._retn ();
}
void
@@ -292,8 +296,7 @@ TAO_CosEventChannelFactory_i::find
{
ACE_ASSERT (!CORBA::is_nil (this->poa_.in ()));
- CosEventChannelAdmin::EventChannel_ptr const ec_nil =
- CosEventChannelAdmin::EventChannel::_nil ();
+ CosEventChannelAdmin::EventChannel_var ec_return;
ACE_TRY
{
@@ -304,17 +307,18 @@ TAO_CosEventChannelFactory_i::find
this->poa_->id_to_reference (oid.in (),
ACE_TRY_ENV);
ACE_TRY_CHECK;
- return CosEventChannelAdmin::EventChannel::_narrow (obj.in ());
+
+ ec_return = CosEventChannelAdmin::EventChannel::_narrow (obj.in ());
}
ACE_CATCH (CORBA::UserException, ue) // Translate any user exception.
{
ACE_THROW_RETURN (CosEventChannelFactory::NoSuchChannel (),
- ec_nil);
+ ec_return._retn ());
}
ACE_ENDTRY;
- ACE_CHECK_RETURN (ec_nil);
+ ACE_CHECK_RETURN (ec_return._retn ());
- ACE_NOTREACHED (return ec_nil);
+ return ec_return._retn ();
}
char*
@@ -330,6 +334,7 @@ TAO_CosEventChannelFactory_i::find_channel_id
{
ACE_ASSERT (!CORBA::is_nil (this->poa_.in ()));
+ CORBA::String_var str_return;
ACE_TRY
{
PortableServer::ObjectId_var oid =
@@ -337,17 +342,17 @@ TAO_CosEventChannelFactory_i::find_channel_id
ACE_TRY_ENV);
ACE_TRY_CHECK;
- return TAO_POA::ObjectId_to_string (oid.in ());
+ str_return = TAO_POA::ObjectId_to_string (oid.in ());
}
ACE_CATCH (CORBA::UserException, ue) // Translate any user exception.
{
ACE_THROW_RETURN (CosEventChannelFactory::NoSuchChannel (),
- 0);
+ str_return._retn ());
}
ACE_ENDTRY;
- ACE_CHECK_RETURN (0);
+ ACE_CHECK_RETURN (str_return._retn ());
- ACE_NOTREACHED (return 0);
+ return str_return._retn ();
}