summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbala <balanatarajan@users.noreply.github.com>2004-11-23 16:44:34 +0000
committerbala <balanatarajan@users.noreply.github.com>2004-11-23 16:44:34 +0000
commite72c120de7b11f9eeb735bd9e2e72fbbee8bd89c (patch)
tree013969f9eef193e938239ef8b571811404ba9db6
parent1ee4d7cecd9d78a292ec17a036336913dea7e28f (diff)
downloadATCD-e72c120de7b11f9eeb735bd9e2e72fbbee8bd89c.tar.gz
*** empty log message ***
-rw-r--r--TAO/CIAO/DAnCE/ciao/Home_Servant_Impl_T.cpp81
-rw-r--r--TAO/CIAO/DAnCE/ciao/Home_Servant_Impl_T.h17
-rw-r--r--TAO/CIAO/DAnCE/ciao/Servant_Impl_Base.cpp13
-rw-r--r--TAO/CIAO/DAnCE/ciao/Servant_Impl_T.cpp5
4 files changed, 68 insertions, 48 deletions
diff --git a/TAO/CIAO/DAnCE/ciao/Home_Servant_Impl_T.cpp b/TAO/CIAO/DAnCE/ciao/Home_Servant_Impl_T.cpp
index 5719b35f507..daf454520bb 100644
--- a/TAO/CIAO/DAnCE/ciao/Home_Servant_Impl_T.cpp
+++ b/TAO/CIAO/DAnCE/ciao/Home_Servant_Impl_T.cpp
@@ -7,8 +7,8 @@
namespace CIAO
{
- template <typename BASE_SKEL,
- typename EXEC,
+ template <typename BASE_SKEL,
+ typename EXEC,
typename EXEC_VAR,
typename COMP,
typename COMP_VAR,
@@ -31,8 +31,8 @@ namespace CIAO
{
}
- template <typename BASE_SKEL,
- typename EXEC,
+ template <typename BASE_SKEL,
+ typename EXEC,
typename EXEC_VAR,
typename COMP,
typename COMP_VAR,
@@ -48,8 +48,12 @@ namespace CIAO
COMP_EXEC_VAR,
COMP_SVNT>::~Home_Servant_Impl (void)
{
- const obj_iterator end (this->objref_map_.end ());
- for (obj_iterator iter (this->objref_map_.begin ());
+ // @@ JAI if you have tyedefed something, please use all CAPS.
+ const obj_iterator end =
+ this->objref_map_.end ();
+
+ for (obj_iterator iter =
+ this->objref_map_.begin ();
iter != end; ++iter)
{
this->remove_component ((*iter).int_id_);
@@ -58,8 +62,8 @@ namespace CIAO
// Operations for CCMHome interface.
- template <typename BASE_SKEL,
- typename EXEC,
+ template <typename BASE_SKEL,
+ typename EXEC,
typename EXEC_VAR,
typename COMP,
typename COMP_VAR,
@@ -89,32 +93,45 @@ namespace CIAO
Components::CCMObject_var ccm_obj_ptr;
COMP_SVNT *servant = 0;
- if (objref_map_.unbind (oid.in (), ccm_obj_ptr) == 0)
- {
- COMP_VAR _ciao_comp = COMP::_narrow (ccm_obj_ptr
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
- if (CORBA::is_nil (_ciao_comp.in ()))
+ if (objref_map_.unbind (oid.in (), ccm_obj_ptr) != 0)
{
+ // @@ JAI do error handling like printing out debug statements
+ // etc.
+ return;
+ }
+
+ COMP_VAR _ciao_comp =
+ COMP::_narrow (ccm_obj_ptr
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+
+ if (CORBA::is_nil (_ciao_comp.in ()))
+ {
+ // @@ Jai, This should not be thrown by applications like
+ // this. Try a beter one, mostly CCM specific.
ACE_THROW (CORBA::INTERNAL ());
}
- _ciao_comp->remove (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
- if (component_map_.unbind (oid.in (), servant) == 0)
- {
- PortableServer::ServantBase_var safe (servant);
- servant->_ciao_passivate (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
- }
+ // @@ Jai, could you please add a line of documentation to say
+ // what this is supposed to be doing?
+ _ciao_comp->remove (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+
+ if (component_map_.unbind (oid.in (), servant) == 0)
+ {
+
+ PortableServer::ServantBase_var safe (servant);
+ servant->_ciao_passivate (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+ }
}
}
// Operations for keyless home interface.
- template <typename BASE_SKEL,
- typename EXEC,
+ template <typename BASE_SKEL,
+ typename EXEC,
typename EXEC_VAR,
typename COMP,
typename COMP_VAR,
@@ -140,8 +157,8 @@ namespace CIAO
// Operations for implicit home interface.
- template <typename BASE_SKEL,
- typename EXEC,
+ template <typename BASE_SKEL,
+ typename EXEC,
typename EXEC_VAR,
typename COMP,
typename COMP_VAR,
@@ -183,8 +200,8 @@ namespace CIAO
// CIAO-specific operations.
- template <typename BASE_SKEL,
- typename EXEC,
+ template <typename BASE_SKEL,
+ typename EXEC,
typename EXEC_VAR,
typename COMP,
typename COMP_VAR,
@@ -205,7 +222,7 @@ namespace CIAO
)
ACE_THROW_SPEC ((CORBA::SystemException))
{
- CORBA::Object_var hobj =
+ CORBA::Object_var hobj =
this->container_->get_objref (this
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (COMP::_nil ());
@@ -240,7 +257,7 @@ namespace CIAO
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN (Components::CCMObject::_nil ());
- this->objref_map_.bind (oid.in (),
+ this->objref_map_.bind (oid.in (),
Components::CCMObject::_duplicate (ccmobjref.in ()));
if (this->component_map_.bind (oid.in (), svt) == 0)
@@ -251,8 +268,8 @@ namespace CIAO
return ho._retn ();
}
- template <typename BASE_SKEL,
- typename EXEC,
+ template <typename BASE_SKEL,
+ typename EXEC,
typename EXEC_VAR,
typename COMP,
typename COMP_VAR,
diff --git a/TAO/CIAO/DAnCE/ciao/Home_Servant_Impl_T.h b/TAO/CIAO/DAnCE/ciao/Home_Servant_Impl_T.h
index 80e3489b71d..241f6e71338 100644
--- a/TAO/CIAO/DAnCE/ciao/Home_Servant_Impl_T.h
+++ b/TAO/CIAO/DAnCE/ciao/Home_Servant_Impl_T.h
@@ -40,8 +40,8 @@ namespace CIAO
* This class implements operations
* common to all generated home servants.
*/
- template <typename BASE_SKEL,
- typename EXEC,
+ template <typename BASE_SKEL,
+ typename EXEC,
typename EXEC_VAR,
typename COMP,
typename COMP_VAR,
@@ -56,9 +56,9 @@ namespace CIAO
public:
Home_Servant_Impl (EXEC * exe,
Session_Container * c);
-
+
virtual ~Home_Servant_Impl (void);
-
+
// Operations for CCMHome interface.
virtual void
@@ -66,7 +66,7 @@ namespace CIAO
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException,
Components::RemoveFailure));
-
+
// Operations for keyless home interface.
virtual ::Components::CCMObject_ptr
@@ -88,7 +88,7 @@ namespace CIAO
_ciao_activate_component (COMP_EXEC *exe
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
ACE_THROW_SPEC ((CORBA::SystemException));
-
+
void
_ciao_passivate_component (COMP *comp
ACE_ENV_ARG_DECL_WITH_DEFAULTS)
@@ -97,6 +97,10 @@ namespace CIAO
protected:
EXEC_VAR executor_;
+
+ // @@ Jai, why do you need two maps? Can't you derive one from the
+ // other? Its a waste of memory to do TWO things if it can be done
+ // by one.
ACE_Hash_Map_Manager_Ex<PortableServer::ObjectId,
COMP_SVNT *,
TAO_ObjectId_Hash,
@@ -124,4 +128,3 @@ namespace CIAO
#include /**/ "ace/post.h"
#endif /* CIAO_HOME_SERVANT_IMPL_T_H */
-
diff --git a/TAO/CIAO/DAnCE/ciao/Servant_Impl_Base.cpp b/TAO/CIAO/DAnCE/ciao/Servant_Impl_Base.cpp
index 6b63ff21788..3a293d042b3 100644
--- a/TAO/CIAO/DAnCE/ciao/Servant_Impl_Base.cpp
+++ b/TAO/CIAO/DAnCE/ciao/Servant_Impl_Base.cpp
@@ -61,16 +61,17 @@ namespace CIAO
ACE_THROW_SPEC ((CORBA::SystemException,
Components::RemoveFailure))
{
+ CORBA::Object_var objref =
+ this->container_->get_objref (this);
- CORBA::Object_var objref = this->container_->get_objref (this);
- Components::CCMObject_var ccmobjref =
+ Components::CCMObject_var ccmobjref =
Components::CCMObject::_narrow (objref.in ()
ACE_ENV_ARG_PARAMETER);
PortableServer::ObjectId_var oid;
- this->container_->uninstall_component
- (ccmobjref.in (),
- oid.out ()
- ACE_ENV_ARG_PARAMETER);
+
+ this->container_->uninstall_component ( ccmobjref.in (),
+ oid.out ()
+ ACE_ENV_ARG_PARAMETER);
}
::Components::ConnectionDescriptions *
diff --git a/TAO/CIAO/DAnCE/ciao/Servant_Impl_T.cpp b/TAO/CIAO/DAnCE/ciao/Servant_Impl_T.cpp
index 4e39010461f..045d44b0040 100644
--- a/TAO/CIAO/DAnCE/ciao/Servant_Impl_T.cpp
+++ b/TAO/CIAO/DAnCE/ciao/Servant_Impl_T.cpp
@@ -209,6 +209,7 @@ namespace CIAO
)
ACE_THROW_SPEC ((CORBA::SystemException))
{
+ // @@ Jai, could you please see why this is required?
::Components::SessionComponent_var temp =
::Components::SessionComponent::_narrow (
this->executor_.in ()
@@ -217,9 +218,7 @@ namespace CIAO
ACE_CHECK;
if (! ::CORBA::is_nil (temp.in ()))
- {
- temp->ccm_passivate (ACE_ENV_SINGLE_ARG_PARAMETER);
- }
+ temp->ccm_passivate (ACE_ENV_SINGLE_ARG_PARAMETER);
}
}