summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be_include/be_visitor_operation
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/be_include/be_visitor_operation')
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_operation/arglist.h54
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_operation/argument.h57
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_operation/collocated_sh.h52
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_operation/collocated_ss.h52
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_operation/exceptlist_cs.h52
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_operation/operation_ch.h50
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_operation/operation_cs.h55
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_operation/operation_sh.h50
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_operation/operation_ss.h55
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_operation/rettype.h81
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_operation/rettype_assign_ss.h80
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_operation/rettype_docall_cs.h79
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_operation/rettype_marshal_ss.h79
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_operation/rettype_post_docall_cs.h54
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_operation/rettype_post_upcall_ss.h79
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_operation/rettype_pre_docall_cs.h73
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_operation/rettype_return_cs.h78
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_operation/rettype_vardecl_cs.h78
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_operation/rettype_vardecl_ss.h79
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_operation/tie_sh.h50
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_operation/tie_si.h50
21 files changed, 1337 insertions, 0 deletions
diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/arglist.h b/TAO/TAO_IDL/be_include/be_visitor_operation/arglist.h
new file mode 100644
index 00000000000..42f418a97ed
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_operation/arglist.h
@@ -0,0 +1,54 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// arglist.h
+//
+// = DESCRIPTION
+// Visitor for generating code for IDL operations. This generates the
+// operation signature.
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (_BE_VISITOR_OPERATION_ARGLIST_H_)
+#define _BE_VISITOR_OPERATION_ARGLIST_H_
+
+// ******************************************************************************
+// Operation visitor for argument list - generates parameters in the signature
+// ******************************************************************************
+
+class be_visitor_operation_arglist : public be_visitor_scope
+{
+ //
+ // = TITLE
+ // be_visitor_operaion_arglist
+ //
+ // = DESCRIPTION
+ // This is a visitor to generate operation argument list
+ //
+ //
+public:
+ be_visitor_operation_arglist (be_visitor_context *ctx);
+ // constructor
+
+ ~be_visitor_operation_arglist (void);
+ // destructor
+
+ int visit_operation (be_operation *node);
+ // visit the operation
+
+ int visit_argument (be_argument *node);
+ // visit each argument
+
+};
+
+#endif /* _BE_VISITOR_OPERATION_ARGLIST_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/argument.h b/TAO/TAO_IDL/be_include/be_visitor_operation/argument.h
new file mode 100644
index 00000000000..6fc51da3ca7
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_operation/argument.h
@@ -0,0 +1,57 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// argument.h
+//
+// = DESCRIPTION
+// Visitor for generating code for IDL operations. This is a generic visitor
+// that calls visitors for the Argument class.
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (_BE_VISITOR_OPERATION_ARGUMENT_H_)
+#define _BE_VISITOR_OPERATION_ARGUMENT_H_
+
+// ************************************************************
+// generic operation visitor for docall, upcall, pre/post
+// ************************************************************
+
+class be_visitor_operation_argument : public be_visitor_scope
+{
+ //
+ // = TITLE
+ // be_visitor_operation_argument
+ //
+ // = DESCRIPTION
+ // This is a visitor to generate a variable declaration ofr an operation
+ // return type
+ //
+public:
+ be_visitor_operation_argument (be_visitor_context *ctx);
+ // constructor
+
+ ~be_visitor_operation_argument (void);
+ // destructor
+
+ int post_process (void);
+ // stuff to o/p after each element of the scope is handled
+
+ int visit_operation (be_operation *node);
+ // visit the operation
+
+ int visit_argument (be_argument *node);
+ // visit argument
+
+};
+
+#endif /* _BE_VISITOR_OPERATION_ARGUMENT_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/collocated_sh.h b/TAO/TAO_IDL/be_include/be_visitor_operation/collocated_sh.h
new file mode 100644
index 00000000000..dc31959e345
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_operation/collocated_sh.h
@@ -0,0 +1,52 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// collocated_ch.h
+//
+// = DESCRIPTION
+// Visitor for generating code for IDL operations for the collocated case
+// inside of the servant header
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (_BE_VISITOR_OPERATION_COLLOCATED_SH_H_)
+#define _BE_VISITOR_OPERATION_COLLOCATED_SH_H_
+
+// ************************************************************
+// Operation visitor for server header in the collocated class
+// ************************************************************
+
+class be_visitor_operation_collocated_sh : public be_visitor_scope
+{
+ //
+ // = TITLE
+ // be_visitor_operation_collocated_sh
+ //
+ // = DESCRIPTION
+ // This is a concrete visitor to generate the server header for operation
+ // in the collocated class
+ //
+ //
+public:
+ be_visitor_operation_collocated_sh (be_visitor_context *ctx);
+ // constructor
+
+ ~be_visitor_operation_collocated_sh (void);
+ // destructor
+
+ virtual int visit_operation (be_operation *node);
+ // visit operation node.
+
+};
+
+#endif /* _BE_VISITOR_OPERATION_COLLOCATED_SH_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/collocated_ss.h b/TAO/TAO_IDL/be_include/be_visitor_operation/collocated_ss.h
new file mode 100644
index 00000000000..48b7966e9aa
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_operation/collocated_ss.h
@@ -0,0 +1,52 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// collocated_ss.h
+//
+// = DESCRIPTION
+// Visitor for generating code for IDL operations for the collocated case
+// inside of the servant skeleton
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (_BE_VISITOR_OPERATION_COLLOCATED_SS_H_)
+#define _BE_VISITOR_OPERATION_COLLOCATED_SS_H_
+
+// *****************************************************************
+// Operation visitor for server skeletons for the collocated class
+// *****************************************************************
+
+class be_visitor_operation_collocated_ss : public be_visitor_scope
+{
+ //
+ // = TITLE
+ // be_visitor_operation_ss
+ //
+ // = DESCRIPTION
+ // This is a concrete visitor to generate the server skeletons for
+ // operation in the collocated class
+ //
+ //
+public:
+ be_visitor_operation_collocated_ss (be_visitor_context *ctx);
+ // constructor
+
+ ~be_visitor_operation_collocated_ss (void);
+ // destructor
+
+ virtual int visit_operation (be_operation *node);
+ // visit operation node.
+
+};
+
+#endif /* _BE_VISITOR_OPERATION_COLLOCATED_SS_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/exceptlist_cs.h b/TAO/TAO_IDL/be_include/be_visitor_operation/exceptlist_cs.h
new file mode 100644
index 00000000000..32c9e1c3d22
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_operation/exceptlist_cs.h
@@ -0,0 +1,52 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// exceptlist_cs.h
+//
+// = DESCRIPTION
+// Visitor for generating code for IDL operations. This generates the tables
+// for the exceptions used by the stubs.
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (_BE_VISITOR_OPERATION_EXCEPTIONLIST_CS_H_)
+#define _BE_VISITOR_OPERATION_EXCEPTIONLIST_CS_H_
+
+// ******************************************************************************
+// Visitor for generating the exception list
+// ******************************************************************************
+
+class be_visitor_operation_exceptlist_cs : public be_visitor_decl
+{
+ //
+ // = TITLE
+ // be_visitor_operaion_exceptlist_cs
+ //
+ // = DESCRIPTION
+ // This is a visitor to generate operation exception list to be provided to
+ // the do_static_call
+ //
+ //
+public:
+ be_visitor_operation_exceptlist_cs (be_visitor_context *ctx);
+ // constructor
+
+ ~be_visitor_operation_exceptlist_cs (void);
+ // destructor
+
+ int visit_operation (be_operation *node);
+ // visit the operation
+
+};
+
+#endif /* _BE_VISITOR_OPERATION_EXCEPTIONLIST_CS_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/operation_ch.h b/TAO/TAO_IDL/be_include/be_visitor_operation/operation_ch.h
new file mode 100644
index 00000000000..e039623dd5d
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_operation/operation_ch.h
@@ -0,0 +1,50 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// operation_ch.h
+//
+// = DESCRIPTION
+// Visitor for generating code for IDL operations in client header
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (_BE_VISITOR_OPERATION_OPERATION_CH_H_)
+#define _BE_VISITOR_OPERATION_OPERATION_CH_H_
+
+// ************************************************************
+// Operation visitor for client header
+// ************************************************************
+
+class be_visitor_operation_ch : public be_visitor_scope
+{
+ //
+ // = TITLE
+ // be_visitor_operation_ch
+ //
+ // = DESCRIPTION
+ // This is a concrete visitor to generate the client header for operation
+ //
+ //
+public:
+ be_visitor_operation_ch (be_visitor_context *ctx);
+ // constructor
+
+ ~be_visitor_operation_ch (void);
+ // destructor
+
+ virtual int visit_operation (be_operation *node);
+ // visit operation. We provide code for this method in the derived class
+
+};
+
+#endif /* _BE_VISITOR_OPERATION_OPERATION_CH_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/operation_cs.h b/TAO/TAO_IDL/be_include/be_visitor_operation/operation_cs.h
new file mode 100644
index 00000000000..1228b684e21
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_operation/operation_cs.h
@@ -0,0 +1,55 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// operation_cs.h
+//
+// = DESCRIPTION
+// Visitor for generating code for IDL operations in client stubs
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (_BE_VISITOR_OPERATION_OPERATION_CS_H_)
+#define _BE_VISITOR_OPERATION_OPERATION_CS_H_
+
+// ************************************************************
+// Operation visitor for client stubs
+// ************************************************************
+
+class be_visitor_operation_cs : public be_visitor_scope
+{
+ //
+ // = TITLE
+ // be_visitor_operation_cs
+ //
+ // = DESCRIPTION
+ // This is a concrete visitor to generate the client stubs for operation
+ //
+ //
+public:
+ be_visitor_operation_cs (be_visitor_context *ctx);
+ // constructor
+
+ ~be_visitor_operation_cs (void);
+ // destructor
+
+ virtual int visit_operation (be_operation *node);
+ // visit operation.
+
+ virtual int visit_argument (be_argument *node);
+ // visit argument to generate ParamData entries
+
+ virtual int post_process (void);
+ // stuff to output after every member of the scope is handled
+};
+
+#endif /* _BE_VISITOR_OPERATION_OPERATION_CS_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/operation_sh.h b/TAO/TAO_IDL/be_include/be_visitor_operation/operation_sh.h
new file mode 100644
index 00000000000..702a0dc2251
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_operation/operation_sh.h
@@ -0,0 +1,50 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// operation_sh.h
+//
+// = DESCRIPTION
+// Visitor for generating code for IDL operations in server header
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (_BE_VISITOR_OPERATION_OPERATION_SH_H_)
+#define _BE_VISITOR_OPERATION_OPERATION_SH_H_
+
+// ************************************************************
+// Operation visitor for server header
+// ************************************************************
+
+class be_visitor_operation_sh : public be_visitor_scope
+{
+ //
+ // = TITLE
+ // be_visitor_operation_sh
+ //
+ // = DESCRIPTION
+ // This is a concrete visitor to generate the server header for operation
+ //
+ //
+public:
+ be_visitor_operation_sh (be_visitor_context *ctx);
+ // constructor
+
+ ~be_visitor_operation_sh (void);
+ // destructor
+
+ virtual int visit_operation (be_operation *node);
+ // visit operation. We provide code for this method in the derived class
+
+};
+
+#endif /* _BE_VISITOR_OPERATION_OPERATION_SH_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/operation_ss.h b/TAO/TAO_IDL/be_include/be_visitor_operation/operation_ss.h
new file mode 100644
index 00000000000..14cf41e7863
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_operation/operation_ss.h
@@ -0,0 +1,55 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// operation_ss.h
+//
+// = DESCRIPTION
+// Visitor for generating code for IDL operations in server skeletons
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (_BE_VISITOR_OPERATION_OPERATION_SS_H_)
+#define _BE_VISITOR_OPERATION_OPERATION_SS_H_
+
+// ************************************************************
+// Operation visitor for server skeletons
+// ************************************************************
+
+class be_visitor_operation_ss : public be_visitor_scope
+{
+ //
+ // = TITLE
+ // be_visitor_operation_ss
+ //
+ // = DESCRIPTION
+ // This is a concrete visitor to generate the server skeletons for operation
+ //
+ //
+public:
+ be_visitor_operation_ss (be_visitor_context *ctx);
+ // constructor
+
+ ~be_visitor_operation_ss (void);
+ // destructor
+
+ virtual int visit_operation (be_operation *node);
+ // visit operation. We provide code for this method in the derived class
+
+ virtual int visit_argument (be_argument *node);
+ // visit argument to generate ParamData entries
+
+ virtual int post_process (void);
+ // stuff to output after every member of the scope is handled
+};
+
+#endif /* _BE_VISITOR_OPERATION_OPERATION_SS_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/rettype.h b/TAO/TAO_IDL/be_include/be_visitor_operation/rettype.h
new file mode 100644
index 00000000000..9a4fc0a8ac3
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_operation/rettype.h
@@ -0,0 +1,81 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// rettype.h
+//
+// = DESCRIPTION
+// Visitor for generating code for IDL operations. This generates the return
+// type of the operation
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (_BE_VISITOR_OPERATION_RETTYPE_H_)
+#define _BE_VISITOR_OPERATION_RETTYPE_H_
+
+// ***********************************************************************
+// Operation visitor for return types in the signature of the operation
+// ***********************************************************************
+
+class be_visitor_operation_rettype : public be_visitor_decl
+{
+ //
+ // = TITLE
+ // be_visitor_operation_ch
+ //
+ // = DESCRIPTION
+ // This is a visitor to generate operation return types
+ //
+ //
+public:
+ be_visitor_operation_rettype (be_visitor_context *ctx);
+ // constructor
+
+ ~be_visitor_operation_rettype (void);
+ // destructor
+
+ int visit_array (be_array *node);
+ // visit an array node
+
+ int visit_enum (be_enum *node);
+ // visit an enum node
+
+ int visit_interface (be_interface *node);
+ // visit an interface node
+
+ int visit_interface_fwd (be_interface_fwd *node);
+ // visit an interface node
+
+ int visit_native (be_native *node);
+ // visit native type
+
+ int visit_predefined_type (be_predefined_type *node);
+ // visit a predefined type node
+
+ int visit_sequence (be_sequence *node);
+ // visit a sequence node
+
+ int visit_string (be_string *node);
+ // visit a sequence node
+
+ int visit_structure (be_structure *node);
+ // visit a structure node
+
+ int visit_typedef (be_typedef *node);
+ // visit a typedef node
+
+ int visit_union (be_union *node);
+ // visit a union node
+
+};
+
+#endif /* _BE_VISITOR_OPERATION_RETTYPE_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_assign_ss.h b/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_assign_ss.h
new file mode 100644
index 00000000000..ff35c744e62
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_assign_ss.h
@@ -0,0 +1,80 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// rettype_assign_ss.h
+//
+// = DESCRIPTION
+// Visitor for generating code for IDL operations. This generates the
+// assignment of the return value of the upcall to the return type variabel
+// inside the server-skeleton.
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (_BE_VISITOR_OPERATION_RETTYPE_ASSIGN_SS_H_)
+#define _BE_VISITOR_OPERATION_RETTYPE_ASSIGN_SS_H_
+
+// ***********************************************************************
+// Operation visitor for assignment to return types in an upcall
+// ***********************************************************************
+
+class be_visitor_operation_rettype_assign_ss : public be_visitor_decl
+{
+ //
+ // = TITLE
+ // be_visitor_operation_ch
+ //
+ // = DESCRIPTION
+ // This is a visitor to generate code that assigns to the return type
+ // variable in the upcall
+ //
+ //
+public:
+ be_visitor_operation_rettype_assign_ss (be_visitor_context *ctx);
+ // constructor
+
+ ~be_visitor_operation_rettype_assign_ss (void);
+ // destructor
+
+ int visit_array (be_array *node);
+ // visit an array node
+
+ int visit_enum (be_enum *node);
+ // visit an enum node
+
+ int visit_interface (be_interface *node);
+ // visit an interface node
+
+ int visit_interface_fwd (be_interface_fwd *node);
+ // visit an interface node
+
+ int visit_predefined_type (be_predefined_type *node);
+ // visit a predefined type node
+
+ int visit_sequence (be_sequence *node);
+ // visit a sequence node
+
+ int visit_string (be_string *node);
+ // visit a sequence node
+
+ int visit_structure (be_structure *node);
+ // visit a structure node
+
+ int visit_typedef (be_typedef *node);
+ // visit a typedef node
+
+ int visit_union (be_union *node);
+ // visit a union node
+
+};
+
+#endif /* _BE_VISITOR_OPERATION_RETTYPE_ASSIGN_SS_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_docall_cs.h b/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_docall_cs.h
new file mode 100644
index 00000000000..eb3b287ce9c
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_docall_cs.h
@@ -0,0 +1,79 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// rettype_docall_cs.h
+//
+// = DESCRIPTION
+// Visitor for generating code for IDL operations. This generates the code
+// for passing the return type variable to the docall
+// made.
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (_BE_VISITOR_OPERATION_RETTYPE_DOCALL_CS_H_)
+#define _BE_VISITOR_OPERATION_RETTYPE_DOCALL_CS_H_
+
+// ************************************************************
+// Operation visitor for passing return variable to do_static_call
+// ************************************************************
+
+class be_visitor_operation_rettype_docall_cs :public be_visitor_decl
+{
+ //
+ // = TITLE
+ // be_visitor_operation_rettype_docall_cs
+ //
+ // = DESCRIPTION
+ // This is a visitor to generate a variable declaration ofr an operation
+ // return type
+ //
+public:
+ be_visitor_operation_rettype_docall_cs (be_visitor_context *ctx);
+ // constructor
+
+ ~be_visitor_operation_rettype_docall_cs (void);
+ // destructor
+
+ int visit_array (be_array *node);
+ // visit an array node
+
+ int visit_enum (be_enum *node);
+ // visit an enum node
+
+ int visit_interface (be_interface *node);
+ // visit an interface node
+
+ int visit_interface_fwd (be_interface_fwd *node);
+ // visit an interface node
+
+ int visit_predefined_type (be_predefined_type *node);
+ // visit a predefined type node
+
+ int visit_sequence (be_sequence *node);
+ // visit a sequence node
+
+ int visit_string (be_string *node);
+ // visit a sequence node
+
+ int visit_structure (be_structure *node);
+ // visit a structure node
+
+ int visit_typedef (be_typedef *node);
+ // visit a typedef node
+
+ int visit_union (be_union *node);
+ // visit a union node
+
+};
+
+#endif /* _BE_VISITOR_OPERATION_RETTYPE_DOCALL_CS_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_marshal_ss.h b/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_marshal_ss.h
new file mode 100644
index 00000000000..b3f95579a6a
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_marshal_ss.h
@@ -0,0 +1,79 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// rettype_marshal_ss.h
+//
+// = DESCRIPTION
+// Visitor for generating code for IDL operations. This generates the code
+// for passing the return type variable to the marshaler.
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (_BE_VISITOR_OPERATION_RETTYPE_MARSHAL_SS_H_)
+#define _BE_VISITOR_OPERATION_RETTYPE_MARSHAL_SSH_
+
+// ***********************************************************************
+// Operation visitor for passing return type to the marshal/demarshal routine
+// inside the server skeleton
+// ***********************************************************************
+
+class be_visitor_operation_rettype_marshal_ss : public be_visitor_decl
+{
+ //
+ // = TITLE
+ // be_visitor_operation_rettype_marshal_ss
+ //
+ // = DESCRIPTION
+ // This is a visitor to pass return type to the marshal/demarshal routines
+ //
+ //
+public:
+ be_visitor_operation_rettype_marshal_ss (be_visitor_context *ctx);
+ // constructor
+
+ ~be_visitor_operation_rettype_marshal_ss (void);
+ // destructor
+
+ int visit_array (be_array *node);
+ // visit an array node
+
+ int visit_enum (be_enum *node);
+ // visit an enum node
+
+ int visit_interface (be_interface *node);
+ // visit an interface node
+
+ int visit_interface_fwd (be_interface_fwd *node);
+ // visit an interface node
+
+ int visit_predefined_type (be_predefined_type *node);
+ // visit a predefined type node
+
+ int visit_sequence (be_sequence *node);
+ // visit a sequence node
+
+ int visit_string (be_string *node);
+ // visit a sequence node
+
+ int visit_structure (be_structure *node);
+ // visit a structure node
+
+ int visit_typedef (be_typedef *node);
+ // visit a typedef node
+
+ int visit_union (be_union *node);
+ // visit a union node
+
+};
+
+#endif /* _BE_VISITOR_OPERATION_RETTYPE_MARSHAL_SSH_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_post_docall_cs.h b/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_post_docall_cs.h
new file mode 100644
index 00000000000..e2299617a35
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_post_docall_cs.h
@@ -0,0 +1,54 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// rettype_post_docall_cs.h
+//
+// = DESCRIPTION
+// Visitor for generating code for IDL operations. This generates the code
+// for post processing of the return type variable after the docall is
+// made.
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (_BE_VISITOR_OPERATION_RETTYPE_POST_DOCALL_CS_H_)
+#define _BE_VISITOR_OPERATION_RETTYPE_POST_DOCALL_CS_H_
+
+// ************************************************************
+// Operation visitor for postprocessing after do_static_call is invoked
+// ************************************************************
+
+class be_visitor_operation_rettype_post_docall_cs :public be_visitor_decl
+{
+ //
+ // = TITLE
+ // be_visitor_operation_rettype_psot_docall_cs
+ //
+ // = DESCRIPTION
+ // This is a visitor to generate any post processing after the do_static_call is
+ // made
+ //
+public:
+ be_visitor_operation_rettype_post_docall_cs (be_visitor_context *ctx);
+ // constructor
+
+ ~be_visitor_operation_rettype_post_docall_cs (void);
+ // destructor
+
+ int visit_interface (be_interface *node);
+ // visit an interface node
+
+ int visit_interface_fwd (be_interface_fwd *node);
+ // visit an interface node
+};
+
+#endif /* _BE_VISITOR_OPERATION_RETTYPE_POST_DOCALL_CS_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_post_upcall_ss.h b/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_post_upcall_ss.h
new file mode 100644
index 00000000000..6cfbd7566ed
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_post_upcall_ss.h
@@ -0,0 +1,79 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// rettype_post_upcall_ss.h
+//
+// = DESCRIPTION
+// Visitor for generating code for IDL operations. This generates the code
+// for post processing of the return type variable after the upcall is
+// made.
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (_BE_VISITOR_OPERATION_RETTYPE_POST_UPCALL_SS_H_)
+#define _BE_VISITOR_OPERATION_RETTYPE_POST_UPCALL_SS_H_
+
+// ***********************************************************************
+// Operation visitor for post upcall processing of return types
+// ***********************************************************************
+
+class be_visitor_operation_rettype_post_upcall_ss : public be_visitor_decl
+{
+ //
+ // = TITLE
+ // be_visitor_operation_rettype_post_upcall_ss
+ //
+ // = DESCRIPTION
+ // This is a visitor for post processing after an upcall
+ //
+ //
+public:
+ be_visitor_operation_rettype_post_upcall_ss (be_visitor_context *ctx);
+ // constructor
+
+ ~be_visitor_operation_rettype_post_upcall_ss (void);
+ // destructor
+
+ int visit_array (be_array *node);
+ // visit an array node
+
+ int visit_enum (be_enum *node);
+ // visit an enum node
+
+ int visit_interface (be_interface *node);
+ // visit an interface node
+
+ int visit_interface_fwd (be_interface_fwd *node);
+ // visit an interface node
+
+ int visit_predefined_type (be_predefined_type *node);
+ // visit a predefined type node
+
+ int visit_sequence (be_sequence *node);
+ // visit a sequence node
+
+ int visit_string (be_string *node);
+ // visit a sequence node
+
+ int visit_structure (be_structure *node);
+ // visit a structure node
+
+ int visit_typedef (be_typedef *node);
+ // visit a typedef node
+
+ int visit_union (be_union *node);
+ // visit a union node
+
+};
+
+#endif /* _BE_VISITOR_OPERATION_RETTYPE_POST_UPCALL_SS_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_pre_docall_cs.h b/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_pre_docall_cs.h
new file mode 100644
index 00000000000..acb296f6ac9
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_pre_docall_cs.h
@@ -0,0 +1,73 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// rettype_pre_docall_cs.h
+//
+// = DESCRIPTION
+// Visitor for generating code for IDL operations. This generates the code
+// for pre processing of the return type variable before the docall is
+// made.
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (_BE_VISITOR_OPERATION_RETTYPE_PRE_DOCALL_CS_H_)
+#define _BE_VISITOR_OPERATION_RETTYPE_PRE_DOCALL_CS_H_
+
+// ************************************************************
+// Operation visitor for preprocessing before do_static_call is invoked
+// ************************************************************
+
+class be_visitor_operation_rettype_pre_docall_cs :public be_visitor_decl
+{
+ //
+ // = TITLE
+ // be_visitor_operation_rettype_pre_docall_cs
+ //
+ // = DESCRIPTION
+ // This is a visitor to generate any pre processing before the do_static_call is
+ // made
+ //
+public:
+ be_visitor_operation_rettype_pre_docall_cs (be_visitor_context *ctx);
+ // constructor
+
+ ~be_visitor_operation_rettype_pre_docall_cs (void);
+ // destructor
+
+ int visit_array (be_array *node);
+ // visit an array node
+
+ int visit_interface (be_interface *node);
+ // visit an interface node
+
+ int visit_interface_fwd (be_interface_fwd *node);
+ // visit an interface node
+
+ int visit_predefined_type (be_predefined_type *node);
+ // visit a predefined type node
+
+ int visit_sequence (be_sequence *node);
+ // visit a sequence node
+
+ int visit_structure (be_structure *node);
+ // visit a structure node
+
+ int visit_typedef (be_typedef *node);
+ // visit a typedef node
+
+ int visit_union (be_union *node);
+ // visit a union node
+
+};
+
+#endif /* _BE_VISITOR_OPERATION_RETTYPE_PRE_DOCALL_CS_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_return_cs.h b/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_return_cs.h
new file mode 100644
index 00000000000..ec9b8383342
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_return_cs.h
@@ -0,0 +1,78 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// rettype_return_cs.h
+//
+// = DESCRIPTION
+// Visitor for generating code for IDL operations. This generates the return
+// statement for returning the return type variable in the client stub.
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (_BE_VISITOR_OPERATION_RETTYPE_RETURN_CS_H_)
+#define _BE_VISITOR_OPERATION_RETTYPE_CS_H_
+
+// ************************************************************
+// Operation visitor for returning the return val
+// ************************************************************
+
+class be_visitor_operation_rettype_return_cs :public be_visitor_decl
+{
+ //
+ // = TITLE
+ // be_visitor_operation_rettype_return_cs
+ //
+ // = DESCRIPTION
+ // This is a visitor to generate a variable declaration ofr an operation
+ // return type
+ //
+public:
+ be_visitor_operation_rettype_return_cs (be_visitor_context *ctx);
+ // constructor
+
+ ~be_visitor_operation_rettype_return_cs (void);
+ // destructor
+
+ int visit_array (be_array *node);
+ // visit an array node
+
+ int visit_enum (be_enum *node);
+ // visit an enum node
+
+ int visit_interface (be_interface *node);
+ // visit an interface node
+
+ int visit_interface_fwd (be_interface_fwd *node);
+ // visit an interface node
+
+ int visit_predefined_type (be_predefined_type *node);
+ // visit a predefined type node
+
+ int visit_sequence (be_sequence *node);
+ // visit a sequence node
+
+ int visit_string (be_string *node);
+ // visit a sequence node
+
+ int visit_structure (be_structure *node);
+ // visit a structure node
+
+ int visit_typedef (be_typedef *node);
+ // visit a typedef node
+
+ int visit_union (be_union *node);
+ // visit a union node
+
+};
+
+#endif /* _BE_VISITOR_OPERATION_RETTYPE_RETURN_CS_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_vardecl_cs.h b/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_vardecl_cs.h
new file mode 100644
index 00000000000..ca9b7ba99e7
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_vardecl_cs.h
@@ -0,0 +1,78 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// rettype_vardecl_cs.h
+//
+// = DESCRIPTION
+// Visitor for generating code for IDL operations. This generates the return
+// type variable declaration in the client side stub.
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (_BE_VISITOR_OPERATION_RETTYPE_VARDECL_CS_H_)
+#define _BE_VISITOR_OPERATION_RETTYPE_VARDECL_CS_H_
+
+// ************************************************************
+// Operation visitor for return type variable declaration
+// ************************************************************
+
+class be_visitor_operation_rettype_vardecl_cs :public be_visitor_decl
+{
+ //
+ // = TITLE
+ // be_visitor_operation_rettype_vardecl_cs
+ //
+ // = DESCRIPTION
+ // This is a visitor to generate a variable declaration ofr an operation
+ // return type
+ //
+public:
+ be_visitor_operation_rettype_vardecl_cs (be_visitor_context *ctx);
+ // constructor
+
+ ~be_visitor_operation_rettype_vardecl_cs (void);
+ // destructor
+
+ int visit_array (be_array *node);
+ // visit an array node
+
+ int visit_enum (be_enum *node);
+ // visit an enum node
+
+ int visit_interface (be_interface *node);
+ // visit an interface node
+
+ int visit_interface_fwd (be_interface_fwd *node);
+ // visit an interface node
+
+ int visit_predefined_type (be_predefined_type *node);
+ // visit a predefined type node
+
+ int visit_sequence (be_sequence *node);
+ // visit a sequence node
+
+ int visit_string (be_string *node);
+ // visit a sequence node
+
+ int visit_structure (be_structure *node);
+ // visit a structure node
+
+ int visit_typedef (be_typedef *node);
+ // visit a typedef node
+
+ int visit_union (be_union *node);
+ // visit a union node
+
+};
+
+#endif /* _BE_VISITOR_OPERATION_RETTYPE_VARDECL_CS_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_vardecl_ss.h b/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_vardecl_ss.h
new file mode 100644
index 00000000000..57678e6371b
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_vardecl_ss.h
@@ -0,0 +1,79 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// rettype_vardecl_ss.h
+//
+// = DESCRIPTION
+// Visitor for generating code for IDL operations. This generates the return
+// type variable declaration in the server side skeleton.
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (_BE_VISITOR_OPERATION_RETTYPE_VARDECL_SS_H_)
+#define _BE_VISITOR_OPERATION_RETTYPE_VARDECL_SS_H_
+
+// ************************************************************
+// Operation visitor for return type variable declaration in the server
+// skeleton
+// ************************************************************
+
+class be_visitor_operation_rettype_vardecl_ss :public be_visitor_decl
+{
+ //
+ // = TITLE
+ // be_visitor_operation_rettype_vardecl_ss
+ //
+ // = DESCRIPTION
+ // This is a visitor to generate a variable declaration ofr an operation
+ // return type in the server skeleton
+ //
+public:
+ be_visitor_operation_rettype_vardecl_ss (be_visitor_context *ctx);
+ // constructor
+
+ ~be_visitor_operation_rettype_vardecl_ss (void);
+ // destructor
+
+ int visit_array (be_array *node);
+ // visit an array node
+
+ int visit_enum (be_enum *node);
+ // visit an enum node
+
+ int visit_interface (be_interface *node);
+ // visit an interface node
+
+ int visit_interface_fwd (be_interface_fwd *node);
+ // visit an interface node
+
+ int visit_predefined_type (be_predefined_type *node);
+ // visit a predefined type node
+
+ int visit_sequence (be_sequence *node);
+ // visit a sequence node
+
+ int visit_string (be_string *node);
+ // visit a sequence node
+
+ int visit_structure (be_structure *node);
+ // visit a structure node
+
+ int visit_typedef (be_typedef *node);
+ // visit a typedef node
+
+ int visit_union (be_union *node);
+ // visit a union node
+
+};
+
+#endif /* _BE_VISITOR_OPERATION_RETTYPE_VARDECL_SS_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/tie_sh.h b/TAO/TAO_IDL/be_include/be_visitor_operation/tie_sh.h
new file mode 100644
index 00000000000..f5329bfe963
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_operation/tie_sh.h
@@ -0,0 +1,50 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// tie_sh.h
+//
+// = DESCRIPTION
+// Visitor for generating code for IDL operations for the TIE class inside
+// the server header
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (_BE_VISITOR_OPERATION_TIE_SH_H_)
+#define _BE_VISITOR_OPERATION_TIE_SH_H_
+
+// ***********************************************************************
+// Operation visitor for operation declaration inside the TIE class
+// ***********************************************************************
+
+class be_visitor_operation_tie_sh : public be_visitor_scope
+{
+ //
+ // = TITLE
+ // be_visitor_operation_tie_sh
+ //
+ // = DESCRIPTION
+ // This is a concrete visitor to generate the operaton inside a TIE class
+ //
+ //
+public:
+ be_visitor_operation_tie_sh (be_visitor_context *ctx);
+ // constructor
+
+ ~be_visitor_operation_tie_sh (void);
+ // destructor
+
+ virtual int visit_operation (be_operation *node);
+ // set the right context and make a visitor
+};
+
+#endif /* _BE_VISITOR_OPERATION_TIE_SH_H_ */
diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/tie_si.h b/TAO/TAO_IDL/be_include/be_visitor_operation/tie_si.h
new file mode 100644
index 00000000000..f6168878069
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_operation/tie_si.h
@@ -0,0 +1,50 @@
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// tie_si.h
+//
+// = DESCRIPTION
+// Visitor for generating code for IDL operations for the TIE class inside
+// the server inline
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (_BE_VISITOR_OPERATION_TIE_SI_H_)
+#define _BE_VISITOR_OPERATION_TIE_SI_H_
+
+// ***********************************************************************
+// Operation visitor for operation declaration inside the TIE class
+// ***********************************************************************
+
+class be_visitor_operation_tie_si : public be_visitor_scope
+{
+ //
+ // = TITLE
+ // be_visitor_operation_tie_ss
+ //
+ // = DESCRIPTION
+ // This is a concrete visitor to generate the operaton inside a TIE class
+ //
+ //
+public:
+ be_visitor_operation_tie_si (be_visitor_context *ctx);
+ // constructor
+
+ ~be_visitor_operation_tie_si (void);
+ // destructor
+
+ virtual int visit_operation (be_operation *node);
+ // set the right context and make a visitor
+};
+
+#endif /* _BE_VISITOR_OPERATION_TIE_SI_H_ */