diff options
author | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2005-05-03 18:08:57 +0000 |
---|---|---|
committer | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2005-05-03 18:08:57 +0000 |
commit | 63959c1867c38c7d6fb2bb23fc70c2ab790c3dea (patch) | |
tree | af2293b8a07b79c9b1d899e751a4c0961251ea5c | |
parent | 482632d6e750a3ac43a629a89d9bd2610ad6b275 (diff) | |
download | ATCD-63959c1867c38c7d6fb2bb23fc70c2ab790c3dea.tar.gz |
ChangeLogTag: Tue May 3 13:05:44 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r-- | TAO/CIAO/CIDLC/ServantSourceGenerator.cpp | 72 | ||||
-rw-r--r-- | TAO/CIAO/ChangeLog | 9 |
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: |