summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_visitor_operation/operation_is.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_operation/operation_is.cpp')
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/operation_is.cpp227
1 files changed, 0 insertions, 227 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/operation_is.cpp b/TAO/TAO_IDL/be/be_visitor_operation/operation_is.cpp
deleted file mode 100644
index 2bb11720418..00000000000
--- a/TAO/TAO_IDL/be/be_visitor_operation/operation_is.cpp
+++ /dev/null
@@ -1,227 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// TAO IDL
-//
-// = FILENAME
-// operation_is.cpp
-//
-// = DESCRIPTION
-// Visitor generating code for Operation in the implementation skeleton
-//
-// = AUTHOR
-// Yamuna Krishnamurthy (yamuna@cs.wustl.edu)
-//
-// ============================================================================
-
-#include "idl.h"
-#include "idl_extern.h"
-#include "be.h"
-#include "ace/SString.h"
-
-#include "be_visitor_operation.h"
-
-ACE_RCSID(be_visitor_operation, operation_is, "$Id$")
-
-// ************************************************************
-// Operation visitor for implementation skeleton
-// ************************************************************
-
-be_visitor_operation_is::be_visitor_operation_is (be_visitor_context *ctx)
- : be_visitor_operation (ctx)
-{
-}
-
-be_visitor_operation_is::~be_visitor_operation_is (void)
-{
-}
-
-int
-be_visitor_operation_is::visit_operation (be_operation *node)
-{
- TAO_OutStream *os; // output stream
- be_type *bt; // type node representing the return type
-
- //cout<<"Within visit_operation "<<endl;
- os = this->ctx_->stream ();
- this->ctx_->node (node); // save the node
-
- os->indent (); // start with the current indentation level
-
-
-
-
- // STEP I: generate the return type
- bt = be_type::narrow_from_decl (node->return_type ());
- if (!bt)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_is::"
- "visit_operation - "
- "Bad return type\n"),
- -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_is::"
- "visit_operation - "
- "Bad visitor to return type\n"),
- -1);
- }
-
- if (bt->accept (visitor) == -1)
- {
- delete visitor;
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_is::"
- "visit_operation - "
- "codegen for return type failed\n"),
- -1);
- }
- delete visitor;
-
-
- ACE_CString str(node->flatname ());
-
-
- int lnmlength = ACE_OS::strlen (node->local_name ()->get_string ());
-
- int fnmlength = ACE_OS::strlen (node->flatname ());
- fnmlength--;
-
- char * classname = str.substr (0,(fnmlength-lnmlength) ).rep ();
-
- // STEP 2: generate the operation name
- *os << " " << idl_global->impl_class_prefix () << classname << idl_global->impl_class_suffix () << "::" << node->local_name ();
-
- // 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_IS);
- visitor = tao_cg->make_visitor (&ctx);
-
-
- if (!visitor)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_operation_is::"
- "visit_operation - "
- "Bad visitor to return type\n"),
- -1);
- }
-
-
- if (node->accept (visitor) == -1)
- {
- delete visitor;
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_is::"
- "visit_operation - "
- "codegen for argument list failed\n"),
- -1);
- }
- delete visitor;
-
- //generate the excetions thrown by the operation
- this->gen_raise_exception (node);
-
- *os <<be_idt_nl << "{"<<be_idt_nl;
- *os << "//Add your implementation here"<<be_uidt_nl;
-
- //Code to generate teh return statement in the operations.....
- //Can be uncommented when required
-
- /*
- ctx = *this->ctx_;
- ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_IS);
- visitor = tao_cg->make_visitor (&ctx);
-
- if (!visitor)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_operation_is::"
- "visit_operation - "
- "Bad visitor to return type\n"),
- -1);
- }
-
-
- if (bt->accept (visitor) == -1)
- {
- delete visitor;
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_is::"
- "visit_operation - "
- "codegen for return type failed\n"),
- -1);
- }
- delete visitor;
- */
-
- *os << "}" << be_nl << be_uidt_nl;
-
-
- return 0;
-}
-
-
-//method to generate the exceptions throw by the operation
-int
-be_visitor_operation_is::gen_raise_exception (be_operation *node)
-{
-
- TAO_OutStream *os = this->ctx_->stream (); // grab the out stream
-
- if (node->exceptions ())
- {
- os->indent ();
-
- // initialize an iterator to iterate thru the exception list
- UTL_ExceptlistActiveIterator *ei;
- ACE_NEW_RETURN (ei,
- UTL_ExceptlistActiveIterator (node->exceptions ()),
- -1);
- *os << be_idt_nl << "TAO_THROW_SPEC ((";
- // continue until each element is visited
- while (!ei->is_done ())
- {
- be_exception *excp = be_exception::narrow_from_decl (ei->item ());
-
- if (excp == 0)
- {
- delete ei;
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_operation_exceptlist_cs"
- "visit_operation - "
- "codegen for scope failed\n"), -1);
-
- }
-
-
- // allocator method
- *os << excp->name ();
- ei->next ();
- if (!ei->is_done ())
- {
- *os << "," <<be_nl<<"\t\t";
- //os->indent ();
- }
- // except the last one is processed?
-
- } // end of while loop
- delete ei;
- *os << "))"<<be_uidt;
- } // end of if
-
- return 0;
-
-}