1 #ifndef FE_COMPONENT_HEADER_H
2 #define FE_COMPONENT_HEADER_H
4 #include "fe_interface_header.h"
9 // Internal class for FE to describe component headers.
11 // Unlike value types, a component's supported interfaces are simply
12 // added to the inheritance list in generated code, so we use the
13 // existing base class mechanism for managing the inheritance list
14 // to manage the derived class's supported interface list.
15 class FE_ComponentHeader
: public FE_InterfaceHeader
18 FE_ComponentHeader (UTL_ScopedName
*n
,
19 UTL_ScopedName
*base_component
,
20 UTL_NameList
*supports
,
22 virtual ~FE_ComponentHeader ();
25 AST_Component
*base_component () const;
26 AST_Type
**supports () const;
27 long n_supports () const;
28 AST_Interface
**supports_flat () const;
29 long n_supports_flat () const;
32 void compile_inheritance (UTL_ScopedName
*base_component
);
33 void compile_supports (UTL_NameList
*supports
);
36 AST_Component
*base_component_
;
39 #endif /* FE_COMPONENT_HEADER_H */