Merge pull request #1844 from jrw972/monterey
[ACE_TAO.git] / TAO / TAO_IDL / be_include / be_attribute.h
blob253985339784813847ed729c0b93107a87e19b02
2 //=============================================================================
3 /**
4 * @file be_attribute.h
6 * Extension of class AST_Attribute that provides additional means for C++
7 * mapping.
9 * @author Copyright 1994-1995 by Sun Microsystems
10 * @author Inc. and Aniruddha Gokhale
12 //=============================================================================
14 #ifndef BE_ATTRIBUTE_H
15 #define BE_ATTRIBUTE_H
17 #include "ast_attribute.h"
18 #include "be_field.h"
20 class AST_Type;
21 class be_visitor;
23 class be_attribute : public virtual AST_Attribute,
24 public virtual be_field
26 public:
27 be_attribute (bool ro,
28 AST_Type *ft,
29 UTL_ScopedName *n,
30 bool local,
31 bool abstract);
33 // Non-virtual override of frontend method.
34 be_type *field_type (void) const;
36 // Visiting.
37 virtual int accept (be_visitor *visitor);
39 /// Cleanup.
40 virtual void destroy (void);
42 /// Sets the original attribute from which this one was created,
43 /// applies only to implied IDL.
44 void original_attribute (be_attribute *original_attribute);
46 /// Returns the original attribute from which this one was created,
47 /// applies only to implied IDL
48 be_attribute *original_attribute ();
50 // Narrowing
52 DEF_NARROW_FROM_DECL (be_attribute);
55 #endif