diff options
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ci.cpp')
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ci.cpp | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ci.cpp b/TAO/TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ci.cpp index 301ef9ce115..173f0829a88 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ci.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ci.cpp @@ -45,20 +45,37 @@ be_visitor_interface_fwd_ci::~be_visitor_interface_fwd_ci (void) int be_visitor_interface_fwd_ci::visit_interface_fwd (be_interface_fwd *node) { + TAO_OutStream *os = this->ctx_->stream (); + if (!node->cli_inline_gen () && !node->imported ()) { -#if 0 - // We don't generate any code here..... - // It is possible to generate the definitions for the _var and - // _out types, but if we do that then the _duplicate() and - // _nil() methods cannot be inlined. + // generate the ifdefined macro for the _var type + os->gen_ifdef_macro (node->flatname (), "_var"); + + if (node->gen_var_impl () == -1) + { + ACE_ERROR_RETURN ((LM_ERROR, + "(%N:%l) be_visitor_interface_fwd_ci::" + "visit_interface_fwd - " + "codegen for _var failed\n"), -1); + } + + os->gen_endif (); + + // generate the ifdefined macro for the _out type + os->gen_ifdef_macro (node->flatname (), "_out"); - // Since these classes will be generated once the forward - // declaration is resolved there is really no problem here -#endif /* 0 */ + if (node->gen_out_impl () == -1) + { + ACE_ERROR_RETURN ((LM_ERROR, + "(%N:%l) be_visitor_interface_fwd_ci::" + "visit_interface_fwd - " + "codegen for _out failed\n"), -1); + } + os->gen_endif (); - node->cli_inline_gen (I_TRUE); + node->cli_stub_gen (I_TRUE); } return 0; } |