summaryrefslogtreecommitdiff
path: root/TAO/CIAO/tools/XML_Helpers/Assembly_Handlers.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/CIAO/tools/XML_Helpers/Assembly_Handlers.cpp')
-rw-r--r--TAO/CIAO/tools/XML_Helpers/Assembly_Handlers.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/TAO/CIAO/tools/XML_Helpers/Assembly_Handlers.cpp b/TAO/CIAO/tools/XML_Helpers/Assembly_Handlers.cpp
index e69a00efa33..3b1723dc964 100644
--- a/TAO/CIAO/tools/XML_Helpers/Assembly_Handlers.cpp
+++ b/TAO/CIAO/tools/XML_Helpers/Assembly_Handlers.cpp
@@ -400,6 +400,22 @@ CIAO::Partitioning_Handler::endElement (const ACEXML_Char *namespaceURI,
this->home_placement_->insert_tail (this->comp_instance_);
this->comp_instance_ = 0;
}
+ else if (ACE_OS::strcmp (qName, "registercomponent") == 0)
+ {
+ this->comp_instance_->register_info_.enqueue_tail (this->comp_register_info_);
+ }
+ else if (ACE_OS::strcmp (qName, "providesidentifier") == 0)
+ {
+ this->comp_register_info_.type_ =
+ CIAO::Assembly_Placement::componentinstantiation::PROVIDESID;
+ this->comp_register_info_.port_id_ = this->characters_.c_str ();
+ }
+ else if (ACE_OS::strcmp (qName, "consumesidentifier") == 0)
+ {
+ this->comp_register_info_.type_ =
+ CIAO::Assembly_Placement::componentinstantiation::CONSUMESID;
+ this->comp_register_info_.port_id_ = this->characters_.c_str ();
+ }
break;
default:
@@ -531,10 +547,43 @@ CIAO::Partitioning_Handler::startElement (const ACEXML_Char *namespaceURI,
ACEXML_CHECK;
}
+ else if (ACE_OS::strcmp (qName, "registerwithhomefinder") == 0 ||
+ ACE_OS::strcmp (qName, "registerwithnaming") == 0)
+ {
+ const char *name;
+ CIAO::XML_Utils::get_single_attribute ("name",
+ name,
+ atts
+ ACEXML_ENV_ARG_PARAMETER);
+ ACEXML_CHECK;
+
+ CIAO::Assembly_Placement::homeplacement::Register_Info reg_info;
+ if (ACE_OS::strcmp (qName, "registerwithhomefinder") == 0)
+ reg_info.type_ = CIAO::Assembly_Placement::homeplacement::HOMEFINDER;
+ else
+ reg_info.type_ = CIAO::Assembly_Placement::homeplacement::NAMING;
+ reg_info.name_ = name;
+ this->home_placement_->register_info_.enqueue_tail (reg_info);
+ }
// @@ Ignore the rest of element in home placement for now.
break;
case COMPONENT_INSTANTIATION:
+ if (ACE_OS::strcmp (qName, "registercomponent") == 0)
+ {
+ this->comp_register_info_.reset ();
+ }
+ else if (ACE_OS::strcmp (qName, "registerwithnaming") == 0)
+ {
+ const char *name;
+ CIAO::XML_Utils::get_single_attribute ("name",
+ name,
+ atts
+ ACEXML_ENV_ARG_PARAMETER);
+ ACEXML_CHECK;
+
+ this->comp_register_info_.name_ = name;
+ }
break;