summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2005-05-03 18:08:57 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2005-05-03 18:08:57 +0000
commit63959c1867c38c7d6fb2bb23fc70c2ab790c3dea (patch)
treeaf2293b8a07b79c9b1d899e751a4c0961251ea5c
parent482632d6e750a3ac43a629a89d9bd2610ad6b275 (diff)
downloadATCD-63959c1867c38c7d6fb2bb23fc70c2ab790c3dea.tar.gz
ChangeLogTag: Tue May 3 13:05:44 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r--TAO/CIAO/CIDLC/ServantSourceGenerator.cpp72
-rw-r--r--TAO/CIAO/ChangeLog9
2 files changed, 52 insertions, 29 deletions
diff --git a/TAO/CIAO/CIDLC/ServantSourceGenerator.cpp b/TAO/CIAO/CIDLC/ServantSourceGenerator.cpp
index 69bb5e5612f..303747c3472 100644
--- a/TAO/CIAO/CIDLC/ServantSourceGenerator.cpp
+++ b/TAO/CIAO/CIDLC/ServantSourceGenerator.cpp
@@ -2504,33 +2504,41 @@ namespace
<< " >" << endl
<< "MACRO_MADNESS_TYPEDEF;" << endl;
+ os << "ACE_CString obj_id (this->ins_name_);"
+ << "obj_id += \"_" << p.name () << "\";" << endl;
+
os << "ACE_NEW_THROW_EX ( " << endl
- << "tmp," << endl
- << "MACRO_MADNESS_TYPEDEF (" << endl
- << "this->ins_name_," << endl
- << "\"" << p.name () << "\"," << endl
- << "CIAO::Port_Activator::Facet," << endl
- << "0," << endl
- << "this->context_," << endl
- << "this)," << endl
- << "CORBA::NO_MEMORY ());" << endl;
+ << " tmp," << endl
+ << " MACRO_MADNESS_TYPEDEF (" << endl
+ << " obj_id.c_str ()," << endl
+ << " \"" << p.name () << "\"," << endl
+ << " CIAO::Port_Activator::Facet," << endl
+ << " 0," << endl
+ << " this->context_," << endl
+ << " this)," << endl
+ << " CORBA::NO_MEMORY ());" << endl;
os << "CIAO::Servant_Activator *sa = " << endl
<< "this->container_->ports_servant_activator ();" << endl
<< "if (!sa->register_port_activator (tmp))" << endl
<< "{"
- << "return 0;" << endl
+ << "return ";
+
+ Traversal::ProviderData::belongs (p, belongs_);
+
+ os << "::_nil ();"
<< "}";
os << "::CORBA::Object_var obj =" << endl
- << "this->container_->generate_reference (" << endl
- << "this->ins_name_," << endl;
+ << " this->container_->generate_reference (" << endl
+ << " obj_id.c_str ()," << endl
+ << " ";
Traversal::ProviderData::belongs (p, repo_id_belongs_);
os << "," << endl
- << "CIAO::Container::Facet_Consumer" << endl
- << STRS[ENV_ARG] << ");"
+ << " CIAO::Container::Facet_Consumer" << endl
+ << " " << STRS[ENV_ARG] << ");"
<< STRS[ACE_CR] << " (";
Traversal::ProviderData::belongs (p, belongs_);
@@ -2829,52 +2837,58 @@ namespace
<< " > *tmp = 0;" << endl
<< "typedef CIAO::Port_Activator_T<" << endl;
- os << scope_.name () << "_Servant::";
+ os << " " << scope_.name () << "_Servant::";
Traversal::ConsumerData::belongs (c, simple_belongs_);
os << "Consumer_" << c.name ()
<< "_Servant," << endl
- << c.scoped_name ().scope_name ().scope_name ()
+ << " " << c.scoped_name ().scope_name ().scope_name ()
<< "::CCM_"
<< c.scoped_name ().scope_name ().simple_name ()
<< "," << endl
- << c.scoped_name ().scope_name ().scope_name () << "::CCM_"
+ << " " << c.scoped_name ().scope_name ().scope_name () << "::CCM_"
<< c.scoped_name ().scope_name ().simple_name ()
<< "_Context, " << endl
- << scope_.name () << "_Servant"
- << " > " << endl
- << " MACRO_MADNESS_TYPEDEF;"
- << endl;
+ << " " << scope_.name () << "_Servant" << endl
+ << " >" << endl
+ << "MACRO_MADNESS_TYPEDEF;" << endl;
+
+ os << "ACE_CString obj_id (this->ins_name_);"
+ << "obj_id += \"_" << c.name () << "\";" << endl;
os << "ACE_NEW_THROW_EX ( " << endl
<< " tmp," << endl
<< " MACRO_MADNESS_TYPEDEF (" << endl
- << " this->ins_name_," << endl
+ << " obj_id.c_str ()," << endl
<< " \"" << c.name () << "\"," << endl
<< " CIAO::Port_Activator::Sink," << endl
<< " this->executor_.in ()," << endl
<< " this->context_," << endl
<< " this)," << endl
- << " CORBA::NO_MEMORY ());" << endl << endl;
+ << " CORBA::NO_MEMORY ());" << endl;
os << "CIAO::Servant_Activator *sa = " << endl
<< "this->container_->ports_servant_activator ();" <<endl
<< "if (!sa->register_port_activator (tmp))" << endl
<< "{"
- << "return 0;" << endl
+ << "return ";
+
+ Traversal::ConsumerData::belongs (c, belongs_);
+
+ os << "Consumer::_nil ();"
<< "}";
os << "::CORBA::Object_var obj =" << endl
- << "this->container_->generate_reference (" << endl
- << " this->ins_name_," << endl
- << " ";
+ << " this->container_->generate_reference (" << endl
+ << " obj_id.c_str ()," << endl
+ << " ";
Traversal::ConsumerData::belongs (c, repo_id_belongs_);
os << "," << endl
- << " CIAO::Container::Facet_Consumer" << endl
- << " " << STRS[ENV_ARG] << ");"
+ << " CIAO::Container::Facet_Consumer" << endl
+ << " " << STRS[ENV_ARG] << ");"
<< STRS[ACE_CR] << " (";
Traversal::ConsumerData::belongs (c, belongs_);
diff --git a/TAO/CIAO/ChangeLog b/TAO/CIAO/ChangeLog
index 211665b2f1e..dfef1fd219a 100644
--- a/TAO/CIAO/ChangeLog
+++ b/TAO/CIAO/ChangeLog
@@ -1,3 +1,12 @@
+Tue May 3 13:05:44 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * CIDLC/ServantSourceGenerator.cpp:
+
+ Changed the generated string (used for object id) which is passed
+ to the port activator constructor and to generate_reference() to
+ be a concatentation of the component instance name and the port
+ name, to ensure uniqueness in any use case.
+
Mon May 2 07:19:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
* tools/RTComponentServer/RTConfig_Manager.cpp: