summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be_include/be_visitor_argument
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/be_include/be_visitor_argument')
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_argument/arglist.h88
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_argument/argument.h59
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_argument/docall_cs.h81
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_argument/marshal_ss.h81
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_argument/post_docall_cs.h59
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_argument/post_marshal_ss.h81
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_argument/post_upcall_ss.h82
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_argument/pre_docall_cs.h81
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_argument/pre_upcall_ss.h81
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_argument/upcall_ss.h81
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_argument/vardecl_ss.h81
11 files changed, 855 insertions, 0 deletions
diff --git a/TAO/TAO_IDL/be_include/be_visitor_argument/arglist.h b/TAO/TAO_IDL/be_include/be_visitor_argument/arglist.h
new file mode 100644
index 00000000000..7042280a22e
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_argument/arglist.h
@@ -0,0 +1,88 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// arglist.h
+//
+// = DESCRIPTION
+// Visitors for generation of code for Arguments as parameter lists in the
+// operation signature
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (_BE_VISITOR_ARGUMENT_ARGLIST_H_)
+#define _BE_VISITOR_ARGUMENT_ARGLIST_H_
+
+class be_visitor_args_arglist : public be_visitor_args
+{
+ //
+ // = TITLE
+ // Generates the code for arguments output.
+ //
+ // = DESCRIPTION
+ // At several stages in the code generation a node of type
+ // "be_operation" is visited, and the code for its arguments must
+ // be generated.
+ // Sometimes the argument declarations must be generated (such as
+ // in the class declaration), other the arguments names (such as
+ // in method invocations).
+ // This class implements the declaration output, in other words,
+ // it outputs both the arguments and their types.
+ //
+public:
+ be_visitor_args_arglist (be_visitor_context *ctx);
+ // constructor
+
+ virtual ~be_visitor_args_arglist (void);
+ // destructor
+
+ virtual int visit_argument (be_argument *node);
+ // visit the argument node
+
+ // =visit all the nodes that can be the types for the argument
+
+ virtual int visit_array (be_array *node);
+ // visit array type
+
+ virtual int visit_enum (be_enum *node);
+ // visit the enum node
+
+ virtual int visit_interface (be_interface *node);
+ // visit interface
+
+ virtual int visit_interface_fwd (be_interface_fwd *node);
+ // visit interface forward
+
+ virtual int visit_native (be_native *node);
+ // visit native node
+
+ virtual int visit_predefined_type (be_predefined_type *node);
+ // visit predefined type
+
+ virtual int visit_sequence (be_sequence *node);
+ // visit sequence type
+
+ virtual int visit_string (be_string *node);
+ // visit string type
+
+ virtual int visit_structure (be_structure *node);
+ // visit structure type
+
+ virtual int visit_union (be_union *node);
+ // visit union type
+
+ virtual int visit_typedef (be_typedef *node);
+ // visit the typedef type
+
+};
+
+#endif /* _BE_VISITOR_ARGUMENT_ARGLIST_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_argument/argument.h b/TAO/TAO_IDL/be_include/be_visitor_argument/argument.h
new file mode 100644
index 00000000000..537811f8b94
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_argument/argument.h
@@ -0,0 +1,59 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// argument.h
+//
+// = DESCRIPTION
+// Visitors for generation of code for Arguments
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (_BE_VISITOR_ARGUMENT_ARGUMENT_H_)
+#define _BE_VISITOR_ARGUMENT_ARGUMENT_H_
+
+class be_visitor_args : public be_visitor_decl
+{
+ //
+ // = TITLE
+ // Generates the code for arguments output.
+ //
+ // = DESCRIPTION
+ // At several stages in the code generation a node of type
+ // "be_operation" is visited, and the code for its arguments must
+ // be generated.
+ // Sometimes the argument declarations must be generated (such as
+ // in the class declaration), other the arguments names (such as
+ // in method invocations).
+ // This class implements some common functionality required across all
+ // argument visitors
+ //
+public:
+ be_visitor_args (be_visitor_context *ctx);
+ // constructor
+
+ virtual ~be_visitor_args (void);
+ // destructor
+
+ //= helper
+ virtual const char *type_name (be_type *type, const char *suffix=0);
+ // helper that produces either a nested name for header files or full name
+ // for others
+
+ virtual AST_Argument::Direction direction (void);
+ // return the direction of the argument node
+
+ virtual int visit_argument (be_argument *node);
+ // must be overridden by derived classes
+};
+
+#endif /* _BE_VISITOR_ARGUMENT_ARGUMENT_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_argument/docall_cs.h b/TAO/TAO_IDL/be_include/be_visitor_argument/docall_cs.h
new file mode 100644
index 00000000000..0b876370660
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_argument/docall_cs.h
@@ -0,0 +1,81 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// docall_cs.h
+//
+// = DESCRIPTION
+// Visitors for generation of code for Arguments for passing the arguments
+// to the docall in the client side stub.
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (_BE_VISITOR_ARGUMENT_DOCALL_CS_H_)
+#define _BE_VISITOR_ARGUMENT_DOCALL_CS_H_
+
+// ************************************************************
+// class be_visitor_args_docall_cs
+// ************************************************************
+class be_visitor_args_docall_cs : public be_visitor_args
+{
+ //
+ // = TITLE
+ // be_visitor_args_docall_cs
+ //
+ // = DESCRIPTION
+ // Code to be generated when making the do_static_call
+ //
+public:
+ be_visitor_args_docall_cs (be_visitor_context *ctx);
+ // constructor
+
+ virtual ~be_visitor_args_docall_cs (void);
+ // destructor
+
+ virtual int visit_argument (be_argument *node);
+ // visit the argument node
+
+ // =visit all the nodes that can be the types for the argument
+
+ virtual int visit_array (be_array *node);
+ // visit array type
+
+ virtual int visit_enum (be_enum *node);
+ // visit the enum node
+
+ virtual int visit_interface (be_interface *node);
+ // visit interface
+
+ virtual int visit_interface_fwd (be_interface_fwd *node);
+ // visit interface forward
+
+ virtual int visit_predefined_type (be_predefined_type *node);
+ // visit predefined type
+
+ virtual int visit_sequence (be_sequence *node);
+ // visit sequence type
+
+ virtual int visit_string (be_string *node);
+ // visit string type
+
+ virtual int visit_structure (be_structure *node);
+ // visit structure type
+
+ virtual int visit_union (be_union *node);
+ // visit union type
+
+ virtual int visit_typedef (be_typedef *node);
+ // visit the typedef type
+
+};
+
+#endif /* _BE_VISITOR_ARGUMENT_DOCALL_CS_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_argument/marshal_ss.h b/TAO/TAO_IDL/be_include/be_visitor_argument/marshal_ss.h
new file mode 100644
index 00000000000..ea26a66fde3
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_argument/marshal_ss.h
@@ -0,0 +1,81 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// marshal_ss.h
+//
+// = DESCRIPTION
+// Visitors for generation of code for Arguments. This generates the
+// code to pass the arguments to the call to the marshaler/demarshaler
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (_BE_VISITOR_ARGUMENT_MARSHAL_SS_H_)
+#define _BE_VISITOR_ARGUMENT_MARSHAL_SS_H_
+
+// ************************************************************
+// class be_visitor_args_marshal_ss
+// ************************************************************
+class be_visitor_args_marshal_ss : public be_visitor_args
+{
+ //
+ // = TITLE
+ // be_visitor_args_marshal_ss
+ //
+ // = DESCRIPTION
+ // Visitor for passing argument to the marshaling/demarshaling routine
+ //
+public:
+ be_visitor_args_marshal_ss (be_visitor_context *ctx);
+ // constructor
+
+ virtual ~be_visitor_args_marshal_ss (void);
+ // destructor
+
+ virtual int visit_argument (be_argument *node);
+ // visit the argument node
+
+ // =visit all the nodes that can be the types for the argument
+
+ virtual int visit_array (be_array *node);
+ // visit array type
+
+ virtual int visit_enum (be_enum *node);
+ // visit the enum node
+
+ virtual int visit_interface (be_interface *node);
+ // visit interface
+
+ virtual int visit_interface_fwd (be_interface_fwd *node);
+ // visit interface forward
+
+ virtual int visit_predefined_type (be_predefined_type *node);
+ // visit predefined type
+
+ virtual int visit_sequence (be_sequence *node);
+ // visit sequence type
+
+ virtual int visit_string (be_string *node);
+ // visit string type
+
+ virtual int visit_structure (be_structure *node);
+ // visit structure type
+
+ virtual int visit_union (be_union *node);
+ // visit union type
+
+ virtual int visit_typedef (be_typedef *node);
+ // visit the typedef type
+
+};
+
+#endif /* _BE_VISITOR_ARGUMENT_MARSHAL_SS_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_argument/post_docall_cs.h b/TAO/TAO_IDL/be_include/be_visitor_argument/post_docall_cs.h
new file mode 100644
index 00000000000..e292de4fa0a
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_argument/post_docall_cs.h
@@ -0,0 +1,59 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// post_docall_cs.h
+//
+// = DESCRIPTION
+// Visitors for generation of code for Arguments for docall post processing
+// in the client side stub.
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (_BE_VISITOR_ARGUMENT_POST_DOCALL_CS_H_)
+#define _BE_VISITOR_ARGUMENT_POST_DOCALL_CS_H_
+
+// ************************************************************
+// class be_visitor_args_post_docall_cs
+// ************************************************************
+class be_visitor_args_post_docall_cs : public be_visitor_args
+{
+ //
+ // = TITLE
+ // be_visitor_args_post_docall_cs
+ //
+ // = DESCRIPTION
+ // Code to be generated after the do_static_call is done
+ //
+public:
+ be_visitor_args_post_docall_cs (be_visitor_context *ctx);
+ // constructor
+
+ virtual ~be_visitor_args_post_docall_cs (void);
+ // destructor
+
+ virtual int visit_argument (be_argument *node);
+ // visit the argument node
+
+ // =visit all the nodes that can be the types for the argument
+
+ virtual int visit_interface (be_interface *node);
+ // visit interface
+
+ virtual int visit_interface_fwd (be_interface_fwd *node);
+ // visit interface forward
+
+ virtual int visit_typedef (be_typedef *node);
+ // visit the typedef type
+};
+
+#endif /* _BE_VISITOR_ARGUMENT_POST_DOCALL_CS_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_argument/post_marshal_ss.h b/TAO/TAO_IDL/be_include/be_visitor_argument/post_marshal_ss.h
new file mode 100644
index 00000000000..4988ff66ad2
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_argument/post_marshal_ss.h
@@ -0,0 +1,81 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// post_marshal_ss.h
+//
+// = DESCRIPTION
+// Visitors for generation of code for Arguments. This generates the
+// code that does post-marshal processing (cleaning up) for arguments
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (_BE_VISITOR_ARGUMENT_POST_MARSHAL_SS_H_)
+#define _BE_VISITOR_ARGUMENT_POST_MARSHAL_SS_H_
+
+// ************************************************************
+// class be_visitor_args_post_marshal_ss
+// ************************************************************
+class be_visitor_args_post_marshal_ss : public be_visitor_args
+{
+ //
+ // = TITLE
+ // be_visitor_args_post_marshal_ss
+ //
+ // = DESCRIPTION
+ // Visitor for post processing after marshal
+ //
+public:
+ be_visitor_args_post_marshal_ss (be_visitor_context *ctx);
+ // constructor
+
+ virtual ~be_visitor_args_post_marshal_ss (void);
+ // destructor
+
+ virtual int visit_argument (be_argument *node);
+ // visit the argument node
+
+ // =visit all the nodes that can be the types for the argument
+
+ virtual int visit_array (be_array *node);
+ // visit array type
+
+ virtual int visit_enum (be_enum *node);
+ // visit the enum node
+
+ virtual int visit_interface (be_interface *node);
+ // visit interface
+
+ virtual int visit_interface_fwd (be_interface_fwd *node);
+ // visit interface forward
+
+ virtual int visit_predefined_type (be_predefined_type *node);
+ // visit predefined type
+
+ virtual int visit_sequence (be_sequence *node);
+ // visit sequence type
+
+ virtual int visit_string (be_string *node);
+ // visit string type
+
+ virtual int visit_structure (be_structure *node);
+ // visit structure type
+
+ virtual int visit_union (be_union *node);
+ // visit union type
+
+ virtual int visit_typedef (be_typedef *node);
+ // visit the typedef type
+
+};
+
+#endif /* _BE_VISITOR_ARGUMENT_POST_MARSHAL_SS_H */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_argument/post_upcall_ss.h b/TAO/TAO_IDL/be_include/be_visitor_argument/post_upcall_ss.h
new file mode 100644
index 00000000000..7b87ba9bf35
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_argument/post_upcall_ss.h
@@ -0,0 +1,82 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// post_upcall_ss.h
+//
+// = DESCRIPTION
+// Visitors for generation of code for Arguments. This generates the
+// code for post upcall processing of the arguments
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+
+#if !defined (_BE_VISITOR_ARGUMENT_POST_UPCALL_SS_H_)
+#define _BE_VISITOR_ARGUMENT_POST_UPCALL_SS_H_
+
+// ************************************************************
+// class be_visitor_args_post_upcall_ss
+// ************************************************************
+class be_visitor_args_post_upcall_ss : public be_visitor_args
+{
+ //
+ // = TITLE
+ // be_visitor_args_post_upcall_ss
+ //
+ // = DESCRIPTION
+ // Visitor for post processing after upcall
+ //
+public:
+ be_visitor_args_post_upcall_ss (be_visitor_context *ctx);
+ // constructor
+
+ virtual ~be_visitor_args_post_upcall_ss (void);
+ // destructor
+
+ virtual int visit_argument (be_argument *node);
+ // visit the argument node
+
+ // =visit all the nodes that can be the types for the argument
+
+ virtual int visit_array (be_array *node);
+ // visit array type
+
+ virtual int visit_enum (be_enum *node);
+ // visit the enum node
+
+ virtual int visit_interface (be_interface *node);
+ // visit interface
+
+ virtual int visit_interface_fwd (be_interface_fwd *node);
+ // visit interface forward
+
+ virtual int visit_predefined_type (be_predefined_type *node);
+ // visit predefined type
+
+ virtual int visit_sequence (be_sequence *node);
+ // visit sequence type
+
+ virtual int visit_string (be_string *node);
+ // visit string type
+
+ virtual int visit_structure (be_structure *node);
+ // visit structure type
+
+ virtual int visit_union (be_union *node);
+ // visit union type
+
+ virtual int visit_typedef (be_typedef *node);
+ // visit the typedef type
+
+};
+
+#endif /* _BE_VISITOR_ARGUMENT_POST_UPCALL_SS_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_argument/pre_docall_cs.h b/TAO/TAO_IDL/be_include/be_visitor_argument/pre_docall_cs.h
new file mode 100644
index 00000000000..f5238423590
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_argument/pre_docall_cs.h
@@ -0,0 +1,81 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// pre_docall_cs.h
+//
+// = DESCRIPTION
+// Visitors for generation of code for Arguments for pre docall processing
+// in client side stub that uses interpretive marshaling.
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (_BE_VISITOR_ARGUMENT_PRE_DOCALL_CS_H_)
+#define _BE_VISITOR_ARGUMENT_PRE_DOCALL_CS_H_
+
+// ************************************************************
+// class be_visitor_args_pre_docall_cs
+// ************************************************************
+class be_visitor_args_pre_docall_cs : public be_visitor_args
+{
+ //
+ // = TITLE
+ // be_visitor_args_docall_cs
+ //
+ // = DESCRIPTION
+ // Code to be generated when making the do_static_call
+ //
+public:
+ be_visitor_args_pre_docall_cs (be_visitor_context *ctx);
+ // constructor
+
+ virtual ~be_visitor_args_pre_docall_cs (void);
+ // destructor
+
+ virtual int void_return_type (void);
+ // return true if the operation return type is void
+
+ virtual int visit_argument (be_argument *node);
+ // visit the argument node
+
+ // =visit all the nodes that can be the types for the argument
+
+ virtual int visit_array (be_array *node);
+ // visit array type
+
+ virtual int visit_interface (be_interface *node);
+ // visit interface
+
+ virtual int visit_interface_fwd (be_interface_fwd *node);
+ // visit interface forward
+
+ virtual int visit_predefined_type (be_predefined_type *node);
+ // visit predefined type
+
+ virtual int visit_sequence (be_sequence *node);
+ // visit sequence type
+
+ virtual int visit_string (be_string *node);
+ // visit string type
+
+ virtual int visit_structure (be_structure *node);
+ // visit structure type
+
+ virtual int visit_union (be_union *node);
+ // visit union type
+
+ virtual int visit_typedef (be_typedef *node);
+ // visit the typedef type
+
+};
+
+#endif /* _BE_VISITOR_ARGUMENT_PRE_DOCALL_CS_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_argument/pre_upcall_ss.h b/TAO/TAO_IDL/be_include/be_visitor_argument/pre_upcall_ss.h
new file mode 100644
index 00000000000..24bf3e88054
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_argument/pre_upcall_ss.h
@@ -0,0 +1,81 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// pre_upcall_ss.h
+//
+// = DESCRIPTION
+// Visitors for generation of code for Arguments. This generates the
+// pre upcall processing of arguments in the server-side skeleton.
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (_BE_VISITOR_ARGUMENT_PRE_UPCALL_SS_H_)
+#define _BE_VISITOR_ARGUMENT_PRE_UPCALL_SS_H_
+
+// ************************************************************
+// class be_visitor_args_pre_upcall_ss
+// ************************************************************
+class be_visitor_args_pre_upcall_ss : public be_visitor_args
+{
+ //
+ // = TITLE
+ // be_visitor_args_upcall_ss
+ //
+ // = DESCRIPTION
+ // Visitor for passing argument to the upcall
+ //
+public:
+ be_visitor_args_pre_upcall_ss (be_visitor_context *ctx);
+ // constructor
+
+ virtual ~be_visitor_args_pre_upcall_ss (void);
+ // destructor
+
+ virtual int visit_argument (be_argument *node);
+ // visit the argument node
+
+ // =visit all the nodes that can be the types for the argument
+
+ virtual int visit_array (be_array *node);
+ // visit array type
+
+ virtual int visit_enum (be_enum *node);
+ // visit the enum node
+
+ virtual int visit_interface (be_interface *node);
+ // visit interface
+
+ virtual int visit_interface_fwd (be_interface_fwd *node);
+ // visit interface forward
+
+ virtual int visit_predefined_type (be_predefined_type *node);
+ // visit predefined type
+
+ virtual int visit_sequence (be_sequence *node);
+ // visit sequence type
+
+ virtual int visit_string (be_string *node);
+ // visit string type
+
+ virtual int visit_structure (be_structure *node);
+ // visit structure type
+
+ virtual int visit_union (be_union *node);
+ // visit union type
+
+ virtual int visit_typedef (be_typedef *node);
+ // visit the typedef type
+
+};
+
+#endif /* _BE_VISITOR_ARGUMENT_PRE_UPCALL_SS_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_argument/upcall_ss.h b/TAO/TAO_IDL/be_include/be_visitor_argument/upcall_ss.h
new file mode 100644
index 00000000000..5bd504fcded
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_argument/upcall_ss.h
@@ -0,0 +1,81 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// upcall_ss.h
+//
+// = DESCRIPTION
+// Visitors for generation of code for Arguments. This generates the
+// passing of arguments to the upcall.
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (_BE_VISITOR_ARGUMENT_UPCALL_SS_H_)
+#define _BE_VISITOR_ARGUMENT_UPCALL_SS_H_
+
+// ************************************************************
+// class be_visitor_args_upcall_ss
+// ************************************************************
+class be_visitor_args_upcall_ss : public be_visitor_args
+{
+ //
+ // = TITLE
+ // be_visitor_args_upcall_ss
+ //
+ // = DESCRIPTION
+ // Visitor for passing argument to the upcall
+ //
+public:
+ be_visitor_args_upcall_ss (be_visitor_context *ctx);
+ // constructor
+
+ virtual ~be_visitor_args_upcall_ss (void);
+ // destructor
+
+ virtual int visit_argument (be_argument *node);
+ // visit the argument node
+
+ // =visit all the nodes that can be the types for the argument
+
+ virtual int visit_array (be_array *node);
+ // visit array type
+
+ virtual int visit_enum (be_enum *node);
+ // visit the enum node
+
+ virtual int visit_interface (be_interface *node);
+ // visit interface
+
+ virtual int visit_interface_fwd (be_interface_fwd *node);
+ // visit interface forward
+
+ virtual int visit_predefined_type (be_predefined_type *node);
+ // visit predefined type
+
+ virtual int visit_sequence (be_sequence *node);
+ // visit sequence type
+
+ virtual int visit_string (be_string *node);
+ // visit string type
+
+ virtual int visit_structure (be_structure *node);
+ // visit structure type
+
+ virtual int visit_union (be_union *node);
+ // visit union type
+
+ virtual int visit_typedef (be_typedef *node);
+ // visit the typedef type
+
+};
+
+#endif /* _BE_VISITOR_ARGUMENT_UPCALL_SS_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_argument/vardecl_ss.h b/TAO/TAO_IDL/be_include/be_visitor_argument/vardecl_ss.h
new file mode 100644
index 00000000000..40018f1f0e2
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_argument/vardecl_ss.h
@@ -0,0 +1,81 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// vardecl_ss.h
+//
+// = DESCRIPTION
+// Visitors for generation of code for Arguments. This generates the
+// variable declartion for the argument in the server-sde skeleton
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (_BE_VISITOR_ARGUMENT_VARDECL_SS_H_)
+#define _BE_VISITOR_ARGUMENT_VARDECL_SS_H_
+
+// ************************************************************
+// class be_visitor_args_vardecl_ss
+// ************************************************************
+class be_visitor_args_vardecl_ss : public be_visitor_args
+{
+ //
+ // = TITLE
+ // be_visitor_args_vardecl_ss
+ //
+ // = DESCRIPTION
+ // Visitor for variable declaration for argument
+ //
+public:
+ be_visitor_args_vardecl_ss (be_visitor_context *ctx);
+ // constructor
+
+ virtual ~be_visitor_args_vardecl_ss (void);
+ // destructor
+
+ virtual int visit_argument (be_argument *node);
+ // visit the argument node
+
+ // =visit all the nodes that can be the types for the argument
+
+ virtual int visit_array (be_array *node);
+ // visit array type
+
+ virtual int visit_enum (be_enum *node);
+ // visit the enum node
+
+ virtual int visit_interface (be_interface *node);
+ // visit interface
+
+ virtual int visit_interface_fwd (be_interface_fwd *node);
+ // visit interface forward
+
+ virtual int visit_predefined_type (be_predefined_type *node);
+ // visit predefined type
+
+ virtual int visit_sequence (be_sequence *node);
+ // visit sequence type
+
+ virtual int visit_string (be_string *node);
+ // visit string type
+
+ virtual int visit_structure (be_structure *node);
+ // visit structure type
+
+ virtual int visit_union (be_union *node);
+ // visit union type
+
+ virtual int visit_typedef (be_typedef *node);
+ // visit the typedef type
+
+};
+
+#endif /* _BE_VISITOR_ARGUMENT_VARDECL_SS_H_ */