summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be_include/be_visitor_typecode/typecode_defn.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/be_include/be_visitor_typecode/typecode_defn.h')
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_typecode/typecode_defn.h288
1 files changed, 0 insertions, 288 deletions
diff --git a/TAO/TAO_IDL/be_include/be_visitor_typecode/typecode_defn.h b/TAO/TAO_IDL/be_include/be_visitor_typecode/typecode_defn.h
deleted file mode 100644
index 601300e9703..00000000000
--- a/TAO/TAO_IDL/be_include/be_visitor_typecode/typecode_defn.h
+++ /dev/null
@@ -1,288 +0,0 @@
-/* -*- c++ -*- */
-//
-// $Id$
-//
-
-// ============================================================================
-//
-// = LIBRARY
-// TAO IDL
-//
-// = FILENAME
-// typecode_defn.h
-//
-// = DESCRIPTION
-// Concrete visitor for the generation of TypeCodes.
-// This one generates the definitions.
-//
-// = AUTHOR
-// Aniruddha Gokhale
-//
-// ============================================================================
-
-#ifndef _BE_VISITOR_TYPECODE_TYPECODE_DEFN_H_
-#define _BE_VISITOR_TYPECODE_TYPECODE_DEFN_H_
-
-#include "be_visitor_scope.h"
-
-const int TAO_BE_VISITOR_TYPECODE_DEFN_MAX_STACK_SIZE = 1024;
-
-class be_visitor_typecode_defn : public be_visitor_scope
-{
- //
- // = TITLE
- // be_visitor_typecode_defn
- //
- // = DESCRIPTION
- // This is a concrete visitor for generating TypeCode definitions
- //
-
-public:
- be_visitor_typecode_defn (be_visitor_context *ctx);
- // constructor
-
- ~be_visitor_typecode_defn (void);
- // destructor
-
- virtual int visit_type (be_type *node);
- // visit a generic be_type node
-
- // =visit methods on all types. They call the generic visit_type
-
- virtual int visit_array (be_array *node);
- // visit a array
-
- virtual int visit_enum (be_enum *node);
- // visit an enum
-
- virtual int visit_exception (be_exception *node);
- // visit an enum
-
- virtual int visit_interface (be_interface *node);
- // visit interface
-
- virtual int visit_interface_fwd (be_interface_fwd *node);
- // visit interface
-
- virtual int visit_predefined_type (be_predefined_type *node);
- // visit predefined types
-
- virtual int visit_sequence (be_sequence *node);
- // visit a sequence
-
- virtual int visit_string (be_string *node);
- // visit a structure
-
- virtual int visit_structure (be_structure *node);
- // visit a structure
-
- virtual int visit_typedef (be_typedef *node);
- // visit a typedef
-
- virtual int visit_union (be_union *node);
- // visit a union
-
- // = visit methods for the scope elements
-
- virtual int visit_enum_val (be_enum_val *node);
- // visit the enumeration values
-
- virtual int visit_field (be_field *node);
- // visit the field (struct and exception member)
-
- virtual int visit_union_branch (be_union_branch *node);
- // visit the union member
-
- // = special methods
-
- virtual int gen_nested_namespace_begin (be_module *node);
- // generate the nested namespace begins
-
- virtual int gen_nested_namespace_end (be_module *node);
- // generate the nested namespace ends
-
- // = methods for generating typecodes
-
- int gen_typecode (be_array *node);
-
- int gen_typecode (be_enum *node);
-
- int gen_typecode (be_exception *node);
-
- int gen_typecode (be_interface *node);
-
- int gen_typecode (be_interface_fwd *node);
-
- int gen_typecode (be_predefined_type *node);
-
- int gen_typecode (be_sequence *node);
-
- int gen_typecode (be_string *node);
-
- int gen_typecode (be_structure *node);
-
- int gen_typecode (be_typedef *node);
-
- int gen_typecode (be_union *node);
-
- // = methods to generate encapsulations for typecodes
-
- int gen_encapsulation (be_array *node);
-
- int gen_encapsulation (be_enum *node);
-
- int gen_encapsulation (be_enum_val *node);
-
- int gen_encapsulation (be_exception *node);
-
- int gen_encapsulation (be_field *node);
-
- int gen_encapsulation (be_interface *node);
-
- int gen_encapsulation (be_interface_fwd *node);
-
- int gen_encapsulation (be_predefined_type *node);
-
- int gen_encapsulation (be_sequence *node);
-
- int gen_encapsulation (be_string *node);
-
- int gen_encapsulation (be_structure *node);
-
- int gen_encapsulation (be_typedef *node);
-
- int gen_encapsulation (be_union *node);
-
- int gen_encapsulation (be_union_branch *node);
-
- // = methods for computing typecode sizes
-
- ACE_CDR::Long compute_tc_size (be_array *node);
-
- ACE_CDR::Long compute_tc_size (be_enum *node);
-
- ACE_CDR::Long compute_tc_size (be_exception *node);
-
- ACE_CDR::Long compute_tc_size (be_interface *node);
-
- ACE_CDR::Long compute_tc_size (be_interface_fwd *node);
-
- ACE_CDR::Long compute_tc_size (be_predefined_type *node);
-
- ACE_CDR::Long compute_tc_size (be_sequence *node);
-
- ACE_CDR::Long compute_tc_size (be_string *node);
-
- ACE_CDR::Long compute_tc_size (be_structure *node);
-
- ACE_CDR::Long compute_tc_size (be_typedef *node);
-
- ACE_CDR::Long compute_tc_size (be_union *node);
-
- // methods for computing the encapsulation length
-
- ACE_CDR::Long compute_encap_length (be_array *node);
-
- ACE_CDR::Long compute_encap_length (be_enum *node);
-
- ACE_CDR::Long compute_encap_length (be_enum_val *node);
-
- ACE_CDR::Long compute_encap_length (be_exception *node);
-
- ACE_CDR::Long compute_encap_length (be_field *node);
-
- ACE_CDR::Long compute_encap_length (be_interface *node);
-
- ACE_CDR::Long compute_encap_length (be_interface_fwd *node);
-
- ACE_CDR::Long compute_encap_length (be_predefined_type *node);
-
- ACE_CDR::Long compute_encap_length (be_sequence *node);
-
- ACE_CDR::Long compute_encap_length (be_string *node);
-
- ACE_CDR::Long compute_encap_length (be_structure *node);
-
- ACE_CDR::Long compute_encap_length (be_typedef *node);
-
- ACE_CDR::Long compute_encap_length (be_union *node);
-
- ACE_CDR::Long compute_encap_length (be_union_branch *node);
-
- // helpers to generate the repoID and name
-
- void gen_repoID (be_decl *node);
-
- void gen_name (be_decl *node);
-
- // helpers to generate encap len of the repoID and name
-
- ACE_CDR::ULong repoID_encap_len (be_decl *node);
-
- ACE_CDR::ULong name_encap_len (be_decl *node);
-
- // helper to get an array of long from a name
-
- int tc_name2long (const char *name,
- ACE_CDR::ULong *&larr,
- ACE_CDR::ULong &arrlen);
-
- // processing for scopes
-
- virtual int post_process (be_decl *);
- // do any processing after every element except the last one of the scope is
- // processed
-
- // data structure for handling recursive and repeated typecodes
-
- struct QNode
- {
- be_type *node;
- ACE_CDR::Long offset;
- };
-
-private:
-
- ACE_CDR::Long computed_tc_size_;
- // the tc size of the node under consideration
-
- ACE_CDR::Long computed_encap_len_;
- // the encap length of the node under consideration
-
- ACE_CDR::Long computed_scope_encap_len_;
- // the encap length of the scope of the node under consideration
-
- // the following are used for recursive and repeated typecodes
-
- ACE_CDR::Long tc_offset_;
- // current computed length of the typecode
-
- ACE_Unbounded_Queue <QNode*> tc_queue_;
- // queue to keep nodes
-
- ACE_Unbounded_Queue <QNode*> compute_queue_;
- // queue to keep nodes
-
- ACE_CDR::Long scope_stack_ [TAO_BE_VISITOR_TYPECODE_DEFN_MAX_STACK_SIZE];
- // stores scope lens during computation
-
- // scope related routines
-
- int index_;
-
- int push (ACE_CDR::Long);
-
- int pop (ACE_CDR::Long &);
-
- // queue related routines
-
- const QNode *queue_insert (ACE_Unbounded_Queue <QNode*> &,
- be_type *node, ACE_CDR::Long offset);
-
- const QNode *queue_lookup (ACE_Unbounded_Queue <QNode*> &, be_type *node);
-
- void queue_reset (ACE_Unbounded_Queue <QNode*> &);
-
-};
-
-#endif /* _BE_VISITOR_TYPECODE_TYPECODE_DEFN_H_ */