From 81880503000153b64b4f0ee3ee4018b54220ba38 Mon Sep 17 00:00:00 2001 From: parsons Date: Thu, 29 Oct 2009 12:52:13 +0000 Subject: ChangeLogTag: Thu Oct 29 12:50:35 UTC 2009 Jeff Parsons --- modules/TAO/ChangeLog | 27 +++++ modules/TAO/TAO_IDL/be/be_codegen.cpp | 114 +++++++++++++++------ modules/TAO/TAO_IDL/be/be_global.cpp | 26 +++++ .../be/be_visitor_component/component_exh.cpp | 9 +- .../be/be_visitor_component/component_exs.cpp | 19 +--- .../TAO/TAO_IDL/be/be_visitor_component_scope.cpp | 87 +++++++++++++++- modules/TAO/TAO_IDL/be/be_visitor_connector.cpp | 27 +++++ .../be/be_visitor_connector/connector_dds_exh.cpp | 57 +++++++++++ .../be/be_visitor_connector/connector_dds_exs.cpp | 57 +++++++++++ modules/TAO/TAO_IDL/be_include/be_codegen.h | 10 +- modules/TAO/TAO_IDL/be_include/be_global.h | 11 ++ .../be_include/be_visitor_component_scope.h | 8 +- .../TAO/TAO_IDL/be_include/be_visitor_connector.h | 35 +++++++ .../be_visitor_connector/connector_dds_exh.h | 48 +++++++++ .../be_visitor_connector/connector_dds_exs.h | 46 +++++++++ 15 files changed, 522 insertions(+), 59 deletions(-) create mode 100644 modules/TAO/TAO_IDL/be/be_visitor_connector.cpp create mode 100644 modules/TAO/TAO_IDL/be/be_visitor_connector/connector_dds_exh.cpp create mode 100644 modules/TAO/TAO_IDL/be/be_visitor_connector/connector_dds_exs.cpp create mode 100644 modules/TAO/TAO_IDL/be_include/be_visitor_connector.h create mode 100644 modules/TAO/TAO_IDL/be_include/be_visitor_connector/connector_dds_exh.h create mode 100644 modules/TAO/TAO_IDL/be_include/be_visitor_connector/connector_dds_exs.h diff --git a/modules/TAO/ChangeLog b/modules/TAO/ChangeLog index 2e54ee60157..b70cb67f2bb 100644 --- a/modules/TAO/ChangeLog +++ b/modules/TAO/ChangeLog @@ -1,3 +1,30 @@ +Thu Oct 29 12:50:35 UTC 2009 Jeff Parsons + + * TAO_IDL/be/be_visitor_connector.cpp: + * TAO_IDL/be/be_visitor_connector/connector_dds_exs.cpp: + * TAO_IDL/be/be_visitor_connector/connector_dds_exh.cpp: + * TAO_IDL/be_include/be_visitor_connector.h: + * TAO_IDL/be_include/be_visitor_connector/connector_dds_exs.h: + * TAO_IDL/be_include/be_visitor_connector/connector_dds_exh.h: + + New visitors, implementing (so far) part of the code + generation of connector executors. + + * TAO_IDL/be/be_codegen.cpp: + * TAO_IDL/be/be_visitor_component/component_exh.cpp: + * TAO_IDL/be/be_visitor_component/component_exs.cpp: + * TAO_IDL/be/be_global.cpp: + * TAO_IDL/be/be_visitor_component_scope.cpp: + * TAO_IDL/be_include/be_codegen.h: + * TAO_IDL/be_include/be_visitor_component_scope.h: + * TAO_IDL/be_include/be_global.h: + + - Factored out code for generating entrypoint declarations + and definitions. + + - Added mechanism to generate includes of DDS type + support files for the connector executor. + Sun Oct 25 17:10:27 UTC 2009 Jeff Parsons * TAO_IDL/be_include/be_visitor_component_scope.h: diff --git a/modules/TAO/TAO_IDL/be/be_codegen.cpp b/modules/TAO/TAO_IDL/be/be_codegen.cpp index 3a574a35a3e..96672c160f7 100644 --- a/modules/TAO/TAO_IDL/be/be_codegen.cpp +++ b/modules/TAO/TAO_IDL/be/be_codegen.cpp @@ -2007,6 +2007,37 @@ TAO_CodeGen::gen_export_file (const char *filename, << "#endif /* " << stem << "_EXPORT_H */\n\n"; } +void +TAO_CodeGen::gen_standard_include (TAO_OutStream *stream, + const char *included_file, + bool add_comment) +{ + // Switch between changing or non-changing standard include files + // include files, so that #include statements can be + // generated with ""s or <>s respectively, for the standard include + // files (e.g. tao/corba.h). + + const char *start_delimiter = "\""; + const char *end_delimiter = "\""; + + if (be_global->changing_standard_include_files () == 0) + { + start_delimiter = "<"; + end_delimiter = ">"; + } + + *stream << "\n#include "; + + if (add_comment) + { + *stream << "/**/ "; + } + + *stream << start_delimiter + << included_file + << end_delimiter; +} + void TAO_CodeGen::gen_ifndef_string (const char *fname, TAO_OutStream *stream, @@ -2054,37 +2085,6 @@ TAO_CodeGen::gen_ifndef_string (const char *fname, macro_name); } -void -TAO_CodeGen::gen_standard_include (TAO_OutStream *stream, - const char *included_file, - bool add_comment) -{ - // Switch between changing or non-changing standard include files - // include files, so that #include statements can be - // generated with ""s or <>s respectively, for the standard include - // files (e.g. tao/corba.h). - - const char *start_delimiter = "\""; - const char *end_delimiter = "\""; - - if (be_global->changing_standard_include_files () == 0) - { - start_delimiter = "<"; - end_delimiter = ">"; - } - - *stream << "\n#include "; - - if (add_comment) - { - *stream << "/**/ "; - } - - *stream << start_delimiter - << included_file - << end_delimiter; -} - void TAO_CodeGen::gen_stub_hdr_includes (void) { @@ -3121,6 +3121,58 @@ TAO_CodeGen::gen_exec_hdr_includes (void) this->gen_standard_include ( this->ciao_exec_header_, "tao/LocalObject.h"); + + // Placeholder until we get real-world logic in place. + bool dds_connector_seen = true; + + if (dds_connector_seen) + { + *this->ciao_exec_header_ << be_nl; + + this->gen_standard_include (this->ciao_exec_header_, + "dds4ccm/impl/ndds/NDDS_Traits.h"); + + this->gen_standard_include (this->ciao_exec_header_, + "dds4ccm/impl/ndds/Connector_T.h"); + + size_t const nfiles = idl_global->n_included_idl_files (); + + for (size_t j = 0; j < nfiles; ++j) + { + char* idl_name = idl_global->included_idl_files ()[j]; + + // Make a String out of it. + UTL_String idl_name_str = idl_name; + + // No *_svnt.h version of this one. + if (ACE_OS::strcmp (idl_name, "Components.idl") == 0) + { + continue; + } + + // Get the constructed IDL file name. + const char* ts_hdr = + BE_GlobalData::be_get_dds_typesupport_header ( + &idl_name_str); + + idl_name_str.destroy (); + + // Sanity check and then print. + if (ts_hdr != 0) + { + this->gen_standard_include ( + this->ciao_exec_header_, + ts_hdr); + } + else + { + ACE_ERROR ((LM_ERROR, + ACE_TEXT ("\nERROR, invalid ") + ACE_TEXT ("file '%C' included"), + ts_hdr)); + } + } + } } void diff --git a/modules/TAO/TAO_IDL/be/be_global.cpp b/modules/TAO/TAO_IDL/be/be_global.cpp index 59046a3e1d3..cf9999542a1 100644 --- a/modules/TAO/TAO_IDL/be/be_global.cpp +++ b/modules/TAO/TAO_IDL/be/be_global.cpp @@ -81,6 +81,7 @@ BE_GlobalData::BE_GlobalData (void) ciao_exec_src_ending_ (ACE::strnew ("_exec.cpp")), ciao_exec_stub_hdr_ending_ (ACE::strnew ("EC.h")), ciao_exec_idl_ending_ (ACE::strnew ("E.idl")), + dds_typesupport_hdr_ending_ (ACE::strnew ("Support.h")), output_dir_ (0), skel_output_dir_ (0), anyop_output_dir_ (0), @@ -454,6 +455,18 @@ BE_GlobalData::be_get_ciao_exec_idl ( base_name_only); } +const char * +BE_GlobalData::be_get_dds_typesupport_header ( + UTL_String *idl_file_name, + bool base_name_only) +{ + return + be_change_idl_file_extension ( + idl_file_name, + be_global->dds_typesupport_hdr_ending (), + base_name_only); +} + const char * BE_GlobalData::be_get_client_hdr_fname ( bool base_name_only) @@ -1180,6 +1193,19 @@ BE_GlobalData::ciao_exec_idl_ending (void) const return this->ciao_exec_idl_ending_; } +void +BE_GlobalData::dds_typesupport_hdr_ending (const char* s) +{ + ACE::strdelete (this->dds_typesupport_hdr_ending_); + this->dds_typesupport_hdr_ending_ = ACE::strnew (s); +} + +const char* +BE_GlobalData::dds_typesupport_hdr_ending (void) const +{ + return this->dds_typesupport_hdr_ending_; +} + void BE_GlobalData::output_dir (const char* s) { diff --git a/modules/TAO/TAO_IDL/be/be_visitor_component/component_exh.cpp b/modules/TAO/TAO_IDL/be/be_visitor_component/component_exh.cpp index e245b1a26f4..bb474af29a2 100644 --- a/modules/TAO/TAO_IDL/be/be_visitor_component/component_exh.cpp +++ b/modules/TAO/TAO_IDL/be/be_visitor_component/component_exh.cpp @@ -35,6 +35,8 @@ be_visitor_component_exh::~be_visitor_component_exh (void) int be_visitor_component_exh::visit_component (be_component *node) { + node_ = node; + /// CIDL-generated namespace used 'CIDL_' + composition name. /// Now we use 'CIAO_' + component's flat name. os_ << be_nl << be_nl @@ -67,12 +69,7 @@ be_visitor_component_exh::visit_component (be_component *node) -1); } - os_ << be_nl << be_nl - << "extern \"C\" " << export_macro_.c_str () - << " ::Components::EnterpriseComponent_ptr" << be_nl - << "create_" << node->flat_name () - << "_Impl (void);"; - + this->gen_exec_entrypoint_decl (); os_ << be_uidt_nl << "}"; diff --git a/modules/TAO/TAO_IDL/be/be_visitor_component/component_exs.cpp b/modules/TAO/TAO_IDL/be/be_visitor_component/component_exs.cpp index a48f72b90b8..4871359b5be 100644 --- a/modules/TAO/TAO_IDL/be/be_visitor_component/component_exs.cpp +++ b/modules/TAO/TAO_IDL/be/be_visitor_component/component_exs.cpp @@ -36,6 +36,8 @@ be_visitor_component_exs::~be_visitor_component_exs (void) int be_visitor_component_exs::visit_component (be_component *node) { + node_ = node; + /// CIDL-generated namespace used 'CIDL_' + composition name. /// Now we use 'CIAO_' + component's flat name. os_ << be_nl << be_nl @@ -68,22 +70,7 @@ be_visitor_component_exs::visit_component (be_component *node) -1); } - os_ << be_nl << be_nl - << "extern \"C\" " << export_macro_.c_str () - << " ::Components::EnterpriseComponent_ptr" << be_nl - << "create_" << node->flat_name () - << "_Impl (void)" << be_nl - << "{" << be_idt_nl - << "::Components::EnterpriseComponent_ptr retval =" - << be_idt_nl - << "::Components::EnterpriseComponent::_nil ();" - << be_uidt_nl << be_nl - << "ACE_NEW_NORETURN (" << be_idt_nl - << "retval," << be_nl - << node->local_name () << "_exec_i);" - << be_uidt_nl << be_nl - << "return retval;" << be_uidt_nl - << "}"; + this->gen_exec_entrypoint_defn (); os_ << be_uidt_nl << "}"; diff --git a/modules/TAO/TAO_IDL/be/be_visitor_component_scope.cpp b/modules/TAO/TAO_IDL/be/be_visitor_component_scope.cpp index 4e4502653e3..28af75ff4c3 100644 --- a/modules/TAO/TAO_IDL/be/be_visitor_component_scope.cpp +++ b/modules/TAO/TAO_IDL/be/be_visitor_component_scope.cpp @@ -26,6 +26,7 @@ #include "be_provides.h" #include "be_uses.h" +#include "be_helper.h" #include "be_extern.h" #include "utl_identifier.h" @@ -201,4 +202,88 @@ be_visitor_component_scope::pre_process (be_decl *node) } return 0; -} \ No newline at end of file +} + +void +be_visitor_component_scope::gen_svnt_entrypoint_decl (void) +{ + os_ << be_nl << be_nl + << "extern \"C\" " << export_macro_.c_str () + << " ::PortableServer::Servant" << be_nl + << "create_" << node_->flat_name () + << "_Servant (" << be_idt_nl + << "::Components::EnterpriseComponent_ptr p," << be_nl + << "::CIAO::Container_ptr c," << be_nl + << "const char * ins_name);" << be_uidt; +} + +void +be_visitor_component_scope::gen_svnt_entrypoint_defn (void) +{ + ACE_CString sname_str ( + ScopeAsDecl (node_->defined_in ())->full_name ()); + const char *sname = sname_str.c_str (); + const char *lname = node_->local_name (); + const char *global = (sname_str == "" ? "" : "::"); + + os_ << be_nl << be_nl + << "extern \"C\" " << export_macro_.c_str () + << " ::PortableServer::Servant" << be_nl + << "create_" << node_->flat_name () + << "_Servant (" << be_idt_nl + << "::Components::EnterpriseComponent_ptr p," << be_nl + << "::CIAO::Container_ptr c," << be_nl + << "const char * ins_name)" << be_uidt_nl + << "{" << be_idt_nl + << global << sname << "::CCM_" << lname + << "_var x =" << be_idt_nl + << global << sname << "::CCM_" << lname + << "::_narrow (p);" << be_uidt_nl << be_nl + << "if ( ::CORBA::is_nil (x.in ()))" << be_idt_nl + << "{" << be_idt_nl + << "return 0;" << be_uidt_nl + << "}" << be_uidt_nl << be_nl + << "::PortableServer::Servant retval = 0;" << be_nl + << "ACE_NEW_RETURN (retval," << be_nl + << " " << lname << "_Servant (" << be_idt_nl + << " x.in ()," << be_nl + << " ::Components::CCMHome::_nil ()," << be_nl + << " ins_name," << be_nl + << " 0," << be_nl + << " c)," << be_uidt_nl + << " 0);" << be_nl << be_nl + << "return retval;" << be_uidt_nl + << "}"; +} + +void +be_visitor_component_scope::gen_exec_entrypoint_decl (void) +{ + os_ << be_nl << be_nl + << "extern \"C\" " << export_macro_.c_str () + << " ::Components::EnterpriseComponent_ptr" << be_nl + << "create_" << node_->flat_name () + << "_Impl (void);"; +} + +void +be_visitor_component_scope::gen_exec_entrypoint_defn (void) +{ + os_ << be_nl << be_nl + << "extern \"C\" " << export_macro_.c_str () + << " ::Components::EnterpriseComponent_ptr" << be_nl + << "create_" << node_->flat_name () + << "_Impl (void)" << be_nl + << "{" << be_idt_nl + << "::Components::EnterpriseComponent_ptr retval =" + << be_idt_nl + << "::Components::EnterpriseComponent::_nil ();" + << be_uidt_nl << be_nl + << "ACE_NEW_NORETURN (" << be_idt_nl + << "retval," << be_nl + << node_->local_name () << "_exec_i);" + << be_uidt_nl << be_nl + << "return retval;" << be_uidt_nl + << "}"; +} + diff --git a/modules/TAO/TAO_IDL/be/be_visitor_connector.cpp b/modules/TAO/TAO_IDL/be/be_visitor_connector.cpp new file mode 100644 index 00000000000..bff55072b91 --- /dev/null +++ b/modules/TAO/TAO_IDL/be/be_visitor_connector.cpp @@ -0,0 +1,27 @@ +// +// $Id$ +// + +// ============================================================================ +// +// = LIBRARY +// TAO IDL +// +// = FILENAME +// be_visitor_connector.cpp +// +// = DESCRIPTION +// Visitors for generation of code for Connector. +// +// = AUTHOR +// Jeff Parsons +// +// ============================================================================ + +#include "be_connector.h" + +#include "be_visitor_connector.h" +#include "be_visitor_context.h" + +#include "be_visitor_connector/connector_dds_exh.cpp" +#include "be_visitor_connector/connector_dds_exs.cpp" diff --git a/modules/TAO/TAO_IDL/be/be_visitor_connector/connector_dds_exh.cpp b/modules/TAO/TAO_IDL/be/be_visitor_connector/connector_dds_exh.cpp new file mode 100644 index 00000000000..28640d3be6f --- /dev/null +++ b/modules/TAO/TAO_IDL/be/be_visitor_connector/connector_dds_exh.cpp @@ -0,0 +1,57 @@ +// +// $Id$ +// + +// ============================================================================ +// +// = LIBRARY +// TAO_IDL_BE +// +// = FILENAME +// connector_dds_exh.cpp +// +// = DESCRIPTION +// Visitor generating code for DDS Connectors in the exec impl header. +// +// = AUTHOR +// Jeff Parsons +// +// ============================================================================ + +be_visitor_connector_dds_exh::be_visitor_connector_dds_exh ( + be_visitor_context *ctx) + : be_visitor_component_scope (ctx) +{ + // This is initialized in the base class to svnt_export_macro() + // or skel_export_macro(), since there are many more visitor + // classes generating servant code. So we can just override + // all that here. + export_macro_ = be_global->exec_export_macro (); +} + +be_visitor_connector_dds_exh::~be_visitor_connector_dds_exh (void) +{ +} + +int +be_visitor_connector_dds_exh::visit_connector (be_connector *node) +{ + node_ = node; + + /// CIDL-generated namespace used 'CIDL_' + composition name. + /// Now we use 'CIAO_' + component's flat name. + os_ << be_nl << be_nl + << "namespace CIAO_" << node->flat_name () + << "_Impl" << be_nl + << "{" << be_idt; + + // TODO - template class declaration. + + this->gen_exec_entrypoint_decl (); + + os_ << be_uidt_nl + << "}"; + + return 0; +} + diff --git a/modules/TAO/TAO_IDL/be/be_visitor_connector/connector_dds_exs.cpp b/modules/TAO/TAO_IDL/be/be_visitor_connector/connector_dds_exs.cpp new file mode 100644 index 00000000000..a85a638a54c --- /dev/null +++ b/modules/TAO/TAO_IDL/be/be_visitor_connector/connector_dds_exs.cpp @@ -0,0 +1,57 @@ +// +// $Id$ +// + +// ============================================================================ +// +// = LIBRARY +// TAO_IDL_BE +// +// = FILENAME +// connector_dds_exs.cpp +// +// = DESCRIPTION +// Visitor generating code for Connectors in the exec impl source. +// +// = AUTHOR +// Jeff Parsons +// +// ============================================================================ + +be_visitor_connector_dds_exs::be_visitor_connector_dds_exs ( + be_visitor_context *ctx) + : be_visitor_component_scope (ctx) +{ + // This is initialized in the base class to svnt_export_macro() + // or skel_export_macro(), since there are many more visitor + // classes generating servant code. So we can just override + // all that here. + export_macro_ = be_global->exec_export_macro (); +} + +be_visitor_connector_dds_exs::~be_visitor_connector_dds_exs (void) +{ +} + +int +be_visitor_connector_dds_exs::visit_connector (be_connector *node) +{ + node_ = node; + + /// CIDL-generated namespace used 'CIDL_' + composition name. + /// Now we use 'CIAO_' + component's flat name. + os_ << be_nl << be_nl + << "namespace CIAO_" << node->flat_name () + << "_Impl" << be_nl + << "{" << be_idt; + + // TODO - template class constructor and destructor. + + this->gen_exec_entrypoint_defn (); + + os_ << be_uidt_nl + << "}"; + + return 0; +} + diff --git a/modules/TAO/TAO_IDL/be_include/be_codegen.h b/modules/TAO/TAO_IDL/be_include/be_codegen.h index 2917397aba4..f939a1763ad 100644 --- a/modules/TAO/TAO_IDL/be_include/be_codegen.h +++ b/modules/TAO/TAO_IDL/be_include/be_codegen.h @@ -416,6 +416,12 @@ public: void gen_export_files (void); // Generates the export files selected on the command line. + void gen_standard_include (TAO_OutStream *stream, + const char *included_file, + bool add_comment = false); + // Generate file include, with optional empty comment to + // short-circuit DOxygen. + void destroy (void); // Cleanup. @@ -425,10 +431,6 @@ private: const char *prefix, const char *suffix); - void gen_standard_include (TAO_OutStream *stream, - const char *included_file, - bool add_comment = false); - /// Utility methods for generating file includes. void gen_stub_hdr_includes (void); void gen_stub_src_includes (void); diff --git a/modules/TAO/TAO_IDL/be_include/be_global.h b/modules/TAO/TAO_IDL/be_include/be_global.h index 0cefc31c420..340a13d784d 100644 --- a/modules/TAO/TAO_IDL/be_include/be_global.h +++ b/modules/TAO/TAO_IDL/be_include/be_global.h @@ -199,6 +199,10 @@ public: static const char *be_get_ciao_exec_idl ( UTL_String *idl_file_name, bool base_name_only = false); + + static const char *be_get_dds_typesupport_header ( + UTL_String *idl_file_name, + bool base_name_only = false); const char* skel_export_macro (void) const; /// Returns the macro name for exporting server side classes in Win32 @@ -441,6 +445,10 @@ public: const char* ciao_exec_idl_ending (void) const; // Similar to above, but for CIAO servant and executor // impl and executor IDL files, if generated. + + void dds_typesupport_hdr_ending (const char* s); + const char* dds_typesupport_hdr_ending (void) const; + // For generating TypeSupport header file includes. void use_clonable_in_args (bool clonable); // Set the clonable_in_args. @@ -846,6 +854,9 @@ private: // CIAO executor IDL file name ending. Default is "E.idl". char* ciao_exec_idl_ending_; + + // DDS TypeSupport header file name ending. Default is "Support.h". + char* dds_typesupport_hdr_ending_; char* output_dir_; // Directory where all the IDL-Compiler-Generated files are to be diff --git a/modules/TAO/TAO_IDL/be_include/be_visitor_component_scope.h b/modules/TAO/TAO_IDL/be_include/be_visitor_component_scope.h index 6bf54abf1d1..e442b85ec8f 100644 --- a/modules/TAO/TAO_IDL/be_include/be_visitor_component_scope.h +++ b/modules/TAO/TAO_IDL/be_include/be_visitor_component_scope.h @@ -62,7 +62,13 @@ public: // mirrorport node that may contain reference the // containing porttype. // TODO - support nested ports, if they are allowed. - virtual int pre_process (be_decl *); + virtual int pre_process (be_decl *); + +protected: + void gen_svnt_entrypoint_decl (void); + void gen_svnt_entrypoint_defn (void); + void gen_exec_entrypoint_decl (void); + void gen_exec_entrypoint_defn (void); protected: be_component *node_; diff --git a/modules/TAO/TAO_IDL/be_include/be_visitor_connector.h b/modules/TAO/TAO_IDL/be_include/be_visitor_connector.h new file mode 100644 index 00000000000..bd625551215 --- /dev/null +++ b/modules/TAO/TAO_IDL/be_include/be_visitor_connector.h @@ -0,0 +1,35 @@ +/* -*- c++ -*- */ +// +// $Id$ +// + +// ============================================================================ +// +// = LIBRARY +// TAO IDL +// +// = FILENAME +// be_visitor_connector.h +// +// = DESCRIPTION +// Concrete visitors for the Connector +// +// = AUTHOR +// Jeff Parsons +// +// ============================================================================ + +#ifndef TAO_BE_VISITOR_CONNECTOR_H +#define TAO_BE_VISITOR_CONNECTOR_H + +#include "ace/SString.h" + +#include "be_helper.h" +#include "be_extern.h" + +#include "be_visitor_component_scope.h" + +#include "be_visitor_connector/connector_dds_exh.h" +#include "be_visitor_connector/connector_dds_exs.h" + +#endif /* TAO_BE_VISITOR_CONNECTOR_H */ diff --git a/modules/TAO/TAO_IDL/be_include/be_visitor_connector/connector_dds_exh.h b/modules/TAO/TAO_IDL/be_include/be_visitor_connector/connector_dds_exh.h new file mode 100644 index 00000000000..2c7071d3f94 --- /dev/null +++ b/modules/TAO/TAO_IDL/be_include/be_visitor_connector/connector_dds_exh.h @@ -0,0 +1,48 @@ +// +// $Id$ +// +/* -*- c++ -*- */ +// ============================================================================ +// +// = LIBRARY +// TAO_IDL_BE +// +// = FILENAME +// connector_dds_exh.h +// +// = DESCRIPTION +// Concrete visitor for the DDS Connector node. +// This provides for code generation in the exec impl header +// +// = AUTHOR +// Jeff Parsons +// +// ============================================================================ + +#ifndef _BE_CONNECTOR_CONNECTOR_DDS_EXH_H_ +#define _BE_CONNECTOR_CONNECTOR_DDS_EXH_H_ + +class be_visitor_context; + +class be_visitor_connector_dds_exh + : public be_visitor_component_scope +{ + // + // = TITLE + // be_visitor_connector_dds_exh + // + // = DESCRIPTION + // This is a concrete visitor to generate + // the executor implementation header for DDS connectors. + // + // +public: + be_visitor_connector_dds_exh (be_visitor_context *ctx); + + ~be_visitor_connector_dds_exh (void); + + virtual int visit_connector (be_connector *node); +}; + +#endif /* _BE_CONNECTOR_CONNECTOR_DDS_EXH_H_ */ + diff --git a/modules/TAO/TAO_IDL/be_include/be_visitor_connector/connector_dds_exs.h b/modules/TAO/TAO_IDL/be_include/be_visitor_connector/connector_dds_exs.h new file mode 100644 index 00000000000..66a996ccc8a --- /dev/null +++ b/modules/TAO/TAO_IDL/be_include/be_visitor_connector/connector_dds_exs.h @@ -0,0 +1,46 @@ +// +// $Id$ +// +/* -*- c++ -*- */ +// ============================================================================ +// +// = LIBRARY +// TAO_IDL_BE +// +// = FILENAME +// connector_dds_exs.h +// +// = DESCRIPTION +// Concrete visitor for the DDS Connector node. +// This provides for code generation in the exec impl source. +// +// = AUTHOR +// Jeff Parsons +// +// ============================================================================ + +#ifndef _BE_CONNECTOR_CONNECTOR_DDS_EXS_H_ +#define _BE_CONNECTOR_CONNECTOR_DDS_EXS_H_ + +class be_visitor_connector_dds_exs + : public be_visitor_component_scope +{ + // + // = TITLE + // be_visitor_connector_dds_exs + // + // = DESCRIPTION + // This is a concrete visitor to generate + // the executor implementation source for connectors. + // + // +public: + be_visitor_connector_dds_exs (be_visitor_context *ctx); + + ~be_visitor_connector_dds_exs (void); + + virtual int visit_connector (be_connector *node); +}; + +#endif /* _BE_CONNECTOR_CONNECTOR_DDS_EXS_H_ */ + -- cgit v1.2.1