diff options
Diffstat (limited to 'TAO/CIAO/CIDLC/ServantHeaderGenerator.cpp')
-rw-r--r-- | TAO/CIAO/CIDLC/ServantHeaderGenerator.cpp | 553 |
1 files changed, 335 insertions, 218 deletions
diff --git a/TAO/CIAO/CIDLC/ServantHeaderGenerator.cpp b/TAO/CIAO/CIDLC/ServantHeaderGenerator.cpp index 0678c8cccd7..8e36ceadaa4 100644 --- a/TAO/CIAO/CIDLC/ServantHeaderGenerator.cpp +++ b/TAO/CIAO/CIDLC/ServantHeaderGenerator.cpp @@ -132,7 +132,7 @@ namespace virtual void post (Type&) { - os << ";" << endl; + os << ";" << endl << endl; } virtual void @@ -338,7 +338,7 @@ namespace traverse (UnconstrainedInterface& i) { if (i.context ().count ("facet_hdr_gen")) return; - + ScopedName scoped (i.scoped_name ()); Name stripped (scoped.begin () + 1, scoped.end ()); @@ -416,7 +416,6 @@ namespace << "_get_component (" << endl << STRS[ENV_SNGL_HDR] << ")" << endl << STRS[EXCP_SNGL] << ";" << endl - << endl << "protected:" << endl << "// Facet executor." << endl << i.scoped_name ().scope_name ()<< "::CCM_" << i.name () @@ -424,14 +423,14 @@ namespace << "// Context object." << endl << "::Components::CCMContext_var ctx_;" << endl << "};"; - - os << "typedef " << ctx.export_macro () << " " - << i.name () << "_Servant_T<int> " + + os << "typedef " << ctx.export_macro () << " " + << i.name () << "_Servant_T<int> " << i.name () << "_Servant;"; // Close the CIAO_GLUE namespace. os << "}"; - + i.context ().set ("facet_hdr_gen", true); } }; @@ -736,33 +735,21 @@ namespace os << STRS[GLUE_NS] << regex::perl_s (t.scoped_name ().scope_name ().str (), "/::/_/") << "{"; - - os << "class " << t.name () << "_Servant;" << endl; os << "class " << ctx.export_macro () << " " << t.name () << "_Context" << endl - << " : public virtual CIAO::Context_Impl<" << endl - << " " << t.scoped_name ().scope_name () << "::CCM_" - << t.name () << "_Context," << endl - << " " << t.name () << "_Servant," << endl - << " " << t.scoped_name () << "," << endl - << " " << t.scoped_name () << "_var" << endl - << " >" << endl + << ": public virtual " << t.scoped_name ().scope_name () << "::CCM_" + << t.name () << "_Context," + << endl + << "public virtual TAO_Local_RefCounted_Object" + << endl << "{" << "public:" << endl; os << "// We will allow the servant glue code we generate to " << "access our state." << endl - << "friend class " << t.name () << "_Servant;" << endl; - - os << "/// Hack for VC6." << endl - << "typedef CIAO::Context_Impl<" << endl - << " " << t.scoped_name ().scope_name () << "::CCM_" - << t.name () << "_Context," << endl - << " " << t.name () << "_Servant," << endl - << " " << t.scoped_name () << "," << endl - << " " << t.scoped_name () << "_var" << endl - << " > ctx_svnt_base;" << endl; + << "friend class " << t.name () << "_Servant;" + << endl; os << t.name () << "_Context (" << endl << "::Components::CCMHome_ptr home," << endl @@ -772,6 +759,55 @@ namespace os << "virtual ~" << t.name () << "_Context (void);" << endl; + os << "// Operations from ::Components::CCMContext." << endl << endl; + + os << "virtual ::Components::Principal_ptr" << endl + << "get_caller_principal (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl; + + os << "virtual ::Components::CCMHome_ptr" << endl + << "get_CCM_home (" << endl + << STRS[ENV_SNGL_HDR_NOTUSED] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl ; + + os << "virtual CORBA::Boolean" << endl + << "get_rollback_only (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IS] << "));" << endl; + + os << "virtual ::Components::Transaction::UserTransaction_ptr" << endl + << "get_user_transaction (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IS] << "));" << endl; + + os << "virtual CORBA::Boolean" << endl + << "is_caller_in_role (" << endl + << "const char *role" << endl + << STRS[ENV_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl; + + os << "virtual void" << endl + << "set_rollback_only (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IS] << "));" << endl; + + os << "// Operations from " << STRS[COMP_SC] << " interface." + << endl << endl; + + os << "virtual CORBA::Object_ptr" << endl + << "get_CCM_object (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IS] << "));" << endl; + os << "// Operations for " << t.name () << " receptacles" << " and event sources," << endl << "// defined in " << t.scoped_name ().scope_name () << "::CCM_" @@ -794,7 +830,9 @@ namespace component_emitter.traverse (t); } - os << "// CIAO-specific." << endl << endl; + os << "// CIAO-specific." << endl << endl + << "::CIAO::Session_Container *" << endl + << "_ciao_the_Container (void) const;" << endl; os << "static " << t.name () << "_Context *" << endl << "_narrow (" << endl @@ -843,6 +881,11 @@ namespace virtual void post (Type& t) { + os << "::Components::CCMHome_var home_;" << endl + << "::CIAO::Session_Container *container_;" << endl << endl + << t.name () << "_Servant *servant_;" << endl + << t.scoped_name () << "_var component_;" << endl; + // Component context class closer. os << "};"; @@ -1146,72 +1189,6 @@ namespace Traversal::Belongs belongs_; }; - struct PortsEmitterPrivate : Traversal::EmitterData, - Traversal::SingleUserData, - Traversal::MultiUserData, - Traversal::PublisherData, - Traversal::ConsumerData, - Traversal::ProviderData, - EmitterBase - { - PortsEmitterPrivate (Context& c) - : EmitterBase (c), - type_name_emitter_ (c.os ()), - simple_type_name_emitter_ (c.os ()), - stripped_type_name_emitter_ (c.os ()) - { - belongs_.node_traverser (type_name_emitter_); - simple_belongs_.node_traverser (simple_type_name_emitter_); - stripped_belongs_.node_traverser (stripped_type_name_emitter_); - } - - virtual void - traverse (SemanticGraph::Provider& p) - { - os << "::CORBA::Object_ptr" << endl - << "provide_" << p.name () << "_i (" << endl - << STRS[ENV_SNGL_HDR] << ")" << endl - << STRS[EXCP_SNGL] << ";" << endl << endl; - } - - virtual void - traverse (SemanticGraph::SingleUser& u) - { - } - - virtual void - traverse (SemanticGraph::MultiUser& u) - { - } - - virtual void - traverse (SemanticGraph::Consumer& c) - { - os << "::Components::EventConsumerBase_ptr" << endl - << "get_consumer_" << c.name () << "_i (" << endl - << STRS[ENV_SNGL_HDR] << ")" << endl - << STRS[EXCP_SNGL] << ";" << endl << endl; - } - - virtual void - traverse (SemanticGraph::Emitter& e) - { - } - - virtual void - traverse (SemanticGraph::Publisher& p) - { - } - - private: - TypeNameEmitter type_name_emitter_; - SimpleTypeNameEmitter simple_type_name_emitter_; - StrippedTypeNameEmitter stripped_type_name_emitter_; - Traversal::Belongs belongs_; - Traversal::Belongs simple_belongs_; - Traversal::Belongs stripped_belongs_; - }; - public: virtual void pre (Type& t) @@ -1227,39 +1204,35 @@ namespace << "_Servant" << endl << " : public virtual CIAO::Servant_Impl<" << endl << " POA_" << stripped << "," << endl - << " " << t.scoped_name ().scope_name () << "::CCM_" + << " " << t.scoped_name ().scope_name () << "::CCM_" << t.name () << "," << endl << " " << t.scoped_name ().scope_name () << "::CCM_" << t.name () << "_var," << endl << " " << t.name () << "_Context" << endl - << " >" << endl + << " >," << endl + << " " << STRS[INH_RCSB] << endl << "{" << "public:" << endl; - os << "/// Hack for VC6." << endl - << "typedef CIAO::Servant_Impl<" << endl - << " POA_" << stripped << "," << endl - << " " << t.scoped_name ().scope_name () << "::CCM_" + os << "/// Hack for VC6 the most sucky compiler" << endl + << "typedef CIAO::Servant_Impl<" << endl + << "POA_" << stripped << "," << endl + << " " << t.scoped_name ().scope_name () << "::CCM_" << t.name () << "," << endl - << " " << t.scoped_name ().scope_name () << "::CCM_" + << " " << t.scoped_name ().scope_name () << "::CCM_" << t.name () << "_var," << endl - << " " << t.name () << "_Context" << endl - << " > comp_svnt_base;" << endl << endl; + << " " << t.name () << "_Context" << endl + << " > our_base;" << endl; os << t.name () << "_Servant (" << endl << t.scoped_name ().scope_name () << "::CCM_" << t.name () << "_ptr executor," << endl << "::Components::CCMHome_ptr home," << endl - << "::CIAO::Session_Container *c);" << endl << endl; + << "::CIAO::Session_Container *c);" << endl; os << "virtual ~" << t.name () << "_Servant (void);" << endl << endl; - os << "virtual void" << endl - << "set_attributes (" << endl - << "const ::Components::ConfigValues &descr" << endl - << STRS[ENV_SRC] << ");" << endl << endl; - os << "// Supported operations." << endl << endl; // Generate operations for all supported interfaces. @@ -1364,6 +1337,24 @@ namespace component_emitter.traverse (t); } + os << "// Operations for Navigation interface." << endl << endl; + + os << "virtual CORBA::Object_ptr" << endl + << "provide_facet (" << endl + << "const char *name" << endl + << STRS[ENV_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IN] << "));" << endl << endl; + + os << "virtual ::Components::FacetDescriptions *" << endl + << "get_named_facets (" << endl + << "const " << STRS[COMP_NAMES] << endl + << STRS[ENV_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IN] << "));" << endl << endl; + os << "// Operations for Receptacles interface." << endl << endl; os << "virtual " << STRS[COMP_CK] << " *" << endl @@ -1390,8 +1381,37 @@ namespace << STRS[EXCP_CR] << "," << endl << STRS[EXCP_NC] << "));" << endl << endl; + os << "virtual ::Components::ConnectionDescriptions *" << endl + << "get_connections (" << endl + << "const char *name" << endl + << STRS[ENV_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IN] << "));" << endl << endl; + + os << "virtual ::Components::ReceptacleDescriptions *" << endl + << "get_all_receptacles (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl << endl; + + os << "virtual ::Components::ReceptacleDescriptions *" << endl + << "get_named_receptacles (" << endl + << "const " << STRS[COMP_NAMES] << endl + << STRS[ENV_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IN] << "));" << endl << endl; + os << "// Operations for Events interface." << endl << endl; + os << "virtual " << STRS[COMP_ECB] << "_ptr" << endl + << "get_consumer (" << endl + << "const char *sink_name" << endl + << STRS[ENV_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IN] << "));" << endl << endl; + os << "virtual " << STRS[COMP_CK] << " *" << endl << "subscribe (" << endl << "const char *publisher_name," << endl @@ -1424,39 +1444,118 @@ namespace << STRS[EXCP_AC] << "," << endl << STRS[EXCP_IC] << "));" << endl << endl; - os << "// CIAO specific operations on the servant " << endl - << "CORBA::Object_ptr" << endl - << "get_facet_executor (const char *name" << endl + os << "virtual " << STRS[COMP_ECB] << "_ptr" << endl + << "disconnect_consumer (" << endl + << "const char *source_name" << endl << STRS[ENV_HDR] << ")" << endl << STRS[EXCP_START] << endl - << STRS[EXCP_SYS]<< "));" << endl << endl; + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IN] << "," << endl + << STRS[EXCP_NC] << "));" << endl << endl; - os << "private:" << endl << endl; + os << "virtual ::Components::ConsumerDescriptions *" << endl + << "get_named_consumers (" << endl + << "const " << STRS[COMP_NAMES] << endl + << STRS[ENV_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IN] << "));" << endl << endl; - // Generate protected operations for facets and event sinks. - { - Traversal::Component component_emitter; + os << "virtual ::Components::EmitterDescriptions *" << endl + << "get_all_emitters (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl << endl; - Traversal::Inherits component_inherits; - component_inherits.node_traverser (component_emitter); + os << "virtual ::Components::EmitterDescriptions *" << endl + << "get_named_emitters(" << endl + << "const " << STRS[COMP_NAMES] << endl + << STRS[ENV_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IN] << "));" << endl << endl; - Traversal::Defines defines; - component_emitter.edge_traverser (defines); - component_emitter.edge_traverser (component_inherits); + os << "virtual ::Components::PublisherDescriptions *" << endl + << "get_all_publishers (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl << endl; - PortsEmitterProtected ports_emitter (ctx); - defines.node_traverser (ports_emitter); + os << "virtual ::Components::PublisherDescriptions *" << endl + << "get_named_publishers(" << endl + << "const " << STRS[COMP_NAMES] << endl + << STRS[ENV_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_IN] << "));" << endl << endl; - component_emitter.traverse (t); - } + os << "// Operations for CCMObject interface." << endl << endl; - os << "private:" << endl << endl - << "void" << endl - << "populate_port_tables (" << endl + os << "virtual CORBA::IRObject_ptr" << endl + << "get_component_def (" << endl << STRS[ENV_SNGL_HDR] << ")" << endl << STRS[EXCP_SNGL] << ";" << endl << endl; - // Generate private operations for ports. + os << "virtual ::Components::CCMHome_ptr" << endl + << "get_ccm_home (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl << endl; + + os << "virtual ::Components::PrimaryKeyBase *" << endl + << "get_primary_key (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_NKA] << "));" << endl << endl; + + os << "virtual void" << endl + << "configuration_complete (" << endl + << STRS[ENV_SNGL_HDR_NOTUSED] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_ICF] << "));" << endl << endl; + + os << "virtual void" << endl + << "remove (" << endl + << STRS[ENV_SNGL_HDR_NOTUSED] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_RF] << "));" << endl << endl; + + os << "virtual ::Components::ComponentPortDescription *" << endl + << "get_all_ports(" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl << endl; + + os << "// Get component implementation." << endl + << "virtual CORBA::Object_ptr" << endl + << "_get_component (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl << endl; + + os << "// CIAO-specific operations." << endl << endl; + + os << "void" << endl + << "ciao_preactivate (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl << endl; + + os << "void" << endl + << "ciao_activate (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl << endl; + + os << "void" << endl + << "ciao_postactivate (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl << endl; + + os << "/// @@NOTE: The busted operation." << endl; + + os << "void" << endl + << "_ciao_passivate (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl << endl; + + // Generate protected operations for facets and event sinks. { Traversal::Component component_emitter; @@ -1467,11 +1566,16 @@ namespace component_emitter.edge_traverser (defines); component_emitter.edge_traverser (component_inherits); - PortsEmitterPrivate ports_emitter (ctx); + PortsEmitterProtected ports_emitter (ctx); defines.node_traverser (ports_emitter); component_emitter.traverse (t); } + + os << "private:" << endl << endl + << "void populate_port_tables (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl << endl; } virtual void @@ -1687,7 +1791,7 @@ namespace { os << "," << endl; } - + private: ReturnTypeNameEmitter returns_emitter_; Traversal::Returns returns_; @@ -1705,94 +1809,15 @@ namespace os << "class " << ctx.export_macro () << " " << t.name () << "_Servant" << endl - << " : public virtual CIAO::Home_Servant_Impl<" << endl - << " POA_" << stripped << "," << endl - << " " << t.scoped_name ().scope_name () << "::CCM_" - << t.name () << "," << endl - << " " << t.scoped_name ().scope_name () << "::CCM_" - << t.name () << "_var," << endl - << " "; - - Traversal::Home::manages (t, manages_); - - os << "," << endl - << " "; - - Traversal::Home::manages (t, manages_); - - os << "_var," << endl - << " "; - - Traversal::Home::manages (t, enclosing_manages_); - - os << "::CCM_"; - - Traversal::Home::manages (t, simple_manages_); - - os << "," << endl - << " "; - - Traversal::Home::manages (t, enclosing_manages_); - - os << "::CCM_"; - - Traversal::Home::manages (t, simple_manages_); - - os << "_var," << endl - << " "; - - Traversal::Home::manages (t, simple_manages_); - - os << "_Servant" << endl - << " >" << endl + << ": public virtual POA_" << stripped << "," << endl + << STRS[INH_RCSB] << endl << "{" - << "public:" << endl - << "/// Hack for VC6." << endl - << "typedef CIAO::Home_Servant_Impl<" << endl - << " POA_" << stripped << "," << endl - << " " << t.scoped_name ().scope_name () << "::CCM_" - << t.name () << "," << endl - << " " << t.scoped_name ().scope_name () << "::CCM_" - << t.name () << "_var," << endl - << " "; - - Traversal::Home::manages (t, manages_); - - os << "," << endl - << " "; - - Traversal::Home::manages (t, manages_); - - os << "_var," << endl - << " "; - - Traversal::Home::manages (t, enclosing_manages_); - - os << "::CCM_"; - - Traversal::Home::manages (t, simple_manages_); - - os << "," << endl - << " "; - - Traversal::Home::manages (t, enclosing_manages_); - - os << "::CCM_"; - - Traversal::Home::manages (t, simple_manages_); - - os << "_var," << endl - << " "; - - Traversal::Home::manages (t, simple_manages_); - - os << "_Servant" << endl - << " > home_svnt_base;" << endl << endl; + << "public:" << endl; os << t.name () << "_Servant (" << endl << t.scoped_name ().scope_name () << "::CCM_" << t.name () << "_ptr exe," << endl - << "::CIAO::Session_Container *c);" << endl << endl; + << "::CIAO::Session_Container *c);" << endl; os << "virtual ~" << t.name () << "_Servant (void);" << endl << endl; @@ -1925,6 +1950,51 @@ namespace home_emitter.traverse (t); } + // @@@ (JP) Need primary key support. + os << "// Operations for keyless home interface." << endl << endl; + + os << "virtual ::Components::CCMObject_ptr" << endl + << "create_component (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << "::Components::CreateFailure));" << endl << endl; + + os << "// Operations for implicit home interface." << endl << endl; + + os << "virtual "; + + Traversal::Home::manages (t, manages_); + + os << "_ptr" << endl + << "create (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << "::Components::CreateFailure));" << endl << endl; + + os << "// Operations for CCMHome interface." << endl << endl; + + os << "virtual ::CORBA::IRObject_ptr" << endl + << "get_component_def (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl << endl; + + os << "virtual ::CORBA::IRObject_ptr" << endl + << "get_home_def (" << endl + << STRS[ENV_SNGL_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl << endl; + + os << "virtual void" << endl + << "remove_component (" << endl + << "::Components::CCMObject_ptr comp" << endl + << STRS[ENV_HDR] << ")" << endl + << STRS[EXCP_START] << endl + << STRS[EXCP_SYS] << "," << endl + << STRS[EXCP_RF] << "));" << endl << endl; + + os << "// Supported operations." << endl << endl; + // Generate operations for all supported interfaces. { Traversal::Home home_emitter; @@ -1987,10 +2057,57 @@ namespace home_emitter.traverse (t); } + os << "protected:" << endl + << "// CIAO-specific operations." << endl << endl; + + Traversal::Home::manages (t, manages_); + + os << "_ptr" << endl + << "_ciao_activate_component (" << endl; + + Traversal::Home::manages (t, enclosing_manages_); + + os << "::CCM_"; + + Traversal::Home::manages (t, simple_manages_); + + os << "_ptr exe" << endl + << STRS[ENV_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl << endl; + + os << "void" << endl + << "_ciao_passivate_component (" << endl; + + Traversal::Home::manages (t, manages_); + + os << "_ptr comp" << endl + << STRS[ENV_HDR] << ")" << endl + << STRS[EXCP_SNGL] << ";" << endl << endl; + + os << "protected:" << endl; + + os << t.scoped_name ().scope_name () << "::CCM_" + << t.name () << "_var" << endl + << "executor_;" << endl << endl; + + os << "::CIAO::Session_Container *" << endl + << "container_;" << endl << endl; + + os << "ACE_Hash_Map_Manager_Ex<" << endl + << "PortableServer::ObjectId," << endl; + + Traversal::Home::manages (t, simple_manages_); + + os << "_Servant *," << endl + << "TAO_ObjectId_Hash," << endl + << "ACE_Equal_To<PortableServer::ObjectId>," << endl + << "ACE_SYNCH_MUTEX>" << endl + << "component_map_;" << endl << endl; + // Home servant class closer. os << "};"; - os << "extern \"C\" " << ctx.export_macro () + os << "extern \"C\" " << ctx.export_macro () << " ::PortableServer::Servant" << endl << "create" << t.name () << "_Servant (" << endl << "::Components::HomeExecutorBase_ptr p," << endl @@ -2003,7 +2120,7 @@ namespace // Namespace closer. os << "}"; } - + private: TypeNameEmitter type_name_emitter_; SimpleTypeNameEmitter simple_type_name_emitter_; @@ -2145,8 +2262,8 @@ ServantHeaderEmitter::pre (TranslationUnit& u) os << "#include \"ciao/Container_Base.h\"" << endl << "#include \"ciao/Servant_Impl_T.h\"" << endl - << "#include \"ciao/Context_Impl_T.h\"" << endl - << "#include \"ciao/Home_Servant_Impl_T.h\"" << endl + << "#include \"tao/LocalObject.h\"" << endl + << "#include \"tao/PortableServer/Key_Adapters.h\"" << endl << "#include \"ace/Active_Map_Manager_T.h\"" << endl << endl; } |