summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be_include/be_structure.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/be_include/be_structure.h')
-rw-r--r--TAO/TAO_IDL/be_include/be_structure.h64
1 files changed, 64 insertions, 0 deletions
diff --git a/TAO/TAO_IDL/be_include/be_structure.h b/TAO/TAO_IDL/be_include/be_structure.h
new file mode 100644
index 00000000000..61e5646d95a
--- /dev/null
+++ b/TAO/TAO_IDL/be_include/be_structure.h
@@ -0,0 +1,64 @@
+/* -*- c++ -*- */
+// $Id$
+
+// ============================================================================
+//
+// = LIBRARY
+// TAO IDL
+//
+// = FILENAME
+// be_structure.h
+//
+// = DESCRIPTION
+// Extension of class AST_Structure that provides additional means for C++
+// mapping.
+//
+// = AUTHOR
+// Copyright 1994-1995 by Sun Microsystems, Inc.
+// and
+// Aniruddha Gokhale
+//
+// ============================================================================
+
+#ifndef BE_STRUCTURE_H
+#define BE_STRUCTURE_H
+
+#include "be_scope.h"
+#include "be_type.h"
+#include "ast_structure.h"
+
+class be_visitor;
+
+class be_structure : public virtual AST_Structure,
+ public virtual be_scope,
+ public virtual be_type
+{
+public:
+ be_structure (void);
+ // Default constructor.
+
+ be_structure (UTL_ScopedName *n,
+ bool local,
+ bool abstract);
+ // Constructor.
+
+ virtual void redefine (AST_Structure *from);
+ // Copy BE-specific values when redefining struct or union
+ // from a forward declaration.
+
+ virtual void destroy (void);
+ // Cleanup method.
+
+ virtual int accept (be_visitor *visitor);
+ // Visiting.
+
+ AST_Field *be_add_field (AST_Field *f);
+ // To access the protected base class method fe_add_field.
+
+ // Narrowing.
+ DEF_NARROW_METHODS3 (be_structure, AST_Structure, be_scope, be_type);
+ DEF_NARROW_FROM_DECL (be_structure);
+ DEF_NARROW_FROM_SCOPE (be_structure);
+};
+
+#endif