diff options
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_operation/direct_collocated_sh.cpp')
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_operation/direct_collocated_sh.cpp | 76 |
1 files changed, 27 insertions, 49 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/direct_collocated_sh.cpp b/TAO/TAO_IDL/be/be_visitor_operation/direct_collocated_sh.cpp index 19c9b14417e..191a54fd26c 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/direct_collocated_sh.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/direct_collocated_sh.cpp @@ -18,46 +18,46 @@ // // ============================================================================ -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - +#include "idl.h" +#include "idl_extern.h" +#include "be.h" #include "be_visitor_operation.h" -ACE_RCSID(be_visitor_operation, direct_collocated_sh, "$Id$") +ACE_RCSID (be_visitor_operation, + direct_collocated_sh, + "$Id$") // ************************************************************************* -// be_visitor_operation_direct_collocated_sh -- // This visitor generates code for the direct_collocated operation signature in a -// server header file +// server header file. // ************************************************************************* -be_visitor_operation_direct_collocated_sh::be_visitor_operation_direct_collocated_sh -(be_visitor_context *ctx) +be_visitor_operation_direct_collocated_sh:: +be_visitor_operation_direct_collocated_sh (be_visitor_context *ctx) : be_visitor_scope (ctx) { } -be_visitor_operation_direct_collocated_sh::~be_visitor_operation_direct_collocated_sh (void) +be_visitor_operation_direct_collocated_sh:: +~be_visitor_operation_direct_collocated_sh (void) { } -int be_visitor_operation_direct_collocated_sh::visit_operation (be_operation *node) +int be_visitor_operation_direct_collocated_sh::visit_operation ( + be_operation *node + ) { - TAO_OutStream *os; // output stream - be_type *bt; // type node representing the return type - - os = this->ctx_->stream (); - this->ctx_->node (node); // save the node + TAO_OutStream *os = this->ctx_->stream (); + this->ctx_->node (node); - os->indent (); // start with the current indentation level + os->indent (); - // every operation is declared virtual in the client code *os << "virtual "; - // STEP I: generate the return type - bt = be_type::narrow_from_decl (node->return_type ()); + // STEP I: generate the return type. + be_type *bt = be_type::narrow_from_decl (node->return_type ()); + if (!bt) { ACE_ERROR_RETURN ((LM_ERROR, @@ -67,58 +67,36 @@ int be_visitor_operation_direct_collocated_sh::visit_operation (be_operation *no -1); } - // grab the right visitor to generate the return type be_visitor_context ctx (*this->ctx_); ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_OTHERS); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_operation_sh::" - "visit_operation - " - "Bad visitor to return type\n"), - -1); - } + be_visitor_operation_rettype oro_visitor (&ctx); - if (bt->accept (visitor) == -1) + if (bt->accept (&oro_visitor) == -1) { - delete visitor; ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_operation_sh::" "visit_operation - " "codegen for return type failed\n"), -1); } - delete visitor; - // STEP 2: generate the operation name + // STEP 2: generate the operation name. *os << " " << node->local_name (); - // STEP 3: generate the argument list with the appropriate mapping. For these - // we grab a visitor that generates the parameter listing + // STEP 3: generate the argument list with the appropriate mapping. For + // these, we grab a visitor that generates the parameter listing. ctx = *this->ctx_; ctx.state (TAO_CodeGen::TAO_OPERATION_ARGLIST_COLLOCATED_SH); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_operation_sh::" - "visit_operation - " - "Bad visitor to return type\n"), - -1); - } + be_visitor_operation_arglist oac_visitor (&ctx); - if (node->accept (visitor) == -1) + if (node->accept (&oac_visitor) == -1) { - delete visitor; ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_operation_sh::" "visit_operation - " "codegen for argument list failed\n"), -1); } - delete visitor; return 0; } |