diff options
Diffstat (limited to 'modules/CIAO/ciao/NodeApp_CB_Impl.cpp')
-rw-r--r-- | modules/CIAO/ciao/NodeApp_CB_Impl.cpp | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/modules/CIAO/ciao/NodeApp_CB_Impl.cpp b/modules/CIAO/ciao/NodeApp_CB_Impl.cpp new file mode 100644 index 00000000000..c87e80f9333 --- /dev/null +++ b/modules/CIAO/ciao/NodeApp_CB_Impl.cpp @@ -0,0 +1,64 @@ +// $Id$ +#include "NodeApp_CB_Impl.h" + +CIAO::NodeApplication_Callback_Impl:: +NodeApplication_Callback_Impl (CORBA::ORB_ptr o, + PortableServer::POA_ptr p, + Deployment::NodeApplicationManager_ptr s, + const Deployment::Properties &properties) + ACE_THROW_SPEC ((CORBA::SystemException)) + : orb_ (CORBA::ORB::_duplicate (o)), + poa_ (PortableServer::POA::_duplicate (p)), + nam_ (Deployment::NodeApplicationManager::_duplicate (s)) +{ + try + { + //@@ Note: this properties is useless unless + // we have some specific properties for the callback obj. + Deployment::Properties * tmp = 0; + ACE_NEW_THROW_EX (tmp, + Deployment::Properties (properties), + CORBA::NO_MEMORY ()); + this->properties_ = tmp; + } + catch (const CORBA::Exception& ex) + { + ex._tao_print_exception ("NodeApp_CB_Impl::Constructor\t\n"); + throw; + } +} + +CIAO::NodeApplication_Callback_Impl::~NodeApplication_Callback_Impl () +{ +} + +PortableServer::POA_ptr +CIAO::NodeApplication_Callback_Impl::_default_POA (void) +{ + return PortableServer::POA::_duplicate (this->poa_.in ()); +} + +Deployment::NodeApplicationManager_ptr +CIAO::NodeApplication_Callback_Impl::register_node_application ( + Deployment::NodeApplication_ptr na, + Deployment::Properties_out properties) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + properties = this->properties_._retn (); + + this->nodeapp_ = Deployment::NodeApplication::_duplicate (na); + return Deployment::NodeApplicationManager::_duplicate (this->nam_.in ()); +} + +Deployment::NodeApplication_ptr +CIAO::NodeApplication_Callback_Impl::get_nodeapp_ref (void) +{ + // @@ (OO) How are you relinquishing ownership here? Since you're + // duplicating the reference you actually maintain + // ownership. Is the below comment wrong, or is the code + // wrong? + + // Relinquish the ownership of the nodeapplication reference. + //This method should only be called from the NodeApplicationManager. + return Deployment::NodeApplication::_duplicate (this->nodeapp_.in ()); +} |