Merge pull request #2216 from jwillemsen/jwi-cxxversionchecks
[ACE_TAO.git] / TAO / TAO_IDL / include / ast_template_module_ref.h
blob62ef07289fd9861a76fd1c471a03fa4c78e5a4a5
1 #ifndef AST_TEMPLATE_MODULE_REF_H
2 #define AST_TEMPLATE_MODULE_REF_H
4 #include "ast_field.h"
5 #include "fe_utils.h"
7 class AST_Template_Module;
9 class TAO_IDL_FE_Export AST_Template_Module_Ref
10 : public virtual AST_Field
12 public:
13 AST_Template_Module_Ref (UTL_ScopedName *n,
14 AST_Template_Module *ref,
15 UTL_StrList *param_refs);
17 virtual ~AST_Template_Module_Ref ();
19 AST_Template_Module *ref () const;
21 UTL_StrList *param_refs () const;
23 // AST Dumping.
24 virtual void dump (ACE_OSTREAM_TYPE &o);
26 // Cleanup function.
27 virtual void destroy ();
29 // Visiting.
30 virtual int ast_accept (ast_visitor *visitor);
32 // If IDL module has been created in a scope corresponding
33 // to this node. That's the one we want to match, NOT this
34 // AST_Template_Module_Ref, and it occurs in the scope right
35 // after this node, so we'll match what we're looking for on
36 // the next iteration of the search. So for this immediate
37 // adjustment we return no match.
38 virtual AST_Decl *adjust_found (bool ignore_fwd, bool full_def_only);
40 /// Accessors for the member.
41 bool processed () const;
42 void processed (bool val);
44 static AST_Decl::NodeType const NT;
46 private:
47 UTL_StrList *param_refs_;
49 /// Flag to prevent multiple module creations when we encounter
50 /// 'chained' alias declarations.
51 bool processed_;
54 #endif // AST_TEMPLATE_MODULE_REF_H