summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be_include/be_visitor_union.h
diff options
context:
space:
mode:
authorgokhale <gokhale@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-03-10 23:03:00 +0000
committergokhale <gokhale@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-03-10 23:03:00 +0000
commit32360c6e89f2217cb572673c127baaa1ba8baa0a (patch)
treed4bab30beb9170069ea90668d2736b6897bfb044 /TAO/TAO_IDL/be_include/be_visitor_union.h
parentb1365894b34b0b321a08a524189302068fbd3cce (diff)
downloadATCD-32360c6e89f2217cb572673c127baaa1ba8baa0a.tar.gz
*** empty log message ***
Diffstat (limited to 'TAO/TAO_IDL/be_include/be_visitor_union.h')
-rw-r--r--TAO/TAO_IDL/be_include/be_visitor_union.h200
1 files changed, 200 insertions, 0 deletions
diff --git a/TAO/TAO_IDL/be_include/be_visitor_union.h b/TAO/TAO_IDL/be_include/be_visitor_union.h
new file mode 100644
index 00000000000..5ed4437fa2c
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_visitor_union.h
@@ -0,0 +1,200 @@
+/* -*- c++ -*- */
+//
+// $Id$
+//
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// be_visitor_union.h
+//
+// = DESCRIPTION
+// Concrete visitor for the Union class
+//
+// = AUTHOR
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#if !defined (TAO_BE_VISITOR_UNION_H)
+#define TAO_BE_VISITOR_UNION_H
+
+#include "be_visitor.h"
+#include "be_visitor_scope.h"
+
+class be_visitor_union : public be_visitor_scope
+{
+ //
+ // = TITLE
+ // be_visitor_union
+ //
+ // = DESCRIPTION
+ // This is the base visitor for union
+ //
+ //
+public:
+ be_visitor_union (be_visitor_context *ctx);
+ // constructor
+
+ ~be_visitor_union (void);
+ // destructor
+
+ virtual int visit_union (be_union *node);
+ // visit union. We provide code for this method in the derived class
+
+ // =visit operations on syntactically valid elements in our scope
+
+ virtual int visit_union_branch (be_union_branch *node);
+ // visit union_branch
+};
+
+class be_visitor_union_ch : public be_visitor_union
+{
+ //
+ // = TITLE
+ // be_visitor_union_ch
+ //
+ // = DESCRIPTION
+ // This is a concrete visitor to generate the client header for union
+ //
+ //
+public:
+ be_visitor_union_ch (be_visitor_context *ctx);
+ // constructor
+
+ ~be_visitor_union_ch (void);
+ // destructor
+
+ virtual int visit_union (be_union *node);
+ // visit union. We provide code for this method in the derived class
+
+};
+
+class be_visitor_union_ci : public be_visitor_union
+{
+ //
+ // = TITLE
+ // be_visitor_union_ci
+ //
+ // = DESCRIPTION
+ // This is a concrete visitor to generate the client inline for union
+ //
+ //
+public:
+ be_visitor_union_ci (be_visitor_context *ctx);
+ // constructor
+
+ ~be_visitor_union_ci (void);
+ // destructor
+
+ virtual int visit_union (be_union *node);
+ // visit union. We provide code for this method in the derived class
+
+};
+
+class be_visitor_union_cs : public be_visitor_union
+{
+ //
+ // = TITLE
+ // be_visitor_union_cs
+ //
+ // = DESCRIPTION
+ // This is a concrete visitor to generate the client stubs for union
+ //
+ //
+public:
+ be_visitor_union_cs (be_visitor_context *ctx);
+ // constructor
+
+ ~be_visitor_union_cs (void);
+ // destructor
+
+ virtual int visit_union (be_union *node);
+ // visit union. We provide code for this method in the derived class
+
+};
+
+class be_visitor_union_discriminant_ch : public be_visitor_decl
+{
+ //
+ // = TITLE
+ // be_visitor_union_discriminant_ch
+ //
+ // = DESCRIPTION
+ // This is a concrete visitor to generate the client header for union
+ // discriminant
+ //
+ //
+public:
+ be_visitor_union_discriminant_ch (be_visitor_context *ctx);
+ // constructor
+
+ ~be_visitor_union_discriminant_ch (void);
+ // destructor
+
+ virtual int visit_enum (be_enum *node);
+ // visit an enum
+
+ virtual int visit_predefined_type (be_predefined_type *node);
+ // visit a predefined type
+
+ virtual int visit_typedef (be_typedef *node);
+ // visit a typedef node
+};
+
+class be_visitor_union_discriminant_ci : public be_visitor_decl
+{
+ //
+ // = TITLE
+ // be_visitor_union_discriminant_ci
+ //
+ // = DESCRIPTION
+ // This is a concrete visitor to generate the client inline for union
+ // discriminant
+ //
+ //
+public:
+ be_visitor_union_discriminant_ci (be_visitor_context *ctx);
+ // constructor
+
+ ~be_visitor_union_discriminant_ci (void);
+ // destructor
+
+ virtual int visit_enum (be_enum *node);
+ // visit an enum
+
+ virtual int visit_predefined_type (be_predefined_type *node);
+ // visit a predefined type
+
+ virtual int visit_typedef (be_typedef *node);
+ // visit a typedef node
+};
+
+class be_visitor_union_discriminant_cs : public be_visitor_decl
+{
+ //
+ // = TITLE
+ // be_visitor_union_discriminant_cs
+ //
+ // = DESCRIPTION
+ // This is a concrete visitor to generate the client stubs for union
+ // discriminant
+ //
+ //
+public:
+ be_visitor_union_discriminant_cs (be_visitor_context *ctx);
+ // constructor
+
+ ~be_visitor_union_discriminant_cs (void);
+ // destructor
+
+ virtual int visit_enum (be_enum *node);
+ // visit an enum. Required to generate the typecode for an enum definition
+ // appearing side the union
+
+};
+
+#endif // TAO_BE_VISITOR_UNION_H