diff options
Diffstat (limited to 'TAO/TAO_IDL/be_include/be_native.h')
-rw-r--r-- | TAO/TAO_IDL/be_include/be_native.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/TAO/TAO_IDL/be_include/be_native.h b/TAO/TAO_IDL/be_include/be_native.h new file mode 100644 index 00000000000..453915d2aa5 --- /dev/null +++ b/TAO/TAO_IDL/be_include/be_native.h @@ -0,0 +1,66 @@ +// $Id$ + +// Id +// ============================================================================ +// +// = LIBRARY +// TAO IDL +// +// = FILENAME +// be_native.h +// +// = DESCRIPTION +// The native IDL type +// +// = AUTHOR +// Aniruddha Gokhale +// +// ============================================================================ + + +#ifndef BE_NATIVE_H +#define BE_NATIVE_H + +#include "be_exception.h" +#include "ast_native.h" + +class be_visitor; + +// Representation of "native" IDL type. It may be used as a +// return type, parameter type, or in an operation's +// exception list. This last usage creates special problems +// with both syntax checking and code generation. Letting +// this class inherit from be_exception (similar to the +// inheritance of AST_Native) is the most seamless +// way to handle it, and does not affect the other use cases. +class be_native : public virtual AST_Native, + public virtual be_exception +{ +public: + be_native (void); + // Default constructor. + + be_native (UTL_ScopedName *n); + // Constructor that initializes its scoped name. + + virtual ~be_native (void) {} + // Destructor + + virtual int gen_typecode (void); + // Generate the typecode description. + + virtual long tc_size (void); + // Return typecode size. + + virtual void destroy (void); + // Cleanup. + + // Visiting. + virtual int accept (be_visitor *visitor); + + // Narrowing. + DEF_NARROW_METHODS2(be_native, AST_Native, be_exception); + DEF_NARROW_FROM_DECL(be_native); +}; + +#endif /* BE_NATIVE_H */ |