Merge pull request #1844 from jrw972/monterey
[ACE_TAO.git] / TAO / TAO_IDL / include / fe_obv_header.h
blob0a25d4310c1761b0bce70e139d3b2e2359bd4fae
1 #ifndef FE_OBV_HEADER_H
2 #define FE_OBV_HEADER_H
4 #include "fe_interface_header.h"
6 class AST_ValueType;
8 // FE_OBVHeader
9 // Internal class for FE to describe valuetype headers.
12 class TAO_IDL_FE_Export FE_OBVHeader : public FE_InterfaceHeader
14 public:
16 FE_OBVHeader (UTL_ScopedName *n,
17 UTL_NameList *inherits,
18 UTL_NameList *supports,
19 bool truncatable,
20 bool is_eventtype = false);
21 virtual ~FE_OBVHeader (void);
23 // Data Accessors.
24 AST_Type **supports (void) const;
25 long n_supports (void) const;
26 AST_Type *inherits_concrete (void) const;
27 AST_Type *supports_concrete (void) const;
28 bool truncatable (void) const;
30 virtual void destroy (void);
31 // Destroy anything allocated for this class.
33 protected:
34 // Supported interfaces.
35 AST_Type **supports_;
36 long n_supports_;
38 AST_Type *inherits_concrete_;
39 AST_Type *supports_concrete_;
41 // Currently ignored.
42 bool truncatable_;
44 protected:
45 void compile_inheritance (UTL_NameList *vtypes,
46 bool is_eventtype);
47 void compile_supports (UTL_NameList *supports);
48 bool check_concrete_supported_inheritance (AST_Interface *d);
51 #endif /* FE_OBV_HEADER_H */