diff options
Diffstat (limited to 'TAO/CIAO/ciao/NodeApp_CB_Impl.cpp')
-rw-r--r-- | TAO/CIAO/ciao/NodeApp_CB_Impl.cpp | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/TAO/CIAO/ciao/NodeApp_CB_Impl.cpp b/TAO/CIAO/ciao/NodeApp_CB_Impl.cpp new file mode 100644 index 00000000000..24578aa664c --- /dev/null +++ b/TAO/CIAO/ciao/NodeApp_CB_Impl.cpp @@ -0,0 +1,70 @@ +// $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)) +{ + ACE_DECLARE_NEW_CORBA_ENV; + ACE_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 ()); + ACE_TRY_CHECK; + this->properties_ = tmp; + } + ACE_CATCHANY + { + ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, + "NodeApp_CB_Impl::Constructor\t\n"); + ACE_RE_THROW; + } + ACE_ENDTRY; + ACE_CHECK; +} + +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_ENV_ARG_DECL_NOT_USED) + 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 ()); +} |