1 #ifndef _AST_HOME_AST_HOME_HH
2 #define _AST_HOME_AST_HOME_HH
4 #include "ast_interface.h"
10 class TAO_IDL_FE_Export AST_Home
: public virtual AST_Interface
13 AST_Home (UTL_ScopedName
*n
,
15 AST_Component
*managed_component
,
16 AST_Type
*primary_key
,
19 AST_Interface
**supports_flat
,
20 long n_supports_flat
);
24 // Extend lookup to the base home.
25 virtual AST_Decl
*look_in_inherited (UTL_ScopedName
*e
,
28 // Extend lookup to the supported interfaces.
29 virtual AST_Decl
*look_in_supported (UTL_ScopedName
*e
,
32 // Overridden for homes from the UTL_Scope method.
33 virtual AST_Decl
*special_lookup (UTL_ScopedName
*,
35 AST_Decl
*&final_parent_decl
);
39 AST_Home
*base_home () const;
41 AST_Type
**supports () const;
43 long n_supports () const;
45 AST_Component
*managed_component () const;
47 AST_Type
*primary_key () const;
49 void transfer_scope_elements (AST_Interface
*dst
);
52 virtual void destroy ();
55 virtual void dump (ACE_OSTREAM_TYPE
&o
);
58 virtual int ast_accept (ast_visitor
*visitor
);
60 static AST_Decl::NodeType
const NT
;
63 // Scope Management Protocol.
65 friend int tao_yyparse ();
66 friend class ast_visitor_tmpl_module_inst
;
68 virtual AST_Factory
*fe_add_factory (AST_Factory
*f
);
69 virtual AST_Finder
*fe_add_finder (AST_Finder
*f
);
72 AST_Home
*pd_base_home
;
73 AST_Component
*pd_managed_component
;
74 AST_Type
*pd_primary_key
;
75 bool owns_primary_key_
;
78 #endif // _AST_HOME_AST_HOME_HH