Merge pull request #2303 from jwillemsen/jwi-803
[ACE_TAO.git] / TAO / TAO_IDL / be_include / be_native.h
blob1a39721737a0ef94f80a8a0f47325e98c8474789
2 //=============================================================================
3 /**
4 * @file be_native.h
6 * The native IDL type
8 * @author Aniruddha Gokhale
9 */
10 //=============================================================================
12 #ifndef BE_NATIVE_H
13 #define BE_NATIVE_H
15 #include "be_exception.h"
16 #include "ast_native.h"
18 class be_visitor;
20 // Representation of "native" IDL type. It may be used as a
21 // return type, parameter type, or in an operation's
22 // exception list. This last usage creates special problems
23 // with both syntax checking and code generation. Letting
24 // this class inherit from be_exception (similar to the
25 // inheritance of AST_Native) is the most seamless
26 // way to handle it, and does not affect the other use cases.
27 class be_native : public virtual AST_Native,
28 public virtual be_exception
30 public:
31 be_native (UTL_ScopedName *n);
33 virtual ~be_native () {}
35 /// Generate the typecode description.
36 virtual int gen_typecode ();
38 /// Return typecode size.
39 virtual long tc_size ();
41 /// Cleanup.
42 virtual void destroy ();
44 // Visiting.
45 virtual int accept (be_visitor *visitor);
48 #endif /* BE_NATIVE_H */