summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_visitor_union_branch/public_cs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_union_branch/public_cs.cpp')
-rw-r--r--TAO/TAO_IDL/be/be_visitor_union_branch/public_cs.cpp184
1 files changed, 57 insertions, 127 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_union_branch/public_cs.cpp b/TAO/TAO_IDL/be/be_visitor_union_branch/public_cs.cpp
index 5d8424c9b92..8f2b1f9a377 100644
--- a/TAO/TAO_IDL/be/be_visitor_union_branch/public_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_union_branch/public_cs.cpp
@@ -18,244 +18,174 @@
//
// ============================================================================
-#include "idl.h"
-#include "idl_extern.h"
-#include "be.h"
-
+#include "be.h"
#include "be_visitor_union_branch.h"
-ACE_RCSID(be_visitor_union_branch, public_cs, "$Id$")
+ACE_RCSID (be_visitor_union_branch,
+ public_cs,
+ "$Id$")
// **********************************************
-// visitor for union_branch in the client stubs file
+// Visitor for union_branch in the client stubs file.
// **********************************************
-// constructor
-be_visitor_union_branch_public_cs::be_visitor_union_branch_public_cs (be_visitor_context *ctx)
+be_visitor_union_branch_public_cs::be_visitor_union_branch_public_cs (
+ be_visitor_context *ctx
+ )
: be_visitor_decl (ctx)
{
}
-// destructor
be_visitor_union_branch_public_cs::~be_visitor_union_branch_public_cs (void)
{
}
-// visit the union_branch node
int
be_visitor_union_branch_public_cs::visit_union_branch (be_union_branch *node)
{
be_type *bt = be_type::narrow_from_decl (node->field_type ());
+
if (!bt)
{
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_union_branch_public_cs::"
"visit_union_branch - "
- "Bad union_branch type\n"
- ), -1);
+ "Bad union_branch type\n"),
+ -1);
}
- this->ctx_->node (node); // save the node
+ this->ctx_->node (node);
+
if (bt->accept (this) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_union_branch_public_cs::"
"visit_union_branch - "
- "codegen for union_branch type failed\n"
- ), -1);
+ "codegen for union_branch type failed\n"),
+ -1);
}
+
return 0;
}
-// visit array type
int
be_visitor_union_branch_public_cs::visit_array (be_array *node)
{
- // if not a typedef and we are defined in the use scope, we must be
- // defined
-
- if (!this->ctx_->alias () // not a typedef
+ // If not a typedef and we are defined in the use scope, we must be
+ // defined.
+ if (!this->ctx_->alias ()
&& node->is_child (this->ctx_->scope ()))
{
- // anonymous array case
-
- // instantiate a visitor context with a copy of our context. This info
- // will be modified based on what type of node we are visiting
+ // Anonymous array case.
be_visitor_context ctx (*this->ctx_);
- ctx.node (node); // set the node to be the node being visited. The scope
- // is still the same
-
- // first generate the inline operations for this anonymous array type
+ ctx.node (node);
ctx.state (TAO_CodeGen::TAO_ARRAY_CS);
- be_visitor *visitor = tao_cg->make_visitor (&ctx);
- if (!visitor)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_union_branch_public_cs::"
- "visit_array - "
- "Bad visitor\n"
- ), -1);
- }
- if (node->accept (visitor) == -1)
+ be_visitor_array_cs visitor (&ctx);
+
+ if (node->accept (&visitor) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_union_branch_public_cs::"
"visit_array - "
- "codegen failed\n"
- ), -1);
+ "codegen failed\n"),
+ -1);
}
- delete visitor;
}
return 0;
}
-// visit enum type
int
be_visitor_union_branch_public_cs::visit_enum (be_enum *node)
{
- // instantiate a visitor context with a copy of our context. This info
- // will be modified based on what type of node we are visiting
be_visitor_context ctx (*this->ctx_);
- ctx.node (node); // set the node to be the node being visited. The scope is
- // still the same
-
- // generate the typcode for enums
+ ctx.node (node);
ctx.state (TAO_CodeGen::TAO_ENUM_CS);
- be_visitor *visitor = tao_cg->make_visitor (&ctx);
- if (!visitor)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_union_branch_public_cs::"
- "visit_enum - "
- "Bad visitor\n"
- ), -1);
- }
- if (node->accept (visitor) == -1)
+ be_visitor_enum_cs visitor (&ctx);
+
+ if (node->accept (&visitor) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_union_branch_public_cs::"
"visit_enum - "
- "codegen failed\n"
- ), -1);
+ "codegen failed\n"),
+ -1);
}
- delete visitor;
+
return 0;
}
-// visit sequence type
int
be_visitor_union_branch_public_cs::visit_sequence (be_sequence *node)
{
- // if not a typedef and we are defined in the use scope, we must be
- // defined
+ // If not a typedef and we are defined in the use scope, we must be
+ // defined.
- if (!this->ctx_->alias () // not a typedef
+ if (!this->ctx_->alias ()
&& node->is_child (this->ctx_->scope ()))
{
- // anonymous array case
-
- // instantiate a visitor context with a copy of our context. This info
- // will be modified based on what type of node we are visiting
+ // Anonymous sequence case.
be_visitor_context ctx (*this->ctx_);
- ctx.node (node); // set the node to be the node being visited. The scope
- // is still the same
-
- // first generate the inline operations for this anonymous sequence type
+ ctx.node (node);
ctx.state (TAO_CodeGen::TAO_SEQUENCE_CS);
- be_visitor *visitor = tao_cg->make_visitor (&ctx);
- if (!visitor)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_union_branch_public_cs::"
- "visit_sequence - "
- "Bad visitor\n"
- ), -1);
- }
- if (node->accept (visitor) == -1)
+ be_visitor_sequence_cs visitor (&ctx);
+
+ if (node->accept (&visitor) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_union_branch_public_cs::"
"visit_sequence - "
- "codegen failed\n"
- ), -1);
+ "codegen failed\n"),
+ -1);
}
- delete visitor;
}
return 0;
}
-// visit string type
int
be_visitor_union_branch_public_cs::visit_string (be_string *)
{
return 0;
}
-// visit structure type
int
be_visitor_union_branch_public_cs::visit_structure (be_structure *node)
{
- // instantiate a visitor context with a copy of our context. This info
- // will be modified based on what type of node we are visiting
be_visitor_context ctx (*this->ctx_);
- ctx.node (node); // set the node to be the node being visited. The scope is
- // still the same
-
- // generate the inline code for structs
+ ctx.node (node);
ctx.state (TAO_CodeGen::TAO_STRUCT_CS);
- be_visitor *visitor = tao_cg->make_visitor (&ctx);
- if (!visitor)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_union_branch_public_cs::"
- "visit_struct - "
- "Bad visitor\n"
- ), -1);
- }
- if (node->accept (visitor) == -1)
+ be_visitor_structure_cs visitor (&ctx);
+
+ if (node->accept (&visitor) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_union_branch_public_cs::"
"visit_struct - "
- "codegen failed\n"
- ), -1);
+ "codegen failed\n"),
+ -1);
}
- delete visitor;
+
return 0;
}
-// visit union type
int
be_visitor_union_branch_public_cs::visit_union (be_union *node)
{
- // instantiate a visitor context with a copy of our context. This info
- // will be modified based on what type of node we are visiting
be_visitor_context ctx (*this->ctx_);
- ctx.node (node); // set the node to be the node being visited. The scope is
- // still the same
-
- // generate the inline code for union
+ ctx.node (node);
ctx.state (TAO_CodeGen::TAO_UNION_CS);
- be_visitor *visitor = tao_cg->make_visitor (&ctx);
- if (!visitor)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_union_branch_public_cs::"
- "visit_union - "
- "Bad visitor\n"
- ), -1);
- }
- if (node->accept (visitor) == -1)
+ be_visitor_union_cs visitor (&ctx);
+
+ if (node->accept (&visitor) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_union_branch_public_cs::"
"visit_union - "
- "codegen failed\n"
- ), -1);
+ "codegen failed\n"),
+ -1);
}
- delete visitor;
+
return 0;
}