summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_visitor_argument
diff options
context:
space:
mode:
authorWilliam R. Otte <wotte@dre.vanderbilt.edu>2006-07-24 15:50:11 +0000
committerWilliam R. Otte <wotte@dre.vanderbilt.edu>2006-07-24 15:50:11 +0000
commit6b846cf03c0bcbd8c276cb0af61a181e5f98eaae (patch)
treeda50d054f9c761c3f6a5923f6979e93306c56d68 /TAO/TAO_IDL/be/be_visitor_argument
parent0e555b9150d38e3b3473ba325b56db2642e6352b (diff)
downloadATCD-6b846cf03c0bcbd8c276cb0af61a181e5f98eaae.tar.gz
Repo restructuring
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_argument')
-rw-r--r--TAO/TAO_IDL/be/be_visitor_argument/arglist.cpp455
-rw-r--r--TAO/TAO_IDL/be/be_visitor_argument/argument.cpp98
-rw-r--r--TAO/TAO_IDL/be/be_visitor_argument/invoke_cs.cpp681
-rw-r--r--TAO/TAO_IDL/be/be_visitor_argument/marshal_ss.cpp695
-rw-r--r--TAO/TAO_IDL/be/be_visitor_argument/paramlist.cpp237
-rw-r--r--TAO/TAO_IDL/be/be_visitor_argument/post_upcall_ss.cpp133
-rw-r--r--TAO/TAO_IDL/be/be_visitor_argument/upcall_ss.cpp424
-rw-r--r--TAO/TAO_IDL/be/be_visitor_argument/vardecl_ss.cpp457
8 files changed, 0 insertions, 3180 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_argument/arglist.cpp b/TAO/TAO_IDL/be/be_visitor_argument/arglist.cpp
deleted file mode 100644
index 97293ddf2a3..00000000000
--- a/TAO/TAO_IDL/be/be_visitor_argument/arglist.cpp
+++ /dev/null
@@ -1,455 +0,0 @@
-//
-// $Id$
-//
-
-// ============================================================================
-//
-// = LIBRARY
-// TAO IDL
-//
-// = FILENAME
-// arglist.cpp
-//
-// = DESCRIPTION
-// Visitor that generates the parameters in an Operation signature
-//
-// = AUTHOR
-// Aniruddha Gokhale
-//
-// ============================================================================
-
-ACE_RCSID (be_visitor_argument,
- arglist,
- "$Id$")
-
-
-// ************************************************************
-// be_visitor_args_arglist for parameter list in method declarations and
-// definitions
-// ************************************************************
-
-be_visitor_args_arglist::be_visitor_args_arglist (be_visitor_context *ctx)
- : be_visitor_args (ctx)
-{
-}
-
-be_visitor_args_arglist::~be_visitor_args_arglist (void)
-{
-}
-
-int be_visitor_args_arglist::visit_argument (be_argument *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- this->ctx_->node (node);
-
- // Retrieve the type.
- be_type *bt = be_type::narrow_from_decl (node->field_type ());
-
- if (!bt)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_arglist::"
- "visit_argument - "
- "Bad argument type\n"),
- -1);
- }
-
- // Different types have different mappings when used as in/out or
- // inout parameters. Let this visitor deal with the type.
- if (bt->accept (this) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_arglist::"
- "visit_argument - "
- "cannot accept visitor\n"),
- -1);
- }
-
- *os << " " << node->local_name ();
- return 0;
-}
-
-int be_visitor_args_arglist::visit_array (be_array *node)
-{
- TAO_OutStream *os = this->ctx_->stream (); // get output stream
-
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- *os << "const " << this->type_name (node);
- break;
- case AST_Argument::dir_INOUT:
- *os << this->type_name (node);
- break;
- case AST_Argument::dir_OUT:
- *os << this->type_name (node, "_out");
- break;
- }
-
- return 0;
-}
-
-int be_visitor_args_arglist::visit_enum (be_enum *node)
-{
- TAO_OutStream *os = this->ctx_->stream (); // get output stream
-
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- *os << this->type_name (node);
- break;
- case AST_Argument::dir_INOUT:
- *os << this->type_name (node) << " &";
- break;
- case AST_Argument::dir_OUT:
- *os << this->type_name (node, "_out");
- break;
- }
-
- return 0;
-}
-
-int be_visitor_args_arglist::visit_interface (be_interface *node)
-{
- TAO_OutStream *os = this->ctx_->stream (); // get output stream
-
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- *os << this->type_name (node, "_ptr");
- break;
- case AST_Argument::dir_INOUT: // inout
- *os << this->type_name (node, "_ptr") << " &";
- break;
- case AST_Argument::dir_OUT:
- *os << this->type_name (node, "_out");
- break;
- }
-
- return 0;
-}
-
-int be_visitor_args_arglist::visit_interface_fwd (be_interface_fwd *node)
-{
- TAO_OutStream *os = this->ctx_->stream (); // get output stream
-
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- *os << this->type_name (node, "_ptr");
- break;
- case AST_Argument::dir_INOUT: // inout
- *os << this->type_name (node, "_ptr") << " &";
- break;
- case AST_Argument::dir_OUT:
- *os << this->type_name (node, "_out");
- break;
- }
-
- return 0;
-}
-
-int be_visitor_args_arglist::visit_component (be_component *node)
-{
- return this->visit_interface (node);
-}
-
-int be_visitor_args_arglist::visit_component_fwd (be_component_fwd *node)
-{
- return this->visit_interface_fwd (node);
-}
-
-int be_visitor_args_arglist::visit_native (be_native *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
-
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- *os << this->type_name (node);
- break;
- case AST_Argument::dir_INOUT:
- *os << this->type_name (node) << " &";
- break;
- case AST_Argument::dir_OUT:
- *os << this->type_name (node) << " &";
- break;
- }
-
- return 0;
-}
-
-int be_visitor_args_arglist::visit_predefined_type (be_predefined_type *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- AST_PredefinedType::PredefinedType pt = node->pt ();
-
- if (pt == AST_PredefinedType::PT_any)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- *os << "const " << this->type_name (node) << " &";
- break;
- case AST_Argument::dir_INOUT:
- *os << this->type_name (node) << " &";
- break;
- case AST_Argument::dir_OUT:
- *os << this->type_name (node, "_out");
- break;
- }
- }
- else if (pt == AST_PredefinedType::PT_value)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- *os << this->type_name (node) << " *";
- break;
- case AST_Argument::dir_INOUT:
- *os << this->type_name (node) << " *&";
- break;
- case AST_Argument::dir_OUT:
- *os << this->type_name (node, "_out");
- break;
- }
- }
- else if (pt == AST_PredefinedType::PT_pseudo
- || pt == AST_PredefinedType::PT_object)
- {
- // The only PT_pseudo that doesn't take a _ptr suffix.
- bool is_tckind =
- (ACE_OS::strcmp (node->local_name ()->get_string (), "TCKind") == 0);
-
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- if (is_tckind)
- {
- *os << this->type_name (node);
- }
- else
- {
- *os << this->type_name (node, "_ptr");
- }
-
- break;
- case AST_Argument::dir_INOUT:
- if (is_tckind)
- {
- *os << this->type_name (node) << " &";
- }
- else
- {
- *os << this->type_name (node, "_ptr") << " &";
- }
-
- break;
- case AST_Argument::dir_OUT:
- *os << this->type_name (node, "_out");
- break;
- }
- }
- else
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- *os << this->type_name (node);
- break;
- case AST_Argument::dir_INOUT:
- *os << this->type_name (node) << " &";
- break;
- case AST_Argument::dir_OUT:
- *os << this->type_name (node, "_out");
- break;
- }
- }
-
- return 0;
-}
-
-int be_visitor_args_arglist::visit_sequence (be_sequence *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
-
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- *os << "const " << this->type_name (node) << " &";
- break;
- case AST_Argument::dir_INOUT:
- *os << this->type_name (node) << " &";
- break;
- case AST_Argument::dir_OUT:
- *os << this->type_name (node, "_out");
- break;
- }
-
- return 0;
-}
-
-int be_visitor_args_arglist::visit_string (be_string *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
-
- if (node->width () == (long) sizeof (char))
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- *os << "const char *";
- break;
- case AST_Argument::dir_INOUT:
- *os << "char *&";
- break;
- case AST_Argument::dir_OUT:
- *os << "::CORBA::String_out";
- break;
- }
- }
- else
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- *os << "const ::CORBA::WChar *";
- break;
- case AST_Argument::dir_INOUT:
- *os << "::CORBA::WChar *&";
- break;
- case AST_Argument::dir_OUT:
- *os << "::CORBA::WString_out";
- break;
- }
- }
-
- return 0;
-}
-
-int be_visitor_args_arglist::visit_structure (be_structure *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
-
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- *os << "const " << this->type_name (node) << " &";
- break;
- case AST_Argument::dir_INOUT:
- *os << this->type_name (node) << " &";
- break;
- case AST_Argument::dir_OUT:
- *os << this->type_name (node, "_out");
- break;
- }
-
- return 0;
-}
-
-int be_visitor_args_arglist::visit_union (be_union *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
-
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- *os << "const " << this->type_name (node) << " &";
- break;
- case AST_Argument::dir_INOUT:
- *os << this->type_name (node) << " &";
- break;
- case AST_Argument::dir_OUT:
- *os << this->type_name (node, "_out");
- break;
- }
-
- return 0;
-}
-
-int be_visitor_args_arglist::visit_typedef (be_typedef *node)
-{
- this->ctx_->alias (node);
-
- if (node->primitive_base_type ()->accept (this) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_arglist::"
- "visit_typedef - "
- "accept on primitive type failed\n"),
- -1);
- }
-
- this->ctx_->alias (0);
- return 0;
-}
-
-
-int be_visitor_args_arglist::visit_valuetype (be_valuetype *node)
-{
- return this->emit_common (node);
-}
-
-int be_visitor_args_arglist::visit_valuetype_fwd (be_valuetype_fwd *node)
-{
- TAO_OutStream *os = this->ctx_->stream (); // get the stream
-
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- *os << "const " << this->type_name (node) << " *";
- break;
- case AST_Argument::dir_INOUT:
- *os << this->type_name (node) << " *&";
- break;
- case AST_Argument::dir_OUT:
- *os << this->type_name (node, "_out");
- break;
- }
-
- return 0;
-}
-
-int be_visitor_args_arglist::visit_eventtype (be_eventtype *node)
-{
- return this->visit_valuetype (node);
-}
-
-int be_visitor_args_arglist::visit_eventtype_fwd (be_eventtype_fwd *node)
-{
- return this->visit_valuetype_fwd (node);
-}
-
-int
-be_visitor_args_arglist::visit_home (
- be_home *node
- )
-{
- return this->visit_interface (node);
-}
-
-int be_visitor_args_arglist::visit_valuebox (be_valuebox *node)
-{
- return this->emit_common (node);
-}
-
-
-int be_visitor_args_arglist::emit_common (be_type *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
-
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- *os << this->type_name (node) << " *";
- break;
- case AST_Argument::dir_INOUT:
- *os << this->type_name (node) << " *&";
- break;
- case AST_Argument::dir_OUT:
- *os << this->type_name (node, "_out");
- break;
- }
-
- return 0;
-}
diff --git a/TAO/TAO_IDL/be/be_visitor_argument/argument.cpp b/TAO/TAO_IDL/be/be_visitor_argument/argument.cpp
deleted file mode 100644
index 7cabfbea573..00000000000
--- a/TAO/TAO_IDL/be/be_visitor_argument/argument.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-//
-// $Id$
-//
-
-// ============================================================================
-//
-// = LIBRARY
-// TAO IDL
-//
-// = FILENAME
-// argument.cpp
-//
-// = DESCRIPTION
-// generic visitor for Argument node
-//
-// = AUTHOR
-// Aniruddha Gokhale
-//
-// ============================================================================
-
-ACE_RCSID (be_visitor_argument,
- argument,
- "$Id$")
-
-be_visitor_args::be_visitor_args (be_visitor_context *ctx)
- : be_visitor_decl (ctx),
- fixed_direction_ (-1)
-{
-}
-
-be_visitor_args::~be_visitor_args (void)
-{
-}
-
-int be_visitor_args::visit_argument (be_argument *)
-{
- return -1;
-}
-
-// helper that returns the type name either as a nested type name (for header
-// files) or as a fully scoped name. In addition, we make sure that if the type
-// is an alias, we use that name
-const char *
-be_visitor_args::type_name (be_type *node,
- const char *suffix)
-{
- static char namebuf [NAMEBUFSIZE];
- ACE_OS::memset (namebuf,
- '\0',
- NAMEBUFSIZE);
-
- be_type *bt;
-
- // Use the typedefed name if that is the one used in the IDL defn.
- if (this->ctx_->alias ())
- {
- bt = this->ctx_->alias ();
- }
- else
- {
- bt = node;
- }
-
- ACE_OS::sprintf (namebuf,
- "::%s",
- bt->full_name ());
-
- if (suffix)
- {
- ACE_OS::strcat (namebuf,
- suffix);
- }
-
- return namebuf;
-}
-
-// helper that returns the direction type of the argument
-AST_Argument::Direction
-be_visitor_args::direction (void)
-{
- if (this->fixed_direction_ != -1)
- {
- return AST_Argument::Direction (this->fixed_direction_);
- }
-
- // grab the argument node. We know that our context has stored the right
- // argument node
- be_argument *arg = this->ctx_->be_node_as_argument ();
-
- ACE_ASSERT (arg != 0);
- return arg->direction ();
-}
-
-void
-be_visitor_args::set_fixed_direction (AST_Argument::Direction direction)
-{
- this->fixed_direction_ = direction;
-}
diff --git a/TAO/TAO_IDL/be/be_visitor_argument/invoke_cs.cpp b/TAO/TAO_IDL/be/be_visitor_argument/invoke_cs.cpp
deleted file mode 100644
index 4001e6417e9..00000000000
--- a/TAO/TAO_IDL/be/be_visitor_argument/invoke_cs.cpp
+++ /dev/null
@@ -1,681 +0,0 @@
-//
-// $Id$
-//
-
-// ============================================================================
-//
-// = LIBRARY
-// TAO IDL
-//
-// = FILENAME
-// invoke_cs.cpp
-//
-// = DESCRIPTION
-// Visitor generating the code that passes arguments to the CDR operators
-//
-// = AUTHOR
-// Aniruddha Gokhale
-//
-// ============================================================================
-
-ACE_RCSID (be_visitor_argument,
- invoke_cs,
- "$Id$")
-
-
-// ****************************************************************************
-// visitor for arguments passing to the CDR operators.
-// ****************************************************************************
-
-be_visitor_args_invoke_cs::
-be_visitor_args_invoke_cs (be_visitor_context *ctx)
- : be_visitor_args (ctx)
-{
-}
-
-be_visitor_args_invoke_cs::
-~be_visitor_args_invoke_cs (void)
-{
-}
-
-int be_visitor_args_invoke_cs::visit_argument (be_argument *node)
-{
- this->ctx_->node (node); // save the argument node
- be_type *bt = be_type::narrow_from_decl (node->field_type ());
-
- if (!bt)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_invoke_cs::"
- "visit_argument - "
- "Bad argument type\n"),
- -1);
- }
-
- // Different types have different mappings when used as in/out or
- // inout parameters. Let this visitor deal with the type
-
- TAO_OutStream *os = this->ctx_->stream (); // get output stream
-
- if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_OUTPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- case AST_Argument::dir_INOUT:
- *os << "(_tao_out << ";
- break;
- case AST_Argument::dir_OUT:
- break;
- }
- }
- else if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_INPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- break;
- case AST_Argument::dir_INOUT:
- case AST_Argument::dir_OUT:
- *os << "(_tao_in >> ";
- break;
- }
- }
- else
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_invoke_cs::"
- "visit_argument - "
- "Bad substate\n"),
- -1);
- }
-
- if (bt->accept (this) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_invoke_cs::"
- "visit_argument - "
- "cannot accept visitor\n"),
- -1);
- }
-
- if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_OUTPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- case AST_Argument::dir_INOUT:
- *os << ")";
- break;
- case AST_Argument::dir_OUT:
- break;
- }
- }
- else if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_INPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- break;
- case AST_Argument::dir_INOUT:
- case AST_Argument::dir_OUT:
- *os << ")";
- break;
- }
- }
- else
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_invoke_cs::"
- "visit_argument - "
- "Bad substate\n"),
- -1);
- }
-
- return 0;
-}
-
-int be_visitor_args_invoke_cs::visit_array (be_array *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_argument *arg = this->ctx_->be_node_as_argument ();
-
- if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_OUTPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- *os << node->name () << "_forany ("
- << "(" << node->name () << "_slice *)"
- << arg->local_name () << ")";
- break;
- case AST_Argument::dir_INOUT:
- *os << node->name () << "_forany ("
- << arg->local_name () << ")";
- break;
- case AST_Argument::dir_OUT:
- break;
- }
- }
- else if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_INPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- break;
- case AST_Argument::dir_INOUT:
- case AST_Argument::dir_OUT:
- *os << "_tao_argument_" << arg->local_name ();
- break;
- }
- }
- else
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_invoke_cs::"
- "visit_array - "
- "Bad substate\n"),
- -1);
- }
-
- return 0;
-}
-
-int be_visitor_args_invoke_cs::visit_enum (be_enum *)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_argument *arg = this->ctx_->be_node_as_argument ();
-
- if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_OUTPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- case AST_Argument::dir_INOUT:
- *os << arg->local_name ();
- break;
- case AST_Argument::dir_OUT:
- break;
- }
- }
- else if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_INPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- break;
- case AST_Argument::dir_INOUT:
- case AST_Argument::dir_OUT:
- *os << arg->local_name ();
- break;
- }
- }
- else
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_invoke_cs::"
- "visit_enum - "
- "Bad substate\n"),
- -1);
- }
-
- return 0;
-}
-
-int be_visitor_args_invoke_cs::visit_interface (be_interface *)
-{
- return this->emit_common ();
-}
-
-int be_visitor_args_invoke_cs::visit_interface_fwd (be_interface_fwd *)
-{
- return this->emit_common ();
-}
-
-int be_visitor_args_invoke_cs::visit_valuebox (be_valuebox *)
-{
- return this->emit_common ();
-}
-
-int be_visitor_args_invoke_cs::visit_valuetype (be_valuetype *)
-{
- return this->emit_common ();
-}
-
-int
-be_visitor_args_invoke_cs::visit_valuetype_fwd (be_valuetype_fwd *)
-{
- return this->emit_common ();
-}
-
-int be_visitor_args_invoke_cs::visit_predefined_type (be_predefined_type *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_argument *arg = this->ctx_->be_node_as_argument ();
-
- if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_OUTPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- case AST_Argument::dir_INOUT:
- switch (node->pt ())
- {
- case AST_PredefinedType::PT_pseudo:
- case AST_PredefinedType::PT_object:
- case AST_PredefinedType::PT_any:
- case AST_PredefinedType::PT_long:
- case AST_PredefinedType::PT_ulong:
- case AST_PredefinedType::PT_longlong:
- case AST_PredefinedType::PT_ulonglong:
- case AST_PredefinedType::PT_short:
- case AST_PredefinedType::PT_ushort:
- case AST_PredefinedType::PT_float:
- case AST_PredefinedType::PT_double:
- case AST_PredefinedType::PT_longdouble:
- *os << arg->local_name ();
- break;
- case AST_PredefinedType::PT_char:
- *os << "::ACE_OutputCDR::from_char (" << arg->local_name () << ")";
- break;
- case AST_PredefinedType::PT_wchar:
- *os << "::ACE_OutputCDR::from_wchar (" << arg->local_name () << ")";
- break;
- case AST_PredefinedType::PT_boolean:
- *os << "::ACE_OutputCDR::from_boolean (" << arg->local_name () << ")";
- break;
- case AST_PredefinedType::PT_octet:
- *os << "::ACE_OutputCDR::from_octet (" << arg->local_name () << ")";
- break;
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_invoke_cs::"
- "visit_predefined_type - "
- "Bad predefined type\n"),
- -1);
- }
- break;
- case AST_Argument::dir_OUT:
- break;
- }
- }
- else if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_INPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- break;
- case AST_Argument::dir_INOUT:
- switch (node->pt ())
- {
- case AST_PredefinedType::PT_pseudo:
- case AST_PredefinedType::PT_object:
- case AST_PredefinedType::PT_any:
- case AST_PredefinedType::PT_long:
- case AST_PredefinedType::PT_ulong:
- case AST_PredefinedType::PT_longlong:
- case AST_PredefinedType::PT_ulonglong:
- case AST_PredefinedType::PT_short:
- case AST_PredefinedType::PT_ushort:
- case AST_PredefinedType::PT_float:
- case AST_PredefinedType::PT_double:
- case AST_PredefinedType::PT_longdouble:
- *os << arg->local_name ();
- break;
- case AST_PredefinedType::PT_char:
- *os << "::ACE_InputCDR::to_char (" << arg->local_name () << ")";
- break;
- case AST_PredefinedType::PT_wchar:
- *os << "::ACE_InputCDR::to_wchar (" << arg->local_name () << ")";
- break;
- case AST_PredefinedType::PT_boolean:
- *os << "::ACE_InputCDR::to_boolean (" << arg->local_name () << ")";
- break;
- case AST_PredefinedType::PT_octet:
- *os << "::ACE_InputCDR::to_octet (" << arg->local_name () << ")";
- break;
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_operation_rettype_compiled_marshal_cs::"
- "visit_array - "
- "Bad predefined type\n"),
- -1);
- }
- break;
- case AST_Argument::dir_OUT:
- switch (node->pt ())
- {
- case AST_PredefinedType::PT_pseudo:
- case AST_PredefinedType::PT_object:
- *os << arg->local_name () << ".ptr ()";
- break;
- case AST_PredefinedType::PT_any:
- *os << "*" << arg->local_name () << ".ptr ()";
- break;
- case AST_PredefinedType::PT_long:
- case AST_PredefinedType::PT_ulong:
- case AST_PredefinedType::PT_longlong:
- case AST_PredefinedType::PT_ulonglong:
- case AST_PredefinedType::PT_short:
- case AST_PredefinedType::PT_ushort:
- case AST_PredefinedType::PT_float:
- case AST_PredefinedType::PT_double:
- case AST_PredefinedType::PT_longdouble:
- *os << arg->local_name ();
- break;
- case AST_PredefinedType::PT_char:
- *os << "::ACE_InputCDR::to_char (" << arg->local_name () << ")";
- break;
- case AST_PredefinedType::PT_wchar:
- *os << "::ACE_InputCDR::to_wchar (" << arg->local_name () << ")";
- break;
- case AST_PredefinedType::PT_boolean:
- *os << "::ACE_InputCDR::to_boolean (" << arg->local_name () << ")";
- break;
- case AST_PredefinedType::PT_octet:
- *os << "::ACE_InputCDR::to_octet (" << arg->local_name () << ")";
- break;
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_invoke_cs::"
- "visit_array - "
- "Bad predefined type\n"),
- -1);
- }
- break;
- }
- }
- else
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_invoke_cs::"
- "visit_array - "
- "Bad substate\n"),
- -1);
- }
-
- return 0;
-}
-
-int be_visitor_args_invoke_cs::visit_sequence (be_sequence *)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_argument *arg = this->ctx_->be_node_as_argument ();
-
- if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_OUTPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- case AST_Argument::dir_INOUT:
- *os << arg->local_name ();
- break;
- case AST_Argument::dir_OUT:
- break;
- }
- }
- else if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_INPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- break;
- case AST_Argument::dir_INOUT:
- *os << arg->local_name ();
- break;
- case AST_Argument::dir_OUT:
- *os << "*" << arg->local_name () << ".ptr ()";
- break;
- }
- }
- else
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_invoke_cs::"
- "visit_interface - "
- "Bad substate\n"),
- -1);
- }
-
- return 0;
-}
-
-int be_visitor_args_invoke_cs::visit_string (be_string *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_argument *arg = this->ctx_->be_node_as_argument ();
-
- if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_OUTPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- case AST_Argument::dir_INOUT:
- *os << arg->local_name ();
- break;
- case AST_Argument::dir_OUT:
- break;
- }
- }
- else if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_INPUT)
- {
- // We need to make a distinction between bounded and unbounded strings.
- if (node->max_size ()->ev ()->u.ulval == 0)
- {
- // Unbounded.
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- break;
- case AST_Argument::dir_INOUT:
- *os << arg->local_name ();
- break;
- case AST_Argument::dir_OUT:
- *os << arg->local_name () << ".ptr ()";
- break;
- }
- }
- else
- {
- // Bounded.
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- break;
- case AST_Argument::dir_INOUT:
- if (node->width () == (long) sizeof (char))
- {
- *os << "::ACE_InputCDR::to_string (";
- }
- else
- {
- *os << "::ACE_InputCDR::to_wstring (";
- }
-
- *os << arg->local_name () << ", "
- << node->max_size ()->ev ()->u.ulval << ")";
- break;
- case AST_Argument::dir_OUT:
- if (node->width () == (long) sizeof (char))
- {
- *os << "::ACE_InputCDR::to_string (";
- }
- else
- {
- *os << "::ACE_InputCDR::to_wstring (";
- }
-
- *os << arg->local_name () << ".ptr (), "
- << node->max_size ()->ev ()->u.ulval << ")";
- break;
- }
- }
- }
- else
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_invoke_cs::"
- "visit_interface - "
- "Bad substate\n"),
- -1);
- }
-
- return 0;
-}
-
-int be_visitor_args_invoke_cs::visit_structure (be_structure *node)
-{
- return this->emit_common2 (node);
-}
-
-int be_visitor_args_invoke_cs::visit_union (be_union *node)
-{
- return this->emit_common2 (node);
-}
-
-int be_visitor_args_invoke_cs::visit_typedef (be_typedef *node)
-{
- this->ctx_->alias (node);
-
- if (node->primitive_base_type ()->accept (this) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_invoke_cs::"
- "visit_typedef - "
- "accept on primitive type failed\n"),
- -1);
- }
-
- this->ctx_->alias (0);
- return 0;
-}
-
-int
-be_visitor_args_invoke_cs::visit_component (
- be_component *node
- )
-{
- return this->visit_interface (node);
-}
-
-int
-be_visitor_args_invoke_cs::visit_component_fwd (
- be_component_fwd *node
- )
-{
- return this->visit_interface_fwd (node);
-}
-
-int
-be_visitor_args_invoke_cs::visit_eventtype (
- be_eventtype *node
- )
-{
- return this->visit_valuetype (node);
-}
-
-int
-be_visitor_args_invoke_cs::visit_eventtype_fwd (
- be_eventtype_fwd *node
- )
-{
- return this->visit_valuetype_fwd (node);
-}
-
-int
-be_visitor_args_invoke_cs::visit_home (
- be_home *node
- )
-{
- return this->visit_interface (node);
-}
-
-
-int be_visitor_args_invoke_cs::emit_common (void)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_argument *arg = this->ctx_->be_node_as_argument ();
-
- if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_OUTPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- case AST_Argument::dir_INOUT:
- *os << arg->local_name ();
- break;
- case AST_Argument::dir_OUT:
- break;
- }
- }
- else if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_INPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- break;
- case AST_Argument::dir_INOUT:
- *os << arg->local_name ();
- break;
- case AST_Argument::dir_OUT:
- *os << arg->local_name () << ".ptr ()";
- break;
- }
- }
- else
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_invoke_cs::"
- "emit_common - "
- "Bad substate\n"),
- -1);
- }
-
- return 0;
-}
-
-int be_visitor_args_invoke_cs::emit_common2 (be_type *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_argument *arg = this->ctx_->be_node_as_argument ();
-
- if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_OUTPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- case AST_Argument::dir_INOUT:
- *os << arg->local_name ();
- break;
- case AST_Argument::dir_OUT:
- break;
- }
- }
- else if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_INPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- break;
- case AST_Argument::dir_INOUT:
- *os << arg->local_name ();
- break;
- case AST_Argument::dir_OUT:
- if (node->size_type () == AST_Type::VARIABLE)
- *os << "*" << arg->local_name () << ".ptr ()";
- else
- *os << arg->local_name ();
- break;
- }
- }
- else
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_invoke_cs::"
- "emit_common2 - "
- "Bad substate\n"),
- -1);
- }
-
- return 0;
-}
diff --git a/TAO/TAO_IDL/be/be_visitor_argument/marshal_ss.cpp b/TAO/TAO_IDL/be/be_visitor_argument/marshal_ss.cpp
deleted file mode 100644
index 39ea6f27f8c..00000000000
--- a/TAO/TAO_IDL/be/be_visitor_argument/marshal_ss.cpp
+++ /dev/null
@@ -1,695 +0,0 @@
-//
-// $Id$
-//
-
-// ============================================================================
-//
-// = LIBRARY
-// TAO IDL
-//
-// = FILENAME
-// marshal_ss.cpp
-//
-// = DESCRIPTION
-// Visitor that generates code that passes the argument variable to the
-// marshal operations.
-//
-// = AUTHOR
-// Aniruddha Gokhale
-//
-// ============================================================================
-
-ACE_RCSID (be_visitor_argument,
- marshal_ss,
- "$Id$")
-
-
-// ************************************************************************
-// Visitor to generate code for passing argument to the marshal/demarshal
-// routines
-// ************************************************************************
-
-be_visitor_args_marshal_ss::
-be_visitor_args_marshal_ss (be_visitor_context *ctx)
- : be_visitor_args (ctx)
-{
-}
-
-be_visitor_args_marshal_ss::
-~be_visitor_args_marshal_ss (void)
-{
-}
-
-int be_visitor_args_marshal_ss::visit_argument (be_argument *node)
-{
- this->ctx_->node (node);
- be_type *bt = be_type::narrow_from_decl (node->field_type ());
-
- if (!bt)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_marshal_ss::"
- "visit_argument - "
- "Bad argument type\n"),
- -1);
- }
-
- // Different types have different mappings when used as in/out or
- // inout parameters. Let this visitor deal with the type
-
- TAO_OutStream *os = this->ctx_->stream ();
-
- if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_INPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- case AST_Argument::dir_INOUT:
- *os << be_nl << "(_tao_in >> ";
- break;
- case AST_Argument::dir_OUT:
- break;
- }
- }
- else if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_OUTPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- break;
- case AST_Argument::dir_INOUT:
- case AST_Argument::dir_OUT:
- *os << be_nl << "(_tao_out << ";
- break;
- }
- }
- else
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_marshal_ss::"
- "visit_argument - "
- "Bad substate\n"),
- -1);
- }
-
- if (bt->accept (this) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_marshal_ss::"
- "visit_argument - "
- "cannot accept visitor\n"),
- -1);
- }
-
- if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_INPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- case AST_Argument::dir_INOUT:
- *os << ")";
- break;
- case AST_Argument::dir_OUT:
- break;
- }
- }
- else if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_OUTPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- break;
- case AST_Argument::dir_INOUT:
- case AST_Argument::dir_OUT:
- *os << ")";
- break;
- }
- }
- else
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_marshal_ss::"
- "visit_argument - "
- "Bad substate\n"),
- -1);
- }
-
- return 0;
-}
-
-int be_visitor_args_marshal_ss::visit_array (be_array *)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_argument *arg = this->ctx_->be_node_as_argument ();
-
- if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_INPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- *os << "_tao_forany_" << arg->local_name ();
- break;
- case AST_Argument::dir_INOUT:
- *os << "_tao_forany_" << arg->local_name ();
- break;
- case AST_Argument::dir_OUT:
- break;
- }
- }
- else if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_OUTPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- break;
- case AST_Argument::dir_INOUT:
- *os << "_tao_forany_" << arg->local_name ();
- break;
- case AST_Argument::dir_OUT:
- *os << "_tao_forany_" << arg->local_name ();
- break;
- }
- }
- else
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_marshal_ss::"
- "visit_array - "
- "Bad substate\n"),
- -1);
- }
-
- return 0;
-}
-
-int be_visitor_args_marshal_ss::visit_enum (be_enum *)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_argument *arg = this->ctx_->be_node_as_argument ();
-
- if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_INPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- case AST_Argument::dir_INOUT:
- *os << arg->local_name ();
- break;
- case AST_Argument::dir_OUT:
- break;
- }
- }
- else if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_OUTPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- break;
- case AST_Argument::dir_INOUT:
- case AST_Argument::dir_OUT:
- *os << arg->local_name ();
- break;
- }
- }
- else
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_marshal_ss::"
- "visit_enum - "
- "Bad substate\n"),
- -1);
- }
-
- return 0;
-}
-
-int be_visitor_args_marshal_ss::visit_interface (be_interface *)
-{
- return this->emit_common ();
-}
-
-int be_visitor_args_marshal_ss::visit_interface_fwd (be_interface_fwd *)
-{
- return this->emit_common ();
-}
-
-int be_visitor_args_marshal_ss::visit_valuebox (be_valuebox *)
-{
- return this->emit_common ();
-}
-
-int be_visitor_args_marshal_ss::visit_valuetype (be_valuetype *)
-{
- return this->emit_common ();
-}
-
-int be_visitor_args_marshal_ss::visit_valuetype_fwd (be_valuetype_fwd *)
-{
- return this->emit_common ();
-}
-
-int be_visitor_args_marshal_ss::visit_predefined_type (
- be_predefined_type *node
- )
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_argument *arg = this->ctx_->be_node_as_argument ();
-
- if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_INPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- case AST_Argument::dir_INOUT:
- switch (node->pt ())
- {
- case AST_PredefinedType::PT_pseudo:
- case AST_PredefinedType::PT_object:
- *os << arg->local_name () << ".out ()";
- break;
- case AST_PredefinedType::PT_any:
- case AST_PredefinedType::PT_long:
- case AST_PredefinedType::PT_ulong:
- case AST_PredefinedType::PT_longlong:
- case AST_PredefinedType::PT_ulonglong:
- case AST_PredefinedType::PT_short:
- case AST_PredefinedType::PT_ushort:
- case AST_PredefinedType::PT_float:
- case AST_PredefinedType::PT_double:
- case AST_PredefinedType::PT_longdouble:
- *os << arg->local_name ();
- break;
- case AST_PredefinedType::PT_char:
- *os << "::ACE_InputCDR::to_char (" << arg->local_name () << ")";
- break;
- case AST_PredefinedType::PT_wchar:
- *os << "::ACE_InputCDR::to_wchar (" << arg->local_name () << ")";
- break;
- case AST_PredefinedType::PT_boolean:
- *os << "::ACE_InputCDR::to_boolean (" << arg->local_name () << ")";
- break;
- case AST_PredefinedType::PT_octet:
- *os << "::ACE_InputCDR::to_octet (" << arg->local_name () << ")";
- break;
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_marshal_ss::"
- "visit_predefined_type - "
- "Bad predefined type\n"),
- -1);
- }
- break;
- case AST_Argument::dir_OUT:
- break;
- }
- }
- else if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_OUTPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- break;
- case AST_Argument::dir_INOUT:
- switch (node->pt ())
- {
- case AST_PredefinedType::PT_pseudo:
- case AST_PredefinedType::PT_object:
- *os << arg->local_name () << ".in ()";
- break;
- case AST_PredefinedType::PT_any:
- *os << arg->local_name ();
- break;
- case AST_PredefinedType::PT_long:
- case AST_PredefinedType::PT_ulong:
- case AST_PredefinedType::PT_longlong:
- case AST_PredefinedType::PT_ulonglong:
- case AST_PredefinedType::PT_short:
- case AST_PredefinedType::PT_ushort:
- case AST_PredefinedType::PT_float:
- case AST_PredefinedType::PT_double:
- case AST_PredefinedType::PT_longdouble:
- *os << arg->local_name ();
- break;
- case AST_PredefinedType::PT_char:
- *os << "::ACE_OutputCDR::from_char (" << arg->local_name () << ")";
- break;
- case AST_PredefinedType::PT_wchar:
- *os << "::ACE_OutputCDR::from_wchar (" << arg->local_name () << ")";
- break;
- case AST_PredefinedType::PT_boolean:
- *os << "::ACE_OutputCDR::from_boolean (" << arg->local_name () << ")";
- break;
- case AST_PredefinedType::PT_octet:
- *os << "::ACE_OutputCDR::from_octet (" << arg->local_name () << ")";
- break;
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_operation_rettype_compiled_marshal_ss::"
- "visit_array - "
- "Bad predefined type\n"),
- -1);
- }
- break;
- case AST_Argument::dir_OUT:
- switch (node->pt ())
- {
- case AST_PredefinedType::PT_pseudo:
- case AST_PredefinedType::PT_object:
- *os << arg->local_name () << ".in ()";
- break;
- case AST_PredefinedType::PT_any:
- *os << arg->local_name () << ".in ()";
- break;
- case AST_PredefinedType::PT_long:
- case AST_PredefinedType::PT_ulong:
- case AST_PredefinedType::PT_longlong:
- case AST_PredefinedType::PT_ulonglong:
- case AST_PredefinedType::PT_short:
- case AST_PredefinedType::PT_ushort:
- case AST_PredefinedType::PT_float:
- case AST_PredefinedType::PT_double:
- case AST_PredefinedType::PT_longdouble:
- *os << arg->local_name ();
- break;
- case AST_PredefinedType::PT_char:
- *os << "::ACE_OutputCDR::from_char (" << arg->local_name () << ")";
- break;
- case AST_PredefinedType::PT_wchar:
- *os << "::ACE_OutputCDR::from_wchar (" << arg->local_name () << ")";
- break;
- case AST_PredefinedType::PT_boolean:
- *os << "::ACE_OutputCDR::from_boolean (" << arg->local_name () << ")";
- break;
- case AST_PredefinedType::PT_octet:
- *os << "::ACE_OutputCDR::from_octet (" << arg->local_name () << ")";
- break;
- default:
- ACE_ERROR_RETURN ((
- LM_ERROR,
- "be_visitor_operation_rettype_compiled_marshal_ss::"
- "visit_array - "
- "Bad predefined type\n"
- ),
- -1
- );
- }
- break;
- }
- }
- else
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_marshal_ss::"
- "visit_array - "
- "Bad substate\n"),
- -1);
- }
-
- return 0;
-}
-
-int be_visitor_args_marshal_ss::visit_sequence (be_sequence *)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_argument *arg = this->ctx_->be_node_as_argument ();
-
- if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_INPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- case AST_Argument::dir_INOUT:
- *os << arg->local_name ();
- break;
- case AST_Argument::dir_OUT:
- break;
- }
- }
- else if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_OUTPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- break;
- case AST_Argument::dir_INOUT:
- *os << arg->local_name ();
- break;
- case AST_Argument::dir_OUT:
- *os << arg->local_name () << ".in ()";
- break;
- }
- }
- else
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_marshal_ss::"
- "visit_interface - "
- "Bad substate\n"),
- -1);
- }
-
- return 0;
-}
-
-int be_visitor_args_marshal_ss::visit_string (be_string *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_argument *arg = this->ctx_->be_node_as_argument ();
-
- if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_INPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- case AST_Argument::dir_INOUT:
- // we need to make a distinction between bounded and unbounded strings
- if (node->max_size ()->ev ()->u.ulval == 0)
- {
- *os << arg->local_name () << ".out ()";
- }
- else
- {
- if (node->width () == (long) sizeof (char))
- {
- *os << "::ACE_InputCDR::to_string (";
- }
- else
- {
- *os << "::ACE_InputCDR::to_wstring (";
- }
-
- *os << arg->local_name () << ".out (), "
- << node->max_size ()->ev ()->u.ulval
- << ")";
- }
- break;
- case AST_Argument::dir_OUT:
- break;
- }
- }
- else if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_OUTPUT)
- {
- // we need to make a distinction between bounded and unbounded strings
- if (node->max_size ()->ev ()->u.ulval == 0)
- {
- // unbounded
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- break;
- case AST_Argument::dir_INOUT:
- case AST_Argument::dir_OUT:
- *os << arg->local_name () << ".in ()";
- break;
- }
- }
- else
- {
- // bounded
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- break;
- case AST_Argument::dir_INOUT:
- case AST_Argument::dir_OUT:
- if (node->width () == (long) sizeof (char))
- {
- *os << "::ACE_OutputCDR::from_string ((char *)";
- }
- else
- {
- *os << "::ACE_OutputCDR::from_wstring ((CORBA::WChar *)";
- }
-
- *os << arg->local_name () << ".in (), "
- << node->max_size ()->ev ()->u.ulval << ")";
- break;
- }
- }
- }
- else
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_marshal_ss::"
- "visit_string - "
- "Bad substate\n"),
- -1);
- }
-
- return 0;
-}
-
-int be_visitor_args_marshal_ss::visit_structure (be_structure *node)
-{
- return this->emit_common2 (node);
-}
-
-int be_visitor_args_marshal_ss::visit_union (be_union *node)
-{
- return this->emit_common2 (node);
-}
-
-int be_visitor_args_marshal_ss::visit_typedef (be_typedef *node)
-{
- this->ctx_->alias (node);
-
- if (node->primitive_base_type ()->accept (this) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_marshal_ss::"
- "visit_typedef - "
- "accept on primitive type failed\n"),
- -1);
- }
-
- this->ctx_->alias (0);
- return 0;
-}
-
-int
-be_visitor_args_marshal_ss::visit_component (
- be_component *node
- )
-{
- return this->visit_interface (node);
-}
-
-int
-be_visitor_args_marshal_ss::visit_component_fwd (
- be_component_fwd *node
- )
-{
- return this->visit_interface_fwd (node);
-}
-
-int
-be_visitor_args_marshal_ss::visit_eventtype (
- be_eventtype *node
- )
-{
- return this->visit_valuetype (node);
-}
-
-int
-be_visitor_args_marshal_ss::visit_eventtype_fwd (
- be_eventtype_fwd *node
- )
-{
- return this->visit_valuetype_fwd (node);
-}
-
-int
-be_visitor_args_marshal_ss::visit_home (
- be_home *node
- )
-{
- return this->visit_interface (node);
-}
-
-int
-be_visitor_args_marshal_ss::emit_common ()
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_argument *arg = this->ctx_->be_node_as_argument ();
-
- if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_INPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- case AST_Argument::dir_INOUT:
- *os << arg->local_name () << ".out ()";
- break;
- case AST_Argument::dir_OUT:
- break;
- }
- }
- else if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_OUTPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- break;
- case AST_Argument::dir_INOUT:
- case AST_Argument::dir_OUT:
- *os << arg->local_name () << ".in ()";
- break;
- }
- }
- else
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_marshal_ss::emit_common - "
- "Bad substate\n"),
- -1);
- }
-
- return 0;
-}
-
-
-int
-be_visitor_args_marshal_ss::emit_common2 (be_type *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_argument *arg = this->ctx_->be_node_as_argument ();
-
- if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_INPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- case AST_Argument::dir_INOUT:
- *os << arg->local_name ();
- break;
- case AST_Argument::dir_OUT:
- break;
- }
- }
- else if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_OUTPUT)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- break;
- case AST_Argument::dir_INOUT:
- *os << arg->local_name ();
- break;
- case AST_Argument::dir_OUT:
- if (node->size_type () == AST_Type::VARIABLE)
- *os << arg->local_name () << ".in ()";
- else
- *os << arg->local_name ();
- break;
- }
- }
- else
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_marshal_ss::emit_common2 - "
- "Bad substate\n"),
- -1);
- }
-
- return 0;
-}
diff --git a/TAO/TAO_IDL/be/be_visitor_argument/paramlist.cpp b/TAO/TAO_IDL/be/be_visitor_argument/paramlist.cpp
deleted file mode 100644
index e8f10292638..00000000000
--- a/TAO/TAO_IDL/be/be_visitor_argument/paramlist.cpp
+++ /dev/null
@@ -1,237 +0,0 @@
-//
-// $Id$
-//
-
-// ============================================================================
-//
-// = LIBRARY
-// TAO IDL
-//
-// = FILENAME
-// paramlist.cpp
-//
-// = DESCRIPTION
-// Visitor that generates the Dyanmic::ParameterList
-//
-// = AUTHOR
-// Kirthika Parameswaran <kirthika@cs.wustl.edu>
-// Ossama Othman <ossama@uci.edu>
-//
-// ============================================================================
-
-ACE_RCSID (be_visitor_argument,
- paramlist,
- "$Id$")
-
-
-// ************************************************************
-// be_visitor_args_paramlist for parameter list in method declarations and
-// definitions
-// ************************************************************
-
-be_visitor_args_paramlist::be_visitor_args_paramlist (be_visitor_context *ctx)
- : be_visitor_args (ctx)
-{
-}
-
-be_visitor_args_paramlist::~be_visitor_args_paramlist (void)
-{
-}
-
-int be_visitor_args_paramlist::visit_argument (be_argument *node)
-{
- // Get output stream.
- TAO_OutStream *os = this->ctx_->stream ();
-
- // Save the argument node.
- this->ctx_->node (node);
-
- // We do not put "out" arguments into the arglist.
- if (this->direction () == AST_Argument::dir_OUT)
- {
- return 0;
- }
-
- // Retrieve the type.
- be_type *bt = be_type::narrow_from_decl (node->field_type ());
-
- // If node is typedef'd, we must strip it off.
- if (bt->node_type () == AST_Decl::NT_typedef)
- {
- be_typedef *td = be_typedef::narrow_from_decl (bt);
- bt = td->primitive_base_type ();
- }
-
- if (!bt)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_arglist::"
- "visit_argument - "
- "Bad argument type\n"),
- -1);
- }
-
- // Generate valuetype check: this hack is needed as there is no
- // available way to check for valuetype type.
- // Any operators for valuetypes arent there so we dont add it to the
- // paramlist.
- if (bt->node_type () == AST_Decl::NT_interface)
- {
- be_valuetype *vt = be_valuetype::narrow_from_decl (node->field_type ());
-
- // @@ NOTE: If this check is removed, and insertion operators
- // for valuetypes are implemented, don't forget to also
- // remove the same valuetype check in
- // be_visitor_operation::count_non_out_parameters().
-
- // If it is a valuetype just return.
- if (vt)
- {
- return 0;
- }
- }
-
- // Amazed by the zillion os operators below? Its just to combat
- // side effects functions like type_name() have on the os stream.
- // This was causing a problem with the stubs not been generated accurately
- // on Linux using egcs.
- if (bt->node_type () == AST_Decl::NT_array)
- {
- *os << this->type_name (bt, "_forany");
- *os << " _tao_forany_" << node->local_name () << " (";
- *os << this->type_name (bt, "_dup");
- *os << " (";
-
- if (this->direction () != AST_Argument::dir_IN)
- {
- *os << "(const ::" << bt->name () << "_slice *) ";
- }
-
- *os << "this->";
- *os << node->local_name () << "_));" << be_nl;
- *os << "(*parameter_list)[len].argument <<= _tao_forany_" ;
- *os << node->local_name () << ";" << be_nl;
- }
- else
- {
- *os << "(*parameter_list)[len].argument <<= ";
- // Insertion into an Any has some special cases which need to be
- // dealt with.
-
- switch (bt->node_type ())
- {
- case AST_Decl::NT_pre_defined:
- case AST_Decl::NT_string:
- case AST_Decl::NT_wstring:
- if (bt->accept (this) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_paramlist::"
- "visit_argument - "
- "cannot accept visitor\n"),
- -1);
- }
- break;
-
- default:
- *os << " this->" << node->local_name () << "_;";
-
- }
- }
-
- *os << be_nl;
-
- // Set the appropriate mode for each parameter.
- switch (node->direction ())
- {
- case AST_Argument::dir_IN:
- *os << "(*parameter_list)[len].mode = ::CORBA::PARAM_IN;" << be_nl;
- break;
- case AST_Argument::dir_INOUT:
- *os << "(*parameter_list)[len].mode = ::CORBA::PARAM_INOUT;" << be_nl;
- break;
- case AST_Argument::dir_OUT:
- *os << "(*parameter_list)[len].mode = ::CORBA::PARAM_OUT;" << be_nl;
- break;
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%N:%l) be_visitor_args_paramlist::"
- "visit_argument - "
- "Bad context\n"),
- -1);
- }
-
- *os << "len++;" << be_nl;
-
-
- return 0;
-}
-
-int
-be_visitor_args_paramlist::visit_string (be_string *node)
-{
- // Get output stream.
- TAO_OutStream *os = this->ctx_->stream ();
-
- // Get the argument.
- be_argument *arg = this->ctx_->be_node_as_argument ();
-
- // We need to make a distinction between bounded and unbounded strings.
- if (node->max_size ()->ev ()->u.ulval != 0)
- {
- // Bounded strings.
- if (node->width () == (long) sizeof (char))
- {
- *os << "::ACE_OutputCDR::from_string ((char *)";
- }
- else
- {
- *os << "::ACE_OutputCDR::from_wstring ((CORBA::WChar *)";
- }
-
- *os << arg->local_name () << "_, "
- << node->max_size ()->ev ()->u.ulval
- << ");";
- }
- else
- {
- *os << arg->local_name () <<"_;";
- }
-
- return 0;
-}
-
-int
-be_visitor_args_paramlist::visit_predefined_type (be_predefined_type *node)
-{
- // Get output stream.
- TAO_OutStream *os = this->ctx_->stream ();
-
- // Get the argument.
- be_argument *arg = this->ctx_->be_node_as_argument ();
-
- switch (node->pt ())
- {
- case AST_PredefinedType::PT_boolean:
- *os << "::ACE_OutputCDR::from_boolean (this->";
- *os << arg->local_name () << "_);";
- break;
- case AST_PredefinedType::PT_char:
- *os << "::ACE_OutputCDR::from_char (this->";
- *os << arg->local_name () << "_);";
- break;
- case AST_PredefinedType::PT_wchar:
- *os << "::ACE_OutputCDR::from_wchar (this->";
- *os << arg->local_name () << "_);";
- break;
- case AST_PredefinedType::PT_octet:
- *os << "::ACE_OutputCDR::from_octet (this->";
- *os << arg->local_name () << "_);";
- break;
- default:
- *os << arg->local_name () << "_;";
- break;
- }
-
- return 0;
-}
diff --git a/TAO/TAO_IDL/be/be_visitor_argument/post_upcall_ss.cpp b/TAO/TAO_IDL/be/be_visitor_argument/post_upcall_ss.cpp
deleted file mode 100644
index 41c9e5b9d10..00000000000
--- a/TAO/TAO_IDL/be/be_visitor_argument/post_upcall_ss.cpp
+++ /dev/null
@@ -1,133 +0,0 @@
-//
-// $Id$
-//
-
-// ============================================================================
-//
-// = LIBRARY
-// TAO IDL
-//
-// = FILENAME
-// post_upcall_ss.cpp
-//
-// = DESCRIPTION
-// Visitor generating code to do post-processing of arguments following an
-// upcall.
-//
-// = AUTHOR
-// Aniruddha Gokhale
-//
-// ============================================================================
-
-ACE_RCSID (be_visitor_argument,
- post_upcall_ss,
- "$Id$")
-
-// ************************************************************************
-// visitor for doing any post-processing after the upcall is made
-// ************************************************************************
-
-be_visitor_args_post_upcall_ss::be_visitor_args_post_upcall_ss (
- be_visitor_context *ctx
- )
- : be_visitor_scope (ctx)
-{
-}
-
-be_visitor_args_post_upcall_ss::~be_visitor_args_post_upcall_ss (void)
-{
-}
-
-int
-be_visitor_args_post_upcall_ss::visit_operation (be_operation *node)
-{
- return this->visit_scope (node);
-}
-
-int be_visitor_args_post_upcall_ss::visit_argument (be_argument *node)
-{
- this->ctx_->node (node); // save the argument node
-
- // retrieve the type
- be_type *bt = be_type::narrow_from_decl (node->field_type ());
-
- if (!bt)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_post_upcall::"
- "visit_argument - "
- "Bad argument type\n"),
- -1);
- }
-
- // Different types have different mappings when used as in/out or
- // inout parameters. Let this visitor deal with the type
-
- if (bt->accept (this) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_post_upcall::"
- "visit_argument - "
- "cannot accept visitor\n"),
- -1);
- }
-
- return 0;
-}
-
-int be_visitor_args_post_upcall_ss::visit_array (be_array *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_argument *arg = this->ctx_->be_node_as_argument ();
-
- // if the current type is an alias, use that
- be_type *bt = node;
-
- if (this->ctx_->alias ())
- {
- bt = this->ctx_->alias ();
- }
-
- switch (arg->direction ())
- {
- case AST_Argument::dir_IN:
- break;
- case AST_Argument::dir_INOUT:
- break;
- case AST_Argument::dir_OUT:
- if (node->size_type () == be_type::VARIABLE)
- {
- *os << bt->name () << "_forany _tao_forany_"
- << arg->local_name () << " (" << be_idt << be_idt_nl
- << arg->local_name () << ".inout ()" << be_uidt_nl
- << ");\n" << be_uidt;
- }
- else
- {
- *os << bt->name () << "_forany _tao_forany_"
- << arg->local_name () << " (" << be_idt << be_idt_nl
- << arg->local_name () << be_uidt_nl
- << ");\n" << be_uidt;
- }
-
- break;
- }
- return 0;
-}
-
-int be_visitor_args_post_upcall_ss::visit_typedef (be_typedef *node)
-{
- this->ctx_->alias (node);
-
- if (node->primitive_base_type ()->accept (this) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_post_upcall::"
- "visit_typedef - "
- "accept on primitive type failed\n"),
- -1);
- }
-
- this->ctx_->alias (0);
- return 0;
-}
diff --git a/TAO/TAO_IDL/be/be_visitor_argument/upcall_ss.cpp b/TAO/TAO_IDL/be/be_visitor_argument/upcall_ss.cpp
deleted file mode 100644
index e5b9a0f45f5..00000000000
--- a/TAO/TAO_IDL/be/be_visitor_argument/upcall_ss.cpp
+++ /dev/null
@@ -1,424 +0,0 @@
-//
-// $Id$
-//
-
-// ============================================================================
-//
-// = LIBRARY
-// TAO IDL
-//
-// = FILENAME
-// upcall_ss.cpp
-//
-// = DESCRIPTION
-// Visitor that generates code that passes argument variables to the
-// upcall.
-//
-// = AUTHOR
-// Aniruddha Gokhale
-//
-// ============================================================================
-
-ACE_RCSID (be_visitor_argument,
- upcall_ss,
- "$Id$")
-
-
-// ************************************************************************
-// visitor for passing arguments to the upcall
-// ************************************************************************
-
-be_visitor_args_upcall_ss::be_visitor_args_upcall_ss (be_visitor_context *ctx)
- : be_visitor_args (ctx)
-{
-}
-
-be_visitor_args_upcall_ss::~be_visitor_args_upcall_ss (void)
-{
-}
-
-int be_visitor_args_upcall_ss::visit_argument (be_argument *node)
-{
- this->ctx_->node (node);
- be_type *bt = be_type::narrow_from_decl (node->field_type ());
-
- if (!bt)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_upcall_ss::"
- "visit_argument - "
- "Bad argument type\n"),
- -1);
- }
-
- TAO_OutStream *os = this->ctx_->stream ();
-
- *os << be_nl;
-
- // Different types have different mappings when used as in/out or
- // inout parameters. Let this visitor deal with the type
- if (bt->accept (this) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_upcall_ss::"
- "visit_argument - "
- "cannot accept visitor\n"),
- -1);
- }
-
- return 0;
-}
-
-int be_visitor_args_upcall_ss::visit_array (be_array *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_argument *arg = this->ctx_->be_node_as_argument ();
-
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- // This is to placate some compilers which have
- // trouble with IN args that are multidimensional arrays.
- if (node->n_dims () > 1)
- {
- *os << "(const ::" << node->name () << "_slice *) ";
- }
-
- *os << arg->local_name ();
-
- break;
- case AST_Argument::dir_INOUT:
- *os << arg->local_name ();
-
- break;
- case AST_Argument::dir_OUT:
- if (node->size_type () == AST_Type::VARIABLE)
- {
- if (this->ctx_->state ()
- == TAO_CodeGen::TAO_ARGUMENT_COLLOCATED_UPCALL_SS)
- {
- *os << arg->local_name ();
- }
- else
- {
- *os << arg->local_name () << ".out ()";
- }
- }
- else
- {
- *os << arg->local_name ();
- }
-
- break;
- }
-
- return 0;
-}
-
-int be_visitor_args_upcall_ss::visit_enum (be_enum *)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_argument *arg = this->ctx_->be_node_as_argument ();
-
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- case AST_Argument::dir_INOUT:
- case AST_Argument::dir_OUT:
- *os << arg->local_name ();
-
- break;
- }
-
- return 0;
-}
-
-int be_visitor_args_upcall_ss::visit_interface (be_interface *)
-{
- return this->emit_common ();
-}
-
-int be_visitor_args_upcall_ss::visit_interface_fwd (be_interface_fwd *)
-{
- return this->emit_common ();
-}
-
-int be_visitor_args_upcall_ss::visit_valuebox (be_valuebox *)
-{
- return this->emit_common ();
-}
-
-int be_visitor_args_upcall_ss::visit_valuetype (be_valuetype *)
-{
- return this->emit_common ();
-}
-
-int be_visitor_args_upcall_ss::visit_valuetype_fwd (be_valuetype_fwd *)
-{
- return this->emit_common ();
-}
-
-int be_visitor_args_upcall_ss::visit_predefined_type (be_predefined_type *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_argument *arg = this->ctx_->be_node_as_argument ();
- AST_PredefinedType::PredefinedType pt = node->pt ();
-
- if (pt == AST_PredefinedType::PT_any)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- case AST_Argument::dir_INOUT:
- *os << arg->local_name ();
-
- break;
- case AST_Argument::dir_OUT:
- if (this->ctx_->state ()
- == TAO_CodeGen::TAO_ARGUMENT_COLLOCATED_UPCALL_SS)
- {
- *os << arg->local_name ();
- }
- else
- {
- *os << arg->local_name () << ".out ()";
- }
-
- break;
- }
- }
- else if (pt == AST_PredefinedType::PT_pseudo
- || pt == AST_PredefinedType::PT_object)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- if (this->ctx_->state ()
- == TAO_CodeGen::TAO_ARGUMENT_COLLOCATED_UPCALL_SS)
- {
- *os << arg->local_name ();
- }
- else
- {
- *os << arg->local_name () << ".in ()";
- }
-
- break;
- case AST_Argument::dir_INOUT:
- if (this->ctx_->state ()
- == TAO_CodeGen::TAO_ARGUMENT_COLLOCATED_UPCALL_SS)
- {
- *os << arg->local_name ();
- }
- else
- {
- *os << arg->local_name () << ".inout ()";
- }
-
- break;
- case AST_Argument::dir_OUT:
- if (this->ctx_->state ()
- == TAO_CodeGen::TAO_ARGUMENT_COLLOCATED_UPCALL_SS)
- {
- *os << arg->local_name ();
- }
- else
- {
- *os << arg->local_name () << ".out ()";
- }
-
- break;
- }
- }
- else
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- case AST_Argument::dir_INOUT:
- case AST_Argument::dir_OUT:
- *os << arg->local_name ();
-
- break;
- } // end switch direction
- } // end of else
-
- return 0;
-}
-
-int be_visitor_args_upcall_ss::visit_sequence (be_sequence *)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_argument *arg = this->ctx_->be_node_as_argument ();
-
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- case AST_Argument::dir_INOUT:
- *os << arg->local_name ();
-
- break;
- case AST_Argument::dir_OUT:
- if (this->ctx_->state ()
- == TAO_CodeGen::TAO_ARGUMENT_COLLOCATED_UPCALL_SS)
- {
- *os << arg->local_name ();
- }
- else
- {
- *os << arg->local_name () << ".out ()";
- }
-
- break;
- }
-
- return 0;
-}
-
-int be_visitor_args_upcall_ss::visit_string (be_string *)
-{
- return this->emit_common ();
-}
-
-int be_visitor_args_upcall_ss::visit_structure (be_structure *node)
-{
- return this->emit_common2 (node);
-}
-
-int be_visitor_args_upcall_ss::visit_union (be_union *node)
-{
- return this->emit_common2 (node);
-}
-
-int be_visitor_args_upcall_ss::visit_typedef (be_typedef *node)
-{
- this->ctx_->alias (node);
-
- if (node->primitive_base_type ()->accept (this) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_upcall_ss::"
- "visit_typedef - "
- "accept on primitive type failed\n"),
- -1);
- }
-
- this->ctx_->alias (0);
- return 0;
-}
-
-int
-be_visitor_args_upcall_ss::visit_component (
- be_component *node
- )
-{
- return this->visit_interface (node);
-}
-
-int
-be_visitor_args_upcall_ss::visit_component_fwd (
- be_component_fwd *node
- )
-{
- return this->visit_interface_fwd (node);
-}
-
-int
-be_visitor_args_upcall_ss::visit_eventtype (
- be_eventtype *node
- )
-{
- return this->visit_valuetype (node);
-}
-
-int
-be_visitor_args_upcall_ss::visit_eventtype_fwd (
- be_eventtype_fwd *node
- )
-{
- return this->visit_valuetype_fwd (node);
-}
-
-int be_visitor_args_upcall_ss::emit_common (void)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_argument *arg = this->ctx_->be_node_as_argument ();
-
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- if (this->ctx_->state ()
- == TAO_CodeGen::TAO_ARGUMENT_COLLOCATED_UPCALL_SS)
- {
- *os << arg->local_name ();
- }
- else
- {
- *os << arg->local_name () << ".in ()";
- }
-
- break;
- case AST_Argument::dir_INOUT:
- if (this->ctx_->state ()
- == TAO_CodeGen::TAO_ARGUMENT_COLLOCATED_UPCALL_SS)
- {
- *os << arg->local_name ();
- }
- else
- {
- *os << arg->local_name () << ".inout ()";
- }
-
- break;
- case AST_Argument::dir_OUT:
- if (this->ctx_->state ()
- == TAO_CodeGen::TAO_ARGUMENT_COLLOCATED_UPCALL_SS)
- {
- *os << arg->local_name ();
- }
- else
- {
- *os << arg->local_name () << ".out ()";
- }
-
- break;
- }
-
- return 0;
-}
-
-int be_visitor_args_upcall_ss::emit_common2 (be_type *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_argument *arg = this->ctx_->be_node_as_argument ();
-
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- case AST_Argument::dir_INOUT:
- *os << arg->local_name ();
-
- break;
- case AST_Argument::dir_OUT:
- if (node->size_type () == AST_Type::VARIABLE)
- {
- if (this->ctx_->state ()
- == TAO_CodeGen::TAO_ARGUMENT_COLLOCATED_UPCALL_SS)
- {
- *os << arg->local_name ();
- }
- else
- {
- *os << arg->local_name () << ".out ()";
- }
- }
- else
- {
- *os << arg->local_name ();
- }
-
- break;
- }
-
- return 0;
-}
diff --git a/TAO/TAO_IDL/be/be_visitor_argument/vardecl_ss.cpp b/TAO/TAO_IDL/be/be_visitor_argument/vardecl_ss.cpp
deleted file mode 100644
index 2736db1b783..00000000000
--- a/TAO/TAO_IDL/be/be_visitor_argument/vardecl_ss.cpp
+++ /dev/null
@@ -1,457 +0,0 @@
-//
-// $Id$
-//
-
-// ============================================================================
-//
-// = LIBRARY
-// TAO IDL
-//
-// = FILENAME
-// vardecl_ss.cpp
-//
-// = DESCRIPTION
-// Visitor that generates the variable declaration in the skeleton
-// corresponding to the Argument node
-//
-// = AUTHOR
-// Aniruddha Gokhale
-//
-// ============================================================================
-
-ACE_RCSID (be_visitor_argument,
- vardecl_ss,
- "$Id$")
-
-
-// ************************************************************************
-// Visitor to generate code for argument variable declaration
-// ************************************************************************
-
-be_visitor_args_vardecl_ss::be_visitor_args_vardecl_ss (
- be_visitor_context *ctx
- )
- : be_visitor_args (ctx)
-{
-}
-
-be_visitor_args_vardecl_ss::~be_visitor_args_vardecl_ss (void)
-{
-}
-
-int be_visitor_args_vardecl_ss::visit_argument (be_argument *node)
-{
- this->ctx_->node (node);
- be_type *bt = be_type::narrow_from_decl (node->field_type ());
-
- if (!bt)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_vardecl_ss::"
- "visit_argument - "
- "Bad argument type\n"),
- -1);
- }
-
- TAO_OutStream *os = this->ctx_->stream ();
-
- *os << be_nl;
-
- // Different types have different mappings when used as in/out or
- // inout parameters. Let this visitor deal with the type
- if (bt->accept (this) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_vardecl_ss::"
- "visit_argument - "
- "cannot accept visitor\n"),
- -1);
- }
-
- return 0;
-}
-
-int be_visitor_args_vardecl_ss::visit_array (be_array *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_argument *arg = this->ctx_->be_node_as_argument ();
- be_type *bt;
-
- if (this->ctx_->alias ())
- {
- bt = this->ctx_->alias ();
- }
- else
- {
- bt = node;
- }
-
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- case AST_Argument::dir_INOUT:
- *os << "::" << bt->name () << " " << arg->local_name () << ";" << be_nl
- << "::" << bt->name () << "_forany _tao_forany_"
- << arg->local_name () << " (" << be_idt << be_idt_nl
- << arg->local_name () << be_uidt_nl
- << ");" << be_uidt;
-
- break;
- case AST_Argument::dir_OUT:
- if (node->size_type () == be_type::VARIABLE)
- {
- *os << "::" << bt->name () << "_var " << arg->local_name ()
- << ";";
- }
- else
- {
- *os << bt->name () << " " << arg->local_name ()
- << ";";
- }
-
- break;
- }
-
- return 0;
-}
-
-int be_visitor_args_vardecl_ss::visit_enum (be_enum *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_argument *arg = this->ctx_->be_node_as_argument ();
- be_type *bt;
-
- if (this->ctx_->alias ())
- {
- bt = this->ctx_->alias ();
- }
- else
- {
- bt = node;
- }
-
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- case AST_Argument::dir_INOUT:
- case AST_Argument::dir_OUT:
- *os << "::" << bt->name () << " " << arg->local_name () << ";";
-
- break;
- }
-
- return 0;
-}
-
-int be_visitor_args_vardecl_ss::visit_interface (be_interface *node)
-{
- return this->emit_common (node);
-}
-
-int be_visitor_args_vardecl_ss::visit_interface_fwd (be_interface_fwd *node)
-{
- return this->emit_common (node);
-}
-
-
-int be_visitor_args_vardecl_ss::visit_valuebox (be_valuebox *node)
-{
- return this->emit_common (node);
-}
-
-int be_visitor_args_vardecl_ss::visit_valuetype (be_valuetype *node)
-{
- return this->emit_common (node);
-}
-
-int be_visitor_args_vardecl_ss::visit_valuetype_fwd (be_valuetype_fwd *node)
-{
- return this->emit_common (node);
-}
-
-int be_visitor_args_vardecl_ss::visit_predefined_type (be_predefined_type *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_argument *arg = this->ctx_->be_node_as_argument ();
- be_type *bt;
-
- if (this->ctx_->alias ())
- {
- bt = this->ctx_->alias ();
- }
- else
- {
- bt = node;
- }
-
- AST_PredefinedType::PredefinedType pt = node->pt ();
-
- *os << "::" << bt->name ();
-
- if (pt == AST_PredefinedType::PT_any)
- {
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- case AST_Argument::dir_INOUT:
- *os << " ";
- break;
- case AST_Argument::dir_OUT:
- *os << "_var ";
- break;
- }
-
- *os << arg->local_name () << ";";
- }
- else if (pt == AST_PredefinedType::PT_pseudo
- || pt == AST_PredefinedType::PT_object)
- {
- *os << "_var " << arg->local_name () << ";";
- }
- else
- {
- *os << " " << arg->local_name ();
-
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- break;
-
- // @@@ (JP) This is a hack for VC7, which gets an internal
- // compiler error if these not initialized.
- // (02-12-09)
- case AST_Argument::dir_INOUT:
- case AST_Argument::dir_OUT:
- switch (pt)
- {
- case AST_PredefinedType::PT_boolean:
- case AST_PredefinedType::PT_short:
- case AST_PredefinedType::PT_long:
- case AST_PredefinedType::PT_ushort:
- case AST_PredefinedType::PT_ulong:
- case AST_PredefinedType::PT_ulonglong:
- case AST_PredefinedType::PT_float:
- case AST_PredefinedType::PT_double:
- case AST_PredefinedType::PT_octet:
- *os << " = 0";
- break;
- case AST_PredefinedType::PT_longlong:
- *os << " = ACE_CDR_LONGLONG_INITIALIZER";
- break;
- case AST_PredefinedType::PT_longdouble:
- *os << " = ACE_CDR_LONG_DOUBLE_INITIALIZER";
- break;
- default:
- break;
- }
-
- break;
- }
-
- *os << ";";
- }
-
- return 0;
-}
-
-int be_visitor_args_vardecl_ss::visit_sequence (be_sequence *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_argument *arg = this->ctx_->be_node_as_argument ();
- be_type *bt;
-
- if (this->ctx_->alias ())
- {
- bt = this->ctx_->alias ();
- }
- else
- {
- bt = node;
- }
-
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- case AST_Argument::dir_INOUT:
- *os << "::" << bt->name () << " " << arg->local_name () << ";";
-
- break;
- case AST_Argument::dir_OUT:
- *os << "::" << bt->name () << "_var "
- << arg->local_name () << ";" << be_nl;
-
- break;
- }
-
- return 0;
-}
-
-int be_visitor_args_vardecl_ss::visit_string (be_string *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_argument *arg = this->ctx_->be_node_as_argument ();
-
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- case AST_Argument::dir_INOUT:
- if (node->width () == (long) sizeof (char))
- {
- *os << "::CORBA::String_var " << arg->local_name () << ";";
- }
- else
- {
- *os << "::CORBA::WString_var " << arg->local_name () << ";";
- }
-
- break;
- case AST_Argument::dir_OUT:
- if (node->width () == (long )sizeof (char))
- {
- *os << "::CORBA::String_var " << arg->local_name () << ";";
- }
- else
- {
- *os << "::CORBA::WString_var " << arg->local_name () << ";";
- }
-
- break;
- }
-
- return 0;
-}
-
-int be_visitor_args_vardecl_ss::visit_structure (be_structure *node)
-{
- return this->emit_common2 (node);
-}
-
-int be_visitor_args_vardecl_ss::visit_union (be_union *node)
-{
- return this->emit_common2 (node);
-}
-
-int be_visitor_args_vardecl_ss::visit_typedef (be_typedef *node)
-{
- this->ctx_->alias (node);
-
- if (node->primitive_base_type ()->accept (this) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "be_visitor_args_vardecl_ss::"
- "visit_typedef - "
- "accept on primitive type failed\n"),
- -1);
- }
-
- this->ctx_->alias (0);
- return 0;
-}
-
-int
-be_visitor_args_vardecl_ss::visit_component (
- be_component *node
- )
-{
- return this->visit_interface (node);
-}
-
-int
-be_visitor_args_vardecl_ss::visit_component_fwd (
- be_component_fwd *node
- )
-{
- return this->visit_interface_fwd (node);
-}
-
-int
-be_visitor_args_vardecl_ss::visit_eventtype (
- be_eventtype *node
- )
-{
- return this->visit_valuetype (node);
-}
-
-int
-be_visitor_args_vardecl_ss::visit_eventtype_fwd (
- be_eventtype_fwd *node
- )
-{
- return this->visit_valuetype_fwd (node);
-}
-
-
-int
-be_visitor_args_vardecl_ss::emit_common (be_type *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_argument *arg = this->ctx_->be_node_as_argument ();
- be_type *bt;
-
- if (this->ctx_->alias ())
- {
- bt = this->ctx_->alias ();
- }
- else
- {
- bt = node;
- }
-
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- case AST_Argument::dir_INOUT:
- *os << "::" << bt->name () << "_var " << arg->local_name () << ";";
-
- break;
- case AST_Argument::dir_OUT:
- *os << "::" << bt->name () << "_var "
- << arg->local_name () << ";";
-
- break;
- }
-
- return 0;
-}
-
-
-
-int
-be_visitor_args_vardecl_ss::emit_common2 (be_type *node)
-{
- TAO_OutStream *os = this->ctx_->stream ();
- be_argument *arg = this->ctx_->be_node_as_argument ();
- be_type *bt;
-
- if (this->ctx_->alias ())
- {
- bt = this->ctx_->alias ();
- }
- else
- {
- bt = node;
- }
-
- switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- case AST_Argument::dir_INOUT:
- *os << "::" << bt->name () << " " << arg->local_name () << ";";
-
- break;
- case AST_Argument::dir_OUT:
- if (node->size_type () == be_type::VARIABLE)
- {
- *os << "::" << bt->name () << "_var "
- << arg->local_name () << ";";
- }
- else
- {
- *os << "::" << bt->name () << " " << arg->local_name () << ";";
- }
-
- break;
- }
-
- return 0;
-}