summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarijke Hengstmengel <MHengstmengel@users.noreply.github.com>2011-10-28 11:39:05 +0000
committerMarijke Hengstmengel <MHengstmengel@users.noreply.github.com>2011-10-28 11:39:05 +0000
commit44357e0fd657a3f458486c97d8825e9b47d63cbc (patch)
treee56eed0e32c024f9ca8830be7517e7c0091ebdb6
parent0b3dc7d7ab7e7861c17cb40fc2f2503de815d853 (diff)
downloadATCD-44357e0fd657a3f458486c97d8825e9b47d63cbc.tar.gz
Fri Oct 28 11:37:40 UTC 2011 Marijke Hengstmengel <mhengstmengel@remedy.nl>
* TAO_IDL/be/be_visitor_component/servant_svs.cpp: Changes for removing activators for CIAO consumers
-rw-r--r--TAO/ChangeLog.BRANCH5
-rw-r--r--TAO/TAO_IDL/be/be_visitor_component/servant_svs.cpp69
2 files changed, 37 insertions, 37 deletions
diff --git a/TAO/ChangeLog.BRANCH b/TAO/ChangeLog.BRANCH
index eb017b4ac83..f1246067dcf 100644
--- a/TAO/ChangeLog.BRANCH
+++ b/TAO/ChangeLog.BRANCH
@@ -1,3 +1,8 @@
+Fri Oct 28 11:37:40 UTC 2011 Marijke Hengstmengel <mhengstmengel@remedy.nl>
+
+ * TAO_IDL/be/be_visitor_component/servant_svs.cpp:
+ Changes for removing activators for CIAO consumers
+
Wed Oct 26 07:18:40 UTC 2011 Marijke Hengstmengel <mhengstmengel@remedy.nl>
* TAO_IDL/be/be_codegen.cpp:
diff --git a/TAO/TAO_IDL/be/be_visitor_component/servant_svs.cpp b/TAO/TAO_IDL/be/be_visitor_component/servant_svs.cpp
index f2d53e0ce83..3935cc192e6 100644
--- a/TAO/TAO_IDL/be/be_visitor_component/servant_svs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_component/servant_svs.cpp
@@ -585,56 +585,51 @@ be_visitor_servant_svs::visit_consumes (be_consumes *node)
<< node_->local_name () << "_Servant::setup_consumer_"
<< port_name << "_i (void)" << be_nl
<< "{" << be_idt_nl
- << "typedef" << be_idt_nl
- << "::CIAO::Port_Activator_T<" << be_idt_nl
- << node_->local_name () << "_Servant::" << lname
- << "Consumer_" << port_name << "_Servant," << be_nl
- << global << comp_sname << "::CCM_" << comp_lname
- << "," << be_nl
- << global << comp_sname << "::CCM_" << comp_lname
- << "_Context," << be_nl
- << node_->local_name () << "_Servant>" << be_uidt_nl
- << "MACRO_MADNESS_TYPEDEF;" << be_uidt_nl << be_nl
- << "MACRO_MADNESS_TYPEDEF * tmp = 0;" << be_nl
<< "ACE_CString obj_id (this->ins_name_);" << be_nl
<< "obj_id += \"_" << port_name << "\";" << be_nl_2
- << "ACE_NEW_THROW_EX (" << be_idt_nl
- << "tmp," << be_nl
- << "MACRO_MADNESS_TYPEDEF (" << be_idt_nl
- << "obj_id.c_str ()," << be_nl
- << "\"" << port_name << "\"," << be_nl
- << "::CIAO::Port_Activator_Types::SINK," << be_nl
- << "this->executor_.in ()," << be_nl
- << "this->context_," << be_nl
- << "this)," << be_uidt_nl
- << "::CORBA::NO_MEMORY ());" << be_uidt_nl << be_nl
- << "::CIAO::Port_Activator_var pa = tmp;" << be_nl_2
- << "::CIAO::Servant_Activator_var sa =" << be_idt_nl
- << "this->container_->ports_servant_activator ();"
- << be_uidt_nl << be_nl
- << "if (sa->register_port_activator (pa.in ()))"
- << be_idt_nl
- << "{" << be_idt_nl
- << "::CORBA::Object_var obj =" << be_idt_nl
- << "this->container_->generate_reference (" << be_idt_nl
+
+ << "::CIAO::Container_var cnt_safe =" << be_idt_nl
+ << "::CIAO::Container::_duplicate ("
+ << "this->container_.in ());" << be_uidt_nl << be_nl
+ << "if (::CORBA::is_nil (cnt_safe.in ()))" << be_idt_nl
+ << "{" << be_idt_nl << "throw ::CORBA::INV_OBJREF ();" << be_uidt_nl
+ << "}" << be_uidt_nl << be_nl
+ << "PortableServer::POA_var POA = cnt_safe->the_port_POA ();" << be_nl
+ << node_->local_name () << "_Servant::" << lname
+ << "Consumer_" << port_name << "_Servant *"
+ << port_name << "_servant_impl = " << be_idt_nl
+ << "new " << node_->local_name () << "_Servant::" << lname
+ << "Consumer_" << port_name << "_Servant (" << be_idt_nl
+ << " this->executor_, this->context_);" << be_uidt_nl << be_uidt_nl << be_nl
+
+ << "PortableServer::ObjectId_var " << port_name << "_servant_oid =" << be_idt_nl
+ << "PortableServer::string_to_ObjectId (obj_id.c_str());" << be_uidt_nl << be_nl
+
+ << "POA->activate_object_with_id(" << be_idt_nl
+ << port_name << "_servant_oid.in()," << be_nl
+ << "dynamic_cast<TAO_ServantBase *>("
+ << port_name << "_servant_impl));" << be_uidt_nl << be_nl
+
+ << "::CORBA::Object_var " << port_name << "_servant_impl_obj = " << be_idt_nl
+ << "cnt_safe->generate_reference ( " << be_idt_nl
<< "obj_id.c_str ()," << be_nl
<< "\"";
- ACE_CString work (obj->repoID ());
- ACE_CString result (work.substr (0, work.rfind (':')));
- result += "Consumer:1.0";
+ ACE_CString work (obj->repoID ());
+ ACE_CString result (work.substr (0, work.rfind (':')));
+ result += "Consumer:1.0";
- os_ << result.c_str ();
+ os_ << result.c_str ();
- os_ << "\"," << be_nl
+ os_ << "\"," << be_nl
<< "::CIAO::Container_Types::FACET_CONSUMER_t);"
<< be_uidt_nl << be_uidt_nl
<< "::Components::EventConsumerBase_var ecb =" << be_idt_nl
- << "::Components::EventConsumerBase::_narrow (obj.in ());"
+ << "::Components::EventConsumerBase::_narrow ("
+ << port_name << "_servant_impl_obj.in ());"
<< be_uidt_nl << be_nl
<< "this->add_consumer (\"" << port_name << "\", ecb.in ());"
<< be_uidt_nl
- << "}" << be_uidt_nl << be_uidt_nl
<< "}";
return 0;