summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_visitor_traits.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_traits.cpp')
-rw-r--r--TAO/TAO_IDL/be/be_visitor_traits.cpp399
1 files changed, 0 insertions, 399 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_traits.cpp b/TAO/TAO_IDL/be/be_visitor_traits.cpp
index 9dfff51054c..36032f9b35d 100644
--- a/TAO/TAO_IDL/be/be_visitor_traits.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_traits.cpp
@@ -22,19 +22,9 @@
#include "be_valuetype_fwd.h"
#include "be_eventtype.h"
#include "be_eventtype_fwd.h"
-#include "be_array.h"
-#include "be_enum.h"
-#include "be_sequence.h"
-#include "be_string.h"
-#include "be_structure.h"
-#include "be_field.h"
-#include "be_union.h"
-#include "be_union_branch.h"
#include "be_typedef.h"
#include "be_helper.h"
#include "be_extern.h"
-#include "utl_identifier.h"
-#include "idl_defines.h"
ACE_RCSID (be,
be_visitor_traits,
@@ -132,29 +122,6 @@ be_visitor_traits::visit_interface (be_interface *node)
os->gen_endif ();
}
- // This should be generated even for imported nodes. The ifdef guard prevents
- // multiple declarations.
- if (node->seen_in_operation ())
- {
- os->gen_ifdef_macro (node->flat_name (), "arg_traits");
-
- *os << be_nl << be_nl
- << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
- << "class " << be_global->stub_export_macro () << " Arg_Traits<"
- << node->name () << ">" << be_idt_nl
- << ": public" << be_idt << be_idt_nl
- << "Object_Arg_Traits_T<" << be_idt << be_idt_nl
- << node->name () << "_ptr," << be_nl
- << node->name () << "_var," << be_nl
- << node->name () << "_out," << be_nl
- << "TAO::Objref_Traits<" << node->name () << ">" << be_uidt_nl
- << ">" << be_uidt << be_uidt << be_uidt << be_uidt_nl
- << "{" << be_nl
- << "};";
-
- os->gen_endif ();
- }
-
if (this->visit_scope (node) != 0)
{
ACE_ERROR_RETURN ((LM_ERROR,
@@ -221,29 +188,6 @@ be_visitor_traits::visit_valuetype (be_valuetype *node)
os->gen_endif ();
}
- // This should be generated even for imported nodes. The ifdef guard prevents
- // multiple declarations.
- if (node->seen_in_operation ())
- {
- os->gen_ifdef_macro (node->flat_name (), "arg_traits");
-
- *os << be_nl << be_nl
- << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
- << "class " << be_global->stub_export_macro () << " Arg_Traits<"
- << node->name () << ">" << be_idt_nl
- << ": public" << be_idt << be_idt_nl
- << "Object_Arg_Traits_T<" << be_idt << be_idt_nl
- << node->name () << " *," << be_nl
- << node->name () << "_var," << be_nl
- << node->name () << "_out," << be_nl
- << "TAO::Value_Traits<" << node->name () << ">" << be_uidt_nl
- << ">" << be_uidt << be_uidt << be_uidt << be_uidt_nl
- << "{" << be_nl
- << "};";
-
- os->gen_endif ();
- }
-
int status = this->visit_scope (node);
if (status != 0)
@@ -297,349 +241,6 @@ be_visitor_traits::visit_eventtype_fwd (be_eventtype_fwd *node)
return this->visit_valuetype_fwd (node);
}
-int
-be_visitor_traits::visit_sequence (be_sequence *node)
-{
- if (node->cli_traits_gen () || !node->seen_in_operation ())
- {
- return 0;
- }
-
- TAO_OutStream *os = this->ctx_->stream ();
- be_typedef *alias = this->ctx_->alias ();
-
- *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
- << "// " << __FILE__ << ":" << __LINE__;
-
- // This will include the bound if there is one, and should also
- // prevent duplication, even if there have been further typdefs.
- os->gen_ifdef_macro (node->gen_name (), "traits");
-
- *os << be_nl << be_nl
- << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
- << "class " << be_global->stub_export_macro () << " Arg_Traits<"
- << alias->name () << ">" << be_idt_nl
- << ": public" << be_idt << be_idt_nl
- << "Var_Size_Arg_Traits_T<" << be_idt << be_idt_nl
- << alias->name () << "," << be_nl
- << alias->name () << "_var," << be_nl
- << alias->name () << "_out" << be_uidt_nl
- << ">" << be_uidt << be_uidt << be_uidt << be_uidt_nl
- << "{" << be_nl
- << "};";
-
- os->gen_endif ();
-
- node->cli_traits_gen (I_TRUE);
- return 0;
-}
-
-int
-be_visitor_traits::visit_string (be_string *node)
-{
- if (node->cli_traits_gen () || !node->seen_in_operation ())
- {
- return 0;
- }
-
- unsigned long bound = node->max_size ()->ev ()->u.ulval;
- be_typedef *alias = this->ctx_->alias ();
-
- // Unbounded (w)string args are handled as a predefined type.
- // Bounded (w)strings must come in as a typedef - they can't
- // be used directly as arguments or return types.
- if (bound == 0 || alias == 0)
- {
- return 0;
- }
-
- idl_bool wide = (node->width () != 1);
-
- TAO_OutStream *os = this->ctx_->stream ();
-
- os->gen_ifdef_macro (node->flat_name (), "arg_traits");
-
- // A workaround 'dummy' type, since bounded (w)strings are all
- // generated as typedefs of (w)char *.
- *os << be_nl << be_nl
- << "struct " << alias->local_name () << "_" << bound << " {};";
-
- *os << be_nl << be_nl
- << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
- << "class " << be_global->stub_export_macro () << " Arg_Traits<"
- << alias->local_name () << "_" << bound << ">" << be_idt_nl
- << ": public" << be_idt << be_idt_nl
- << "BD_" << (wide ? "W" : "")
- << "String_Arg_Traits<" << bound << ">"
- << be_uidt << be_uidt << be_uidt_nl
- << "{" << be_nl
- << "};";
-
- os->gen_endif ();
-
- node->cli_traits_gen (I_TRUE);
- return 0;
-}
-
-int
-be_visitor_traits::visit_array (be_array *node)
-{
- if (node->cli_traits_gen ())
- {
- return 0;
- }
-
- TAO_OutStream *os = this->ctx_->stream ();
-
- // This should be generated even for imported nodes. The ifdef guard prevents
- // multiple declarations.
- if (node->seen_in_operation ())
- {
- os->gen_ifdef_macro (node->flat_name (), "arg_traits");
-
- *os << be_nl << be_nl
- << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
- << "class " << be_global->stub_export_macro () << " Arg_Traits<"
- << node->name () << ">" << be_idt_nl
- << ": public" << be_idt << be_idt_nl;
-
- *os << (node->size_type () == AST_Type::FIXED ? "Fixed" : "Var")
- << "_Array_Arg_Traits_T<" << be_idt << be_idt_nl
- << node->name () << "," << be_nl
- << node->name () << "_slice," << be_nl
- << node->name () << "_var," << be_nl;
-
- if (node->size_type () == AST_Type::VARIABLE)
- {
- *os << node->name () << "_out," << be_nl;
- }
-
- *os << node->name () << "_forany" << be_uidt_nl
- << ">" << be_uidt << be_uidt << be_uidt << be_uidt_nl
- << "{" << be_nl
- << "};";
-
- os->gen_endif ();
- }
-
- node->cli_traits_gen (I_TRUE);
- return 0;
-}
-
-int
-be_visitor_traits::visit_enum (be_enum *node)
-{
- if (node->cli_traits_gen () || !node->seen_in_operation ())
- {
- return 0;
- }
-
- TAO_OutStream *os = this->ctx_->stream ();
-
- *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
- << "// " << __FILE__ << ":" << __LINE__;
-
- // This should be generated even for imported nodes. The ifdef guard prevents
- // multiple declarations.
- os->gen_ifdef_macro (node->flat_name (), "arg_traits");
-
- *os << be_nl << be_nl
- << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
- << "class " << be_global->stub_export_macro () << " Arg_Traits<"
- << node->name () << ">" << be_idt_nl
- << ": public" << be_idt << be_idt_nl;
-
- *os << "Basic_Arg_Traits_T<" << be_idt << be_idt_nl
- << node->name () << be_uidt_nl
- << ">" << be_uidt << be_uidt << be_uidt << be_uidt_nl
- << "{" << be_nl
- << "};";
-
- os->gen_endif ();
-
- node->cli_traits_gen (I_TRUE);
- return 0;
-}
-
-int
-be_visitor_traits::visit_structure (be_structure *node)
-{
- if (node->cli_traits_gen ())
- {
- return 0;
- }
-
- // This should be generated even for imported nodes. The ifdef guard prevents
- // multiple declarations.
- if (node->seen_in_operation ())
- {
- TAO_OutStream *os = this->ctx_->stream ();
-
- *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
- << "// " << __FILE__ << ":" << __LINE__;
-
- os->gen_ifdef_macro (node->flat_name (), "arg_traits");
-
- *os << be_nl << be_nl
- << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
- << "class " << be_global->stub_export_macro () << " Arg_Traits<"
- << node->name () << ">" << be_idt_nl
- << ": public" << be_idt << be_idt_nl;
-
- *os << (node->size_type () == AST_Type::FIXED ? "Fixed" : "Var")
- << "_Size_Arg_Traits_T<" << be_idt << be_idt_nl
- << node->name ();
-
- if (node->size_type () == AST_Type::VARIABLE)
- {
- *os << "," << be_nl
- << node->name () << "_var," << be_nl
- << node->name () << "_out";
- }
-
- *os << be_uidt_nl
- << ">" << be_uidt << be_uidt << be_uidt << be_uidt_nl
- << "{" << be_nl
- << "};";
-
- os->gen_endif ();
- }
-
- if (this->visit_scope (node) != 0)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_traits::"
- "visit_structure - visit scope failed\n"),
- -1);
- }
-
- node->cli_traits_gen (I_TRUE);
- return 0;
-}
-
-int
-be_visitor_traits::visit_field (be_field *node)
-{
- be_type *bt = be_type::narrow_from_decl (node->field_type ());
-
- if (!bt)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_traits::"
- "visit_field - "
- "Bad field type\n"),
- -1);
- }
-
- // Valuetypes may not be *declared* in a field, so this will
- // get handled elsewhere, and will also avoid nested valuetype
- // recursion. So we set the field node as processed (the
- // field *type* may not have been reached yet) and return.
- if (bt->base_node_type () == AST_Decl::NT_valuetype)
- {
- node->cli_traits_gen (I_TRUE);
- return 0;
- }
-
- if (bt->accept (this) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_traits::"
- "visit_field - "
- "codegen for field type failed\n"),
- -1);
- }
-
- node->cli_traits_gen (I_TRUE);
- bt->cli_traits_gen (I_TRUE);
- return 0;
-}
-
-int
-be_visitor_traits::visit_union (be_union *node)
-{
- if (node->cli_traits_gen ())
- {
- return 0;
- }
-
- // This should be generated even for imported nodes. The ifdef guard prevents
- // multiple declarations.
- if (node->seen_in_operation ())
- {
- TAO_OutStream *os = this->ctx_->stream ();
-
- *os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
- << "// " << __FILE__ << ":" << __LINE__;
-
- os->gen_ifdef_macro (node->flat_name (), "arg_traits");
-
- *os << be_nl << be_nl
- << "ACE_TEMPLATE_SPECIALIZATION" << be_nl
- << "class " << be_global->stub_export_macro () << " Arg_Traits<"
- << node->name () << ">" << be_idt_nl
- << ": public" << be_idt << be_idt_nl;
-
- *os << (node->size_type () == AST_Type::FIXED ? "Fixed" : "Var")
- << "_Size_Arg_Traits_T<" << be_idt << be_idt_nl
- << node->name ();
-
- if (node->size_type () == AST_Type::VARIABLE)
- {
- *os << "," << be_nl
- << node->name () << "_var," << be_nl
- << node->name () << "_out";
- }
-
- *os << be_uidt_nl
- << ">" << be_uidt << be_uidt << be_uidt << be_uidt_nl
- << "{" << be_nl
- << "};";
-
- os->gen_endif ();
- }
-
- int status = this->visit_scope (node);
-
- if (status != 0)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_traits::"
- "visit_union - visit scope failed\n"),
- -1);
- }
-
- node->cli_traits_gen (I_TRUE);
- return 0;
-}
-
-int
-be_visitor_traits::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_traits::"
- "visit_union_branch - "
- "Bad union_branch type\n"),
- -1);
- }
-
- if (bt->accept (this) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_traits::"
- "visit_union_branch - "
- "codegen for union_branch type failed\n"),
- -1);
- }
-
- node->cli_traits_gen (I_TRUE);
- return 0;
-}
-
int
be_visitor_traits::visit_typedef (be_typedef *node)
{