diff options
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_component/servant_svs.cpp')
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_component/servant_svs.cpp | 28 |
1 files changed, 20 insertions, 8 deletions
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 f099df71945..d86de6b4ae1 100644 --- a/TAO/TAO_IDL/be/be_visitor_component/servant_svs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_component/servant_svs.cpp @@ -1,4 +1,3 @@ - //============================================================================= /** * @file servant_svs.cpp @@ -12,6 +11,7 @@ * @author Jeff Parsons */ //============================================================================= +#include <be_helper.h> be_visitor_servant_svs::be_visitor_servant_svs (be_visitor_context *ctx) : be_visitor_component_scope (ctx), @@ -308,13 +308,25 @@ be_visitor_servant_svs::visit_provides (be_provides *node) << "PortableServer::POA_var POA = cnt_safe->the_port_POA ();" << be_nl << "::CORBA::Object_var tmp =" << be_idt_nl << "this->get_facet_executor (\"" << port_name << "\");"<< be_uidt_nl << be_nl - << "::CIAO_FACET" << prefix_connector - << scope->flat_name () << "::" << lname - << "_Servant *" << port_name << "_servant_impl = " << be_idt_nl - << "new ::CIAO_FACET" << prefix_connector - << scope->flat_name () << "::" << lname - << "_Servant ("<< global << sname << "::CCM_" << lname << "::_narrow (tmp.in())," << be_nl - << "this->context_);" << be_uidt_nl << be_nl + << global << sname << "::CCM_" << lname << "_var tmp_var = " << be_idt_nl + << global << sname <<"::CCM_" << lname + << "::_narrow (tmp.in());" << be_uidt_nl << be_nl + << "typedef " << global << "CIAO_FACET" << prefix_connector + << scope->flat_name () << "::" << obj->local_name () << "_Servant_T <" << be_idt_nl + << "POA_" << sname << global << obj->local_name () + << "," << be_nl << global << sname <<"::CCM_" << lname << "," << be_nl + << global << "Components::" << be_global->ciao_container_type () + << "Context>" << be_idt_nl << lname + << "_type;" << be_uidt_nl << be_uidt_nl + << lname << "_type *" << port_name << "_servant_impl = 0;" << be_nl + << "ACE_NEW_THROW_EX (" << be_idt_nl + << port_name << "_servant_impl," << be_nl + << lname << "_type (" << be_idt_nl + << "tmp_var.in(), " << be_nl + << "this->context_)," << be_uidt_nl + << "CORBA::NO_MEMORY ());" << be_uidt_nl << be_nl + << "PortableServer::ServantBase_var safe_base_servant (" + << port_name << "_servant_impl);" << be_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(" << port_name << "_servant_oid.in()," |