diff options
author | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-10-29 22:36:11 +0000 |
---|---|---|
committer | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-10-29 22:36:11 +0000 |
commit | bc3d33e0ec5c7b51155432a8ceb3a82c6c4b6d57 (patch) | |
tree | ba89b82495b0d6478c662694dde9cfaa796a6657 | |
parent | 6cb4c3df2f7686618a1e8fe501a8414f6a513688 (diff) | |
download | ATCD-bc3d33e0ec5c7b51155432a8ceb3a82c6c4b6d57.tar.gz |
ChangeLogTag:Thu Oct 29 16:25:50 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-rw-r--r-- | TAO/ChangeLog-98c | 23 | ||||
-rw-r--r-- | TAO/TAO_IDL/Makefile | 11 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_decl.cpp | 13 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_factory.cpp | 4 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_interface/cdr_op_ch.cpp | 10 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp | 14 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_interface_fwd.cpp | 1 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_interface_fwd/cdr_op_ci.cpp | 71 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_module/module.cpp | 4 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_root/cdr_op.cpp | 6 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_root/root.cpp | 9 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_scope.cpp | 8 | ||||
-rw-r--r-- | TAO/TAO_IDL/be_include/be_codegen.h | 2 | ||||
-rw-r--r-- | TAO/TAO_IDL/be_include/be_decl.h | 3 | ||||
-rw-r--r-- | TAO/TAO_IDL/be_include/be_interface_fwd.h | 4 | ||||
-rw-r--r-- | TAO/TAO_IDL/be_include/be_visitor_interface_fwd.h | 1 | ||||
-rw-r--r-- | TAO/TAO_IDL/be_include/be_visitor_interface_fwd/cdr_op_ci.h | 51 |
17 files changed, 213 insertions, 22 deletions
diff --git a/TAO/ChangeLog-98c b/TAO/ChangeLog-98c index 3c2ef97aefa..408a12ad8ef 100644 --- a/TAO/ChangeLog-98c +++ b/TAO/ChangeLog-98c @@ -1,3 +1,26 @@ +Thu Oct 29 16:25:50 1998 Carlos O'Ryan <coryan@cs.wustl.edu> + + * TAO_IDL/Makefile: + * TAO_IDL/be/be_visitor_interface_fwd/cdr_op_ci.cpp: + * TAO_IDL/be_include/be_visitor_interface_fwd/cdr_op_ci.h: + A forward declaration of an interface also generates the forward + declaration of its << and >> operators. + + * TAO_IDL/be_include/be_visitor_interface_fwd.h: + * TAO_IDL/be_include/be_interface_fwd.h: + * TAO_IDL/be_include/be_decl.h: + * TAO_IDL/be_include/be_codegen.h: + * TAO_IDL/be/be_visitor_root/root.cpp: + * TAO_IDL/be/be_visitor_root/cdr_op.cpp: + * TAO_IDL/be/be_visitor_module/module.cpp: + * TAO_IDL/be/be_visitor_interface/cdr_op_ch.cpp: + * TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp: + * TAO_IDL/be/be_visitor_scope.cpp: + * TAO_IDL/be/be_visitor_interface_fwd.cpp: + * TAO_IDL/be/be_visitor_factory.cpp: + * TAO_IDL/be/be_decl.cpp: + Some cleanup and added support for the new additions above. + Thu Oct 29 07:49:51 1998 David L. Levine <levine@cs.wustl.edu> * tao/DynUnion_i.cpp: added a bunch of .in () dereferences diff --git a/TAO/TAO_IDL/Makefile b/TAO/TAO_IDL/Makefile index 5634db11dd0..b5341266e9f 100644 --- a/TAO/TAO_IDL/Makefile +++ b/TAO/TAO_IDL/Makefile @@ -6205,6 +6205,7 @@ tags: be_include/be_visitor_interface_fwd.h \ be_include/be_visitor_interface_fwd/interface_fwd_ch.h \ be_include/be_visitor_interface_fwd/interface_fwd_ci.h \ + be_include/be_visitor_interface_fwd/cdr_op_ci.h \ be_include/be_visitor_module.h be_include/be_visitor_module/module.h \ be_include/be_visitor_module/module_ch.h \ be_include/be_visitor_module/module_sh.h \ @@ -7507,7 +7508,8 @@ tags: be/be_visitor_interface/cdr_op_ch.cpp \ be/be_visitor_interface/cdr_op_cs.cpp .obj/be_visitor_interface_fwd.o .obj/be_visitor_interface_fwd.so .shobj/be_visitor_interface_fwd.o .shobj/be_visitor_interface_fwd.so: be/be_visitor_interface_fwd.cpp \ - include/idl.h $(ACE_ROOT)/ace/ACE.h \ + include/idl.h \ + $(ACE_ROOT)/ace/ACE.h \ $(ACE_ROOT)/ace/OS.h \ $(ACE_ROOT)/ace/inc_user_config.h \ $(ACE_ROOT)/ace/config.h \ @@ -7609,8 +7611,10 @@ tags: be_include/be_visitor_decl.h \ be_include/be_visitor_interface_fwd/interface_fwd_ch.h \ be_include/be_visitor_interface_fwd/interface_fwd_ci.h \ + be_include/be_visitor_interface_fwd/cdr_op_ci.h \ be/be_visitor_interface_fwd/interface_fwd_ch.cpp \ - be/be_visitor_interface_fwd/interface_fwd_ci.cpp + be/be_visitor_interface_fwd/interface_fwd_ci.cpp \ + be/be_visitor_interface_fwd/cdr_op_ci.cpp .obj/be_visitor_module.o .obj/be_visitor_module.so .shobj/be_visitor_module.o .shobj/be_visitor_module.so: be/be_visitor_module.cpp include/idl.h \ $(ACE_ROOT)/ace/ACE.h \ $(ACE_ROOT)/ace/OS.h \ @@ -8665,7 +8669,8 @@ tags: be/be_visitor_union/any_op_cs.cpp be/be_visitor_union/cdr_op_ch.cpp \ be/be_visitor_union/cdr_op_cs.cpp .obj/be_visitor_union_branch.o .obj/be_visitor_union_branch.so .shobj/be_visitor_union_branch.o .shobj/be_visitor_union_branch.so: be/be_visitor_union_branch.cpp \ - include/idl.h $(ACE_ROOT)/ace/ACE.h \ + include/idl.h \ + $(ACE_ROOT)/ace/ACE.h \ $(ACE_ROOT)/ace/OS.h \ $(ACE_ROOT)/ace/inc_user_config.h \ $(ACE_ROOT)/ace/config.h \ diff --git a/TAO/TAO_IDL/be/be_decl.cpp b/TAO/TAO_IDL/be/be_decl.cpp index 11bf6344fcf..a45c555951b 100644 --- a/TAO/TAO_IDL/be/be_decl.cpp +++ b/TAO/TAO_IDL/be/be_decl.cpp @@ -37,6 +37,7 @@ be_decl::be_decl (void) cli_stub_any_op_gen_ (I_FALSE), cli_hdr_cdr_op_gen_ (I_FALSE), cli_stub_cdr_op_gen_ (I_FALSE), + cli_inline_cdr_op_gen_ (I_FALSE), fullname_ (0), flatname_ (0), repoID_ (0), @@ -567,6 +568,12 @@ be_decl::cli_stub_cdr_op_gen (void) } idl_bool +be_decl::cli_inline_cdr_op_gen (void) +{ + return this->cli_inline_cdr_op_gen_; +} + +idl_bool be_decl::cli_inline_gen (void) { return this->cli_inline_gen_; @@ -628,6 +635,12 @@ be_decl::cli_stub_cdr_op_gen (idl_bool val) } void +be_decl::cli_inline_cdr_op_gen (idl_bool val) +{ + this->cli_inline_cdr_op_gen_ = val; +} + +void be_decl::cli_inline_gen (idl_bool val) { this->cli_inline_gen_ = val; diff --git a/TAO/TAO_IDL/be/be_visitor_factory.cpp b/TAO/TAO_IDL/be/be_visitor_factory.cpp index b9b32240b24..a2f123ed18c 100644 --- a/TAO/TAO_IDL/be/be_visitor_factory.cpp +++ b/TAO/TAO_IDL/be/be_visitor_factory.cpp @@ -106,7 +106,9 @@ TAO_Common_Visitor_Factory::make_visitor (be_visitor_context *ctx) else // return a NO_OP visitor return new be_visitor_decl (new_ctx); + case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: // this is the starting point for generation of all CDR operators. If we // do not use compiled marshaling, we do not need these operators @@ -166,6 +168,8 @@ TAO_Common_Visitor_Factory::make_visitor (be_visitor_context *ctx) return new be_visitor_interface_fwd_ch (new_ctx); case TAO_CodeGen::TAO_INTERFACE_FWD_CI: return new be_visitor_interface_fwd_ci (new_ctx); + case TAO_CodeGen::TAO_INTERFACE_FWD_CDR_OP_CI: + return new be_visitor_interface_fwd_cdr_op_ci (new_ctx); case TAO_CodeGen::TAO_STRUCT_CH: return new be_visitor_structure_ch (new_ctx); diff --git a/TAO/TAO_IDL/be/be_visitor_interface/cdr_op_ch.cpp b/TAO/TAO_IDL/be/be_visitor_interface/cdr_op_ch.cpp index 7b4d88f71ca..0874e4517d1 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/cdr_op_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/cdr_op_ch.cpp @@ -51,11 +51,11 @@ be_visitor_interface_cdr_op_ch::visit_interface (be_interface *node) // generate the CDR << and >> operator declarations os->indent (); - *os << "CORBA::Boolean " << idl_global->export_macro () - << " operator<< (TAO_OutputCDR &, const " << node->name () - << "_ptr ); // " << be_nl; - *os << "CORBA::Boolean " << idl_global->export_macro () - << " operator>> (TAO_InputCDR &, " + *os << "CORBA::Boolean " << idl_global->export_macro () << be_nl + << "operator<< (TAO_OutputCDR &, const " << node->name () + << "_ptr );" << be_nl; + *os << "CORBA::Boolean " << idl_global->export_macro () << be_nl + << "operator>> (TAO_InputCDR &, " << node->name () << "_ptr &);\n"; diff --git a/TAO/TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp index a4f5e55fdda..de39fe04f7f 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/cdr_op_cs.cpp @@ -67,8 +67,11 @@ be_visitor_interface_cdr_op_cs::visit_interface (be_interface *node) // set the sub state as generating code for the output operator this->ctx_->sub_state(TAO_CodeGen::TAO_CDR_OUTPUT); - *os << "ACE_INLINE CORBA::Boolean operator<< (TAO_OutputCDR &strm, " - << "const " << node->name () << "_ptr _tao_objref)" << be_nl + *os << "ACE_INLINE CORBA::Boolean" << be_nl + << "operator<< (" << be_idt << be_idt_nl + << "TAO_OutputCDR &strm," << be_nl + << "const " << node->name () << "_ptr _tao_objref" << be_uidt_nl + << ")" << be_uidt_nl << "{" << be_idt_nl; // hand over the encoding to the TAO's internal engine // *os << "CORBA::Environment env;" << be_nl; @@ -94,8 +97,11 @@ be_visitor_interface_cdr_op_cs::visit_interface (be_interface *node) // set the substate as generating code for the input operator this->ctx_->sub_state(TAO_CodeGen::TAO_CDR_INPUT); - *os << "ACE_INLINE CORBA::Boolean operator>> (TAO_InputCDR &strm, " - << node->name () << "_ptr &_tao_objref)" << be_nl + *os << "ACE_INLINE CORBA::Boolean" << be_nl + << "operator>> (" << be_idt << be_idt_nl + << "TAO_InputCDR &strm," << be_nl + << node->name () << "_ptr &_tao_objref" << be_uidt_nl + << ")" << be_uidt_nl << "{" << be_idt_nl; // hand over to the TAO's internal marshaling engine // *os << "CORBA::Environment env;" << be_nl; diff --git a/TAO/TAO_IDL/be/be_visitor_interface_fwd.cpp b/TAO/TAO_IDL/be/be_visitor_interface_fwd.cpp index dddb1fc84dc..18b5d80cb4c 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface_fwd.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface_fwd.cpp @@ -27,6 +27,7 @@ // include all the individual files #include "be_visitor_interface_fwd/interface_fwd_ch.cpp" #include "be_visitor_interface_fwd/interface_fwd_ci.cpp" +#include "be_visitor_interface_fwd/cdr_op_ci.cpp" ACE_RCSID(be, be_visitor_interface_fwd, "$Id$") diff --git a/TAO/TAO_IDL/be/be_visitor_interface_fwd/cdr_op_ci.cpp b/TAO/TAO_IDL/be/be_visitor_interface_fwd/cdr_op_ci.cpp new file mode 100644 index 00000000000..e7edc5c7ad5 --- /dev/null +++ b/TAO/TAO_IDL/be/be_visitor_interface_fwd/cdr_op_ci.cpp @@ -0,0 +1,71 @@ +// +// $Id$ +// + +// ================================================================ +// +// = LIBRARY +// TAO IDL +// +// = FILENAME +// cdr_op_ci.cpp +// +// = DESCRIPTION +// Visitor generating code for CDR operators for forward +// declarations of interfaces. This uses compiled marshaling. +// +// = AUTHOR +// Aniruddha Gokhale & Carlos O'Ryan +// +// ================================================================ + +#include "idl.h" +#include "idl_extern.h" +#include "be.h" + +#include "be_visitor_interface_fwd.h" + +ACE_RCSID(be_visitor_interface_fwd, cdr_op_ci, "$Id$") + +// **************************************************************** +// Interface visitor for generating CDR operator declarations in the +// client header +// **************************************************************** + +be_visitor_interface_fwd_cdr_op_ci:: +be_visitor_interface_fwd_cdr_op_ci (be_visitor_context *ctx) + : be_visitor_decl (ctx) +{ +} + +be_visitor_interface_fwd_cdr_op_ci:: +~be_visitor_interface_fwd_cdr_op_ci (void) +{ +} + +int +be_visitor_interface_fwd_cdr_op_ci:: +visit_interface_fwd (be_interface_fwd *node) +{ + if (node->cli_inline_cdr_op_gen () || node->imported ()) + return 0; + + TAO_OutStream *os = this->ctx_->stream (); + + // generate the CDR << and >> operator declarations + os->indent (); + *os << "ACE_INLINE CORBA::Boolean" << be_nl + << "operator<< (" << be_idt << be_idt_nl + << "TAO_OutputCDR &," << be_nl + << "const " << node->name () << "_ptr" << be_uidt_nl + << ");" << be_uidt_nl; + *os << "ACE_INLINE CORBA::Boolean" << be_nl + << "operator>> (" << be_idt << be_idt_nl + << "TAO_InputCDR &," << be_nl + << node->name () << "_ptr &" << be_uidt_nl + << ");" << be_uidt << "\n"; + + node->cli_inline_cdr_op_gen (1); + return 0; +} + diff --git a/TAO/TAO_IDL/be/be_visitor_module/module.cpp b/TAO/TAO_IDL/be/be_visitor_module/module.cpp index 7fda90e94bd..6ad52622bd8 100644 --- a/TAO/TAO_IDL/be/be_visitor_module/module.cpp +++ b/TAO/TAO_IDL/be/be_visitor_module/module.cpp @@ -362,10 +362,12 @@ be_visitor_module::visit_interface_fwd (be_interface_fwd *node) case TAO_CodeGen::TAO_MODULE_CI: ctx.state (TAO_CodeGen::TAO_INTERFACE_FWD_CI); break; + case TAO_CodeGen::TAO_MODULE_CDR_OP_CS: + ctx.state (TAO_CodeGen::TAO_INTERFACE_FWD_CDR_OP_CI); + break; case TAO_CodeGen::TAO_MODULE_ANY_OP_CH: case TAO_CodeGen::TAO_MODULE_ANY_OP_CS: case TAO_CodeGen::TAO_MODULE_CDR_OP_CH: - case TAO_CodeGen::TAO_MODULE_CDR_OP_CS: case TAO_CodeGen::TAO_MODULE_CS: case TAO_CodeGen::TAO_MODULE_SH: case TAO_CodeGen::TAO_MODULE_SI: diff --git a/TAO/TAO_IDL/be/be_visitor_root/cdr_op.cpp b/TAO/TAO_IDL/be/be_visitor_root/cdr_op.cpp index 08ee3748b79..36f9214da42 100644 --- a/TAO/TAO_IDL/be/be_visitor_root/cdr_op.cpp +++ b/TAO/TAO_IDL/be/be_visitor_root/cdr_op.cpp @@ -49,7 +49,8 @@ be_visitor_root_cdr_op::visit_root (be_root *node) if (this->ctx_->state () == TAO_CodeGen::TAO_ROOT_CDR_OP_CH) { - *os << "#ifndef __ACE_INLINE__\n\n"; + *os << be_nl + << "#ifndef __ACE_INLINE__\n\n"; } // all we have to do is to visit the scope and generate code @@ -62,7 +63,8 @@ be_visitor_root_cdr_op::visit_root (be_root *node) if (this->ctx_->state () == TAO_CodeGen::TAO_ROOT_CDR_OP_CH) { - *os << "#endif /* __ACE_INLINE__ */\n\n"; + *os << be_nl + << "#endif /* __ACE_INLINE__ */\n\n"; } return 0; diff --git a/TAO/TAO_IDL/be/be_visitor_root/root.cpp b/TAO/TAO_IDL/be/be_visitor_root/root.cpp index 020b90304f2..6c04442da7f 100644 --- a/TAO/TAO_IDL/be/be_visitor_root/root.cpp +++ b/TAO/TAO_IDL/be/be_visitor_root/root.cpp @@ -117,8 +117,8 @@ int be_visitor_root::visit_root (be_root *node) ), -1); } - // generate the <<= and >>= operators for all the user-defined data types in - // the outermost scope + // generate the << and >> operators for all the user-defined + // data types in the outermost scope if (node->accept (visitor) == -1) { ACE_ERROR_RETURN ((LM_ERROR, @@ -500,10 +500,13 @@ be_visitor_root::visit_interface_fwd (be_interface_fwd *node) case TAO_CodeGen::TAO_ROOT_CI: ctx.state (TAO_CodeGen::TAO_INTERFACE_FWD_CI); break; + case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: + ctx.state (TAO_CodeGen::TAO_INTERFACE_FWD_CDR_OP_CI); + break; case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: case TAO_CodeGen::TAO_ROOT_CDR_OP_CH: - case TAO_CodeGen::TAO_ROOT_CDR_OP_CS: + case TAO_CodeGen::TAO_ROOT_CDR_OP_CI: case TAO_CodeGen::TAO_ROOT_CS: case TAO_CodeGen::TAO_ROOT_SH: case TAO_CodeGen::TAO_ROOT_SI: diff --git a/TAO/TAO_IDL/be/be_visitor_scope.cpp b/TAO/TAO_IDL/be/be_visitor_scope.cpp index d5fa6145dd5..8ee75eff8df 100644 --- a/TAO/TAO_IDL/be/be_visitor_scope.cpp +++ b/TAO/TAO_IDL/be/be_visitor_scope.cpp @@ -71,12 +71,16 @@ be_visitor_scope::visit_scope (be_scope *node) } be_decl *bd = be_decl::narrow_from_decl (d); - // set the scope node as "node" in which the code is being generated - // so that elements in the node's scope can use it for code generation + // set the scope node as "node" in which the code is being + // generated so that elements in the node's scope can use it + // for code generation + this->ctx_->scope (node->decl ()); + // set the node to be visited this->ctx_->node (bd); this->elem_number_++; + // do any pre processing using the next item info if (this->pre_process (bd) == -1) { diff --git a/TAO/TAO_IDL/be_include/be_codegen.h b/TAO/TAO_IDL/be_include/be_codegen.h index d220a89a749..25d101305bb 100644 --- a/TAO/TAO_IDL/be_include/be_codegen.h +++ b/TAO/TAO_IDL/be_include/be_codegen.h @@ -144,6 +144,7 @@ public: // emitting code for the interface forward declaration TAO_INTERFACE_FWD_CH, TAO_INTERFACE_FWD_CI, + TAO_INTERFACE_FWD_CDR_OP_CI, // emitting code for the module TAO_MODULE_CH, @@ -215,6 +216,7 @@ public: TAO_ROOT_ANY_OP_CH, TAO_ROOT_ANY_OP_CS, TAO_ROOT_CDR_OP_CH, + TAO_ROOT_CDR_OP_CI, TAO_ROOT_CDR_OP_CS, // emitting sequences diff --git a/TAO/TAO_IDL/be_include/be_decl.h b/TAO/TAO_IDL/be_include/be_decl.h index 181fbe6ad16..e2a6ccd55a9 100644 --- a/TAO/TAO_IDL/be_include/be_decl.h +++ b/TAO/TAO_IDL/be_include/be_decl.h @@ -101,6 +101,7 @@ public: idl_bool cli_stub_any_op_gen (void); idl_bool cli_hdr_cdr_op_gen (void); idl_bool cli_stub_cdr_op_gen (void); + idl_bool cli_inline_cdr_op_gen (void); // set the flag indicating that code generation is done void cli_hdr_gen (idl_bool); @@ -113,6 +114,7 @@ public: void cli_stub_any_op_gen (idl_bool); void cli_hdr_cdr_op_gen (idl_bool); void cli_stub_cdr_op_gen (idl_bool); + void cli_inline_cdr_op_gen (idl_bool); idl_bool is_child (be_decl *node); // am I a direct child of node? @@ -160,6 +162,7 @@ protected: idl_bool cli_stub_any_op_gen_; idl_bool cli_hdr_cdr_op_gen_; idl_bool cli_stub_cdr_op_gen_; + idl_bool cli_inline_cdr_op_gen_; char *fullname_; // our full scoped name diff --git a/TAO/TAO_IDL/be_include/be_interface_fwd.h b/TAO/TAO_IDL/be_include/be_interface_fwd.h index fa17cd7663f..f3b2d156710 100644 --- a/TAO/TAO_IDL/be_include/be_interface_fwd.h +++ b/TAO/TAO_IDL/be_include/be_interface_fwd.h @@ -10,8 +10,8 @@ // be_interface.h // // = DESCRIPTION -// Extension of class AST_Interface_Fwd that provides additional means for C++ -// mapping of an interface. +// Extension of class AST_Interface_Fwd that provides additional +// means for C++ mapping of an interface. // // = AUTHOR // Copyright 1994-1995 by Sun Microsystems, Inc. diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface_fwd.h b/TAO/TAO_IDL/be_include/be_visitor_interface_fwd.h index 14104e4d229..dafe44c68f8 100644 --- a/TAO/TAO_IDL/be_include/be_visitor_interface_fwd.h +++ b/TAO/TAO_IDL/be_include/be_visitor_interface_fwd.h @@ -27,5 +27,6 @@ #include "be_visitor_interface_fwd/interface_fwd_ch.h" #include "be_visitor_interface_fwd/interface_fwd_ci.h" +#include "be_visitor_interface_fwd/cdr_op_ci.h" #endif /* TAO_BE_VISITOR_INTERFACE_FWD_H */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface_fwd/cdr_op_ci.h b/TAO/TAO_IDL/be_include/be_visitor_interface_fwd/cdr_op_ci.h new file mode 100644 index 00000000000..3e7953ee80f --- /dev/null +++ b/TAO/TAO_IDL/be_include/be_visitor_interface_fwd/cdr_op_ci.h @@ -0,0 +1,51 @@ +/* -*- c++ -*- */ +// +// $Id$ +// + +// ============================================================================ +// +// = LIBRARY +// TAO IDL +// +// = FILENAME +// cdr_op_ci.h +// +// = DESCRIPTION +// Concrete visitor for the interface_fwd class +// This one provides code generation for the CDR operators +// (actually just their declarations) for the interface forward +// declaration in the client inline. +// +// = AUTHOR +// Aniruddha Gokhale & Carlos O'Ryan +// +// ============================================================================ + +#ifndef BE_VISITOR_INTERFACE_FWD_CDR_OP_CI_H +#define BE_VISITOR_INTERFACE_FWD_CDR_OP_CI_H + +class be_visitor_interface_fwd_cdr_op_ci : public be_visitor_decl +{ + // + // = TITLE + // be_visitor_interface_fwd_cdr_op_ci + // + // = DESCRIPTION + // This is a concrete visitor for interface that generates the CDR + // operator forward declarations. + // + +public: + be_visitor_interface_fwd_cdr_op_ci (be_visitor_context *ctx); + // constructor + + ~be_visitor_interface_fwd_cdr_op_ci (void); + // destructor + + virtual int visit_interface_fwd (be_interface_fwd *node); + // visit interface + +}; + +#endif /* BE_VISITOR_INTERFACE_FWD_CDR_OP_CI_H */ |