diff options
author | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-08-05 22:35:04 +0000 |
---|---|---|
committer | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-08-05 22:35:04 +0000 |
commit | e3dd3e7196f55f271c301b9f84c2bb18d16f496b (patch) | |
tree | d2b475c6fbee21c720424e3366170330ee77df6a /TAO/orbsvcs/orbsvcs/IFRService/ComponentContainer_i.cpp | |
parent | 857d62bb71d3fdd5b6223996a8d5dbd09e39394d (diff) | |
download | ATCD-e3dd3e7196f55f271c301b9f84c2bb18d16f496b.tar.gz |
ChangeLogTag: Tue Aug 5 17:31:17 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/IFRService/ComponentContainer_i.cpp')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/IFRService/ComponentContainer_i.cpp | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/TAO/orbsvcs/orbsvcs/IFRService/ComponentContainer_i.cpp b/TAO/orbsvcs/orbsvcs/IFRService/ComponentContainer_i.cpp index 6491665a684..835135a0c88 100644 --- a/TAO/orbsvcs/orbsvcs/IFRService/ComponentContainer_i.cpp +++ b/TAO/orbsvcs/orbsvcs/IFRService/ComponentContainer_i.cpp @@ -5,6 +5,7 @@ #include "Repository_i.h" #include "InterfaceDef_i.h" #include "ComponentDef_i.h" +#include "ValueDef_i.h" #include "IFR_Service_Utils.h" ACE_RCSID (IFRService, @@ -361,11 +362,33 @@ TAO_ComponentContainer_i::create_event_i ( if (!CORBA::is_nil (base_value)) { - char *base_value_path = + const char *base_path = TAO_IFR_Service_Utils::reference_to_path (base_value); + + // Get the servant's key into the temporary key holder, because + // the name clash checker for base valuetypes is static, and has + // no other way to know about a specific key. + this->repo_->config ()->expand_path ( + this->repo_->root_key (), + base_path, + TAO_IFR_Service_Utils::tmp_key_, + 0 + ); + TAO_IFR_Service_Utils::name_exists (&TAO_ValueDef_i::name_clash, + new_key, + this->repo_, + CORBA::dk_Value + ACE_ENV_ARG_PARAMETER); + ACE_CHECK_RETURN (path); + + ACE_TString base_value_id; + this->repo_->config ()->get_string_value (TAO_IFR_Service_Utils::tmp_key_, + "id", + base_value_id); + this->repo_->config ()->set_string_value (new_key, "base_value", - base_value_path); + base_value_id); } CORBA::ULong length = abstract_base_values.length (); @@ -404,6 +427,9 @@ TAO_ComponentContainer_i::create_event_i ( 1, supported_key); + this->repo_->config ()->set_integer_value (supported_key, + "count", + length); char *supported_path = 0; for (i = 0; i < length; ++i) |