diff options
Diffstat (limited to 'TAO/TAO_IDL/include/ast_structure_fwd.h')
-rw-r--r-- | TAO/TAO_IDL/include/ast_structure_fwd.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/TAO/TAO_IDL/include/ast_structure_fwd.h b/TAO/TAO_IDL/include/ast_structure_fwd.h new file mode 100644 index 00000000000..5f82c6f485d --- /dev/null +++ b/TAO/TAO_IDL/include/ast_structure_fwd.h @@ -0,0 +1,50 @@ +// This may look like C, but it's really -*- C++ -*- +// $Id$ + +#ifndef _AST_STRUCTURE_FWD_AST_STRUCTURE_FWD_HH +#define _AST_STRUCTURE_FWD_AST_STRUCTURE_FWD_HH + +#include "ast_type.h" + +class AST_Structure; + +// Representation of a forward structure declaration. + +class TAO_IDL_FE_Export AST_StructureFwd : public virtual AST_Type +{ +public: + AST_StructureFwd (void); + + AST_StructureFwd (AST_Structure *full_defn, + UTL_ScopedName *n); + + virtual ~AST_StructureFwd (void); + + AST_Structure *full_definition (void); + void set_full_definition (AST_Structure *nfd); + + virtual bool is_defined (void); + void set_as_defined (void); + + // Cleanup function. + virtual void destroy (void); + + // Narrowing. + DEF_NARROW_METHODS1(AST_StructureFwd, AST_Type); + DEF_NARROW_FROM_DECL(AST_StructureFwd); + + // AST Dumping. + virtual void dump (ACE_OSTREAM_TYPE &); + + // Visiting. + virtual int ast_accept (ast_visitor *visitor); + +private: + AST_Structure *pd_full_definition; + // The structure this is a forward declaration of. + + bool is_defined_; + // Checking the member above isn't good enough. +}; + +#endif // _AST_STRUCTURE_FWD_AST_STRUCTURE_FWD_HH |