diff options
Diffstat (limited to 'TAO/TAO_IDL/be_include/be_visitor_argument')
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_ */ |