summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjai <jai@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2004-11-26 04:19:59 +0000
committerjai <jai@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2004-11-26 04:19:59 +0000
commit7cc0b46aefc7f67c804383c2111b7d9067f1162e (patch)
tree4ae43430def4f78df048d6f6e85b545f7008c80c
parent2da130704ab145a7b835269de2b946ccba4ab25c (diff)
downloadATCD-7cc0b46aefc7f67c804383c2111b7d9067f1162e.tar.gz
*** empty log message ***
-rw-r--r--TAO/CIAO/DAnCE/ciao/Dynamic_Component_Servant_Base.h2
-rw-r--r--TAO/CIAO/DAnCE/ciao/Dynamic_Component_Servant_T.cpp14
-rw-r--r--TAO/CIAO/DAnCE/ciao/Dynamic_Component_Servant_T.h2
-rw-r--r--TAO/CIAO/DAnCE/ciao/Swapping_Servant_Home_Impl_T.cpp16
4 files changed, 23 insertions, 11 deletions
diff --git a/TAO/CIAO/DAnCE/ciao/Dynamic_Component_Servant_Base.h b/TAO/CIAO/DAnCE/ciao/Dynamic_Component_Servant_Base.h
index 4ca372d803b..fff68f5965d 100644
--- a/TAO/CIAO/DAnCE/ciao/Dynamic_Component_Servant_Base.h
+++ b/TAO/CIAO/DAnCE/ciao/Dynamic_Component_Servant_Base.h
@@ -40,6 +40,8 @@ namespace CIAO
create (PortableServer::ObjectId &oid) = 0;
virtual void destroy (PortableServer::ObjectId &oid) = 0;
+
+ virtual void update_destroy_count () = 0;
protected:
Session_Container *container_;
diff --git a/TAO/CIAO/DAnCE/ciao/Dynamic_Component_Servant_T.cpp b/TAO/CIAO/DAnCE/ciao/Dynamic_Component_Servant_T.cpp
index 2f4907fa8cc..2302799beda 100644
--- a/TAO/CIAO/DAnCE/ciao/Dynamic_Component_Servant_T.cpp
+++ b/TAO/CIAO/DAnCE/ciao/Dynamic_Component_Servant_T.cpp
@@ -34,6 +34,18 @@ namespace CIAO
typename EXEC,
typename EXEC_VAR,
typename COMP>
+ void Dynamic_Component_Servant<COMP_SVNT, COMP_EXEC, COMP_EXEC_VAR,
+ EXEC, EXEC_VAR, COMP>::update_destroy_count ()
+ {
+ component_removed_ = 1;
+ }
+
+ template <typename COMP_SVNT,
+ typename COMP_EXEC,
+ typename COMP_EXEC_VAR,
+ typename EXEC,
+ typename EXEC_VAR,
+ typename COMP>
Dynamic_Component_Servant<COMP_SVNT, COMP_EXEC, COMP_EXEC_VAR,
EXEC, EXEC_VAR, COMP>::~Dynamic_Component_Servant (void)
{
@@ -83,8 +95,6 @@ namespace CIAO
COMP_SVNT *svt = new COMP_SVNT(ciao_comp.in (), this->home_.in (),
this->home_servant_,
this->container_);
- ACE_DEBUG ((LM_DEBUG, "i am creating the servant\n"));
- ACE_DEBUG ((LM_DEBUG, "flag is %d\n", component_removed_));
if (component_removed_ == 1)
{
svt->ciao_preactivate ();
diff --git a/TAO/CIAO/DAnCE/ciao/Dynamic_Component_Servant_T.h b/TAO/CIAO/DAnCE/ciao/Dynamic_Component_Servant_T.h
index 4fa5f246b70..9e4c8828fc8 100644
--- a/TAO/CIAO/DAnCE/ciao/Dynamic_Component_Servant_T.h
+++ b/TAO/CIAO/DAnCE/ciao/Dynamic_Component_Servant_T.h
@@ -49,6 +49,8 @@ namespace CIAO
virtual void destroy (PortableServer::ObjectId &oid);
+ virtual void update_destroy_count ();
+
protected:
Components::EnterpriseComponent_var executor_;
Home_Servant_Impl_Base *home_servant_;
diff --git a/TAO/CIAO/DAnCE/ciao/Swapping_Servant_Home_Impl_T.cpp b/TAO/CIAO/DAnCE/ciao/Swapping_Servant_Home_Impl_T.cpp
index 0422b0f7a06..b9a8c9f2427 100644
--- a/TAO/CIAO/DAnCE/ciao/Swapping_Servant_Home_Impl_T.cpp
+++ b/TAO/CIAO/DAnCE/ciao/Swapping_Servant_Home_Impl_T.cpp
@@ -54,6 +54,8 @@ namespace CIAO
PortableServer::ObjectId_var oid =
PortableServer::string_to_ObjectId (this->obj_id_);
+ this->container_->delete_servant_map (oid);
+
for (DYNAMIC_SERVANT_MAP_ITERATOR iter =
this->dynamic_servant_map_.begin ();
iter != end; ++iter)
@@ -81,7 +83,7 @@ namespace CIAO
COMP_EXEC,
COMP_EXEC_VAR,
COMP_SVNT>::remove_component (
- ::Components::CCMObject_ptr comp
+ ::Components::CCMObject_ptr
ACE_ENV_ARG_DECL
)
ACE_THROW_SPEC ((CORBA::SystemException,
@@ -95,7 +97,6 @@ namespace CIAO
{
servant->destroy (oid);
}
- // this->container_->delete_servant_map (oid);
}
// Operations for keyless home interface.
@@ -244,14 +245,11 @@ namespace CIAO
COMP_SVNT>::update_component_map (
PortableServer::ObjectId &oid)
{
- /*
Dynamic_Component_Servant_Base *servant;
- if (dynamic_servant_map_.unbind (oid, servant) != 0)
- {
- ACE_DEBUG ((LM_DEBUG, "Invalid component object reference\n"));
- return;
- }
- */
+ if (this->dynamic_servant_map_.find (oid, servant) == 0)
+ {
+ servant->update_destroy_count ();
+ }
return;
}