// **********************************************************************
//
// Generated by the ORBacus IDL-to-C++ Translator
//
// Copyright (c) 2003
// IONA Technologies, Inc.
// Waltham, MA, USA
//
// All Rights Reserved
//
// **********************************************************************

// Version: 4.1.3

#ifndef __OB_DynamicAny_h__
#define __OB_DynamicAny_h__

#ifndef OB_IMPORT
#   ifdef OB_DLL
#      define OB_IMPORT __declspec(dllimport)
#   else
#      define OB_IMPORT /**/
#   endif
#endif


#include <OB/TCKind.h>
#include <OB/TypeCode.h>
#include <OB/Native.h>
#include <OB/Types.h>
#include <OB/DynamicAny_fwd.h>

#ifndef OB_INTEGER_VERSION
#   error No ORBacus version defined! Is <OB/CORBA.h> included?
#endif

#ifndef OB_NO_VERSION_CHECK
#   if (OB_INTEGER_VERSION != 4010300L)
#       error ORBacus version mismatch!
#   endif
#endif

namespace OBStubImpl_DynamicAny
{

} // End of namespace OBStubImpl_DynamicAny

namespace OBStubImpl_DynamicAny
{

} // End of namespace OBStubImpl_DynamicAny

//
// IDL:omg.org/DynamicAny:1.0
//
namespace DynamicAny
{

//
// IDL:omg.org/DynamicAny/DynAny:1.0
//
class DynAny : virtual public ::CORBA::Object
{
    DynAny(const DynAny&);
    void operator=(const DynAny&);

protected:

    static OB_IMPORT const char* ids_[];

public:

    DynAny() { }
    virtual ~DynAny() { }

    typedef DynAny_ptr _ptr_type;
    typedef DynAny_var _var_type;

    static inline DynAny_ptr
    _duplicate(DynAny_ptr p)
    {
        if(p)
            p -> _add_ref();
        return p;
    }

    static inline DynAny_ptr
    _nil()
    {
        return 0;
    }

    static DynAny_ptr _narrow(::CORBA::Object_ptr);

    static DynAny_ptr _narrow(::CORBA::AbstractBase_ptr);


    //
    // IDL:omg.org/DynamicAny/DynAny/InvalidValue:1.0
    //
    struct InvalidValue : public ::CORBA::UserException
    {
        InvalidValue() { }
        InvalidValue(const InvalidValue&);
        InvalidValue& operator=(const InvalidValue&);

        static InvalidValue* _downcast(::CORBA::Exception*);
        static const InvalidValue* _downcast(const ::CORBA::Exception*);
        virtual const char* _name() const;
        virtual void _raise() const { throw *this; }
        virtual const char* _rep_id() const;
        virtual char* _to_string() const;

        virtual ::CORBA::Exception* _OB_clone() const;
        virtual void _OB_insertInAny(::CORBA::Any&);

        static void _OB_unmarshal(InvalidValue&, OB::InputStreamImpl*);
    };

    //
    // IDL:omg.org/DynamicAny/DynAny/TypeMismatch:1.0
    //
    struct TypeMismatch : public ::CORBA::UserException
    {
        TypeMismatch() { }
        TypeMismatch(const TypeMismatch&);
        TypeMismatch& operator=(const TypeMismatch&);

        static TypeMismatch* _downcast(::CORBA::Exception*);
        static const TypeMismatch* _downcast(const ::CORBA::Exception*);
        virtual const char* _name() const;
        virtual void _raise() const { throw *this; }
        virtual const char* _rep_id() const;
        virtual char* _to_string() const;

        virtual ::CORBA::Exception* _OB_clone() const;
        virtual void _OB_insertInAny(::CORBA::Any&);

        static void _OB_unmarshal(TypeMismatch&, OB::InputStreamImpl*);
    };

    //
    // IDL:omg.org/DynamicAny/DynAny/type:1.0
    //
    virtual ::CORBA::TypeCode_ptr type() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/assign:1.0
    //
    virtual void assign(DynAny_ptr dyn_any) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/from_any:1.0
    //
    virtual void from_any(const ::CORBA::Any& value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/to_any:1.0
    //
    virtual ::CORBA::Any* to_any() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/equal:1.0
    //
    virtual ::CORBA::Boolean equal(DynAny_ptr dyn_any) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/destroy:1.0
    //
    virtual void destroy() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/copy:1.0
    //
    virtual DynAny_ptr copy() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_boolean:1.0
    //
    virtual void insert_boolean(::CORBA::Boolean value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_octet:1.0
    //
    virtual void insert_octet(::CORBA::Octet value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_char:1.0
    //
    virtual void insert_char(::CORBA::Char value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_short:1.0
    //
    virtual void insert_short(::CORBA::Short value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_ushort:1.0
    //
    virtual void insert_ushort(::CORBA::UShort value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_long:1.0
    //
    virtual void insert_long(::CORBA::Long value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_ulong:1.0
    //
    virtual void insert_ulong(::CORBA::ULong value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_float:1.0
    //
    virtual void insert_float(::CORBA::Float value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_double:1.0
    //
    virtual void insert_double(::CORBA::Double value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_string:1.0
    //
    virtual void insert_string(const char* value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_reference:1.0
    //
    virtual void insert_reference(::CORBA::Object_ptr value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_typecode:1.0
    //
    virtual void insert_typecode(::CORBA::TypeCode_ptr value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_longlong:1.0
    //
    virtual void insert_longlong(::CORBA::LongLong value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_ulonglong:1.0
    //
    virtual void insert_ulonglong(::CORBA::ULongLong value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_longdouble:1.0
    //
    virtual void insert_longdouble(::CORBA::LongDouble value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_wchar:1.0
    //
    virtual void insert_wchar(::CORBA::WChar value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_wstring:1.0
    //
    virtual void insert_wstring(const ::CORBA::WChar* value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_any:1.0
    //
    virtual void insert_any(const ::CORBA::Any& value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_dyn_any:1.0
    //
    virtual void insert_dyn_any(DynAny_ptr value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_val:1.0
    //
    virtual void insert_val(::CORBA::ValueBase* value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_abstract:1.0
    //
    virtual void insert_abstract(::CORBA::AbstractBase_ptr value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_boolean_seq:1.0
    //
    virtual void insert_boolean_seq(const ::CORBA::BooleanSeq& value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_octet_seq:1.0
    //
    virtual void insert_octet_seq(const ::CORBA::OctetSeq& value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_char_seq:1.0
    //
    virtual void insert_char_seq(const ::CORBA::CharSeq& value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_wchar_seq:1.0
    //
    virtual void insert_wchar_seq(const ::CORBA::WCharSeq& value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_short_seq:1.0
    //
    virtual void insert_short_seq(const ::CORBA::ShortSeq& value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_ushort_seq:1.0
    //
    virtual void insert_ushort_seq(const ::CORBA::UShortSeq& value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_long_seq:1.0
    //
    virtual void insert_long_seq(const ::CORBA::LongSeq& value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_ulong_seq:1.0
    //
    virtual void insert_ulong_seq(const ::CORBA::ULongSeq& value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_longlong_seq:1.0
    //
    virtual void insert_longlong_seq(const ::CORBA::LongLongSeq& value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_ulonglong_seq:1.0
    //
    virtual void insert_ulonglong_seq(const ::CORBA::ULongLongSeq& value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_float_seq:1.0
    //
    virtual void insert_float_seq(const ::CORBA::FloatSeq& value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_double_seq:1.0
    //
    virtual void insert_double_seq(const ::CORBA::DoubleSeq& value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/insert_longdouble_seq:1.0
    //
    virtual void insert_longdouble_seq(const ::CORBA::LongDoubleSeq& value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_boolean:1.0
    //
    virtual ::CORBA::Boolean get_boolean() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_octet:1.0
    //
    virtual ::CORBA::Octet get_octet() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_char:1.0
    //
    virtual ::CORBA::Char get_char() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_short:1.0
    //
    virtual ::CORBA::Short get_short() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_ushort:1.0
    //
    virtual ::CORBA::UShort get_ushort() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_long:1.0
    //
    virtual ::CORBA::Long get_long() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_ulong:1.0
    //
    virtual ::CORBA::ULong get_ulong() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_float:1.0
    //
    virtual ::CORBA::Float get_float() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_double:1.0
    //
    virtual ::CORBA::Double get_double() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_string:1.0
    //
    virtual char* get_string() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_reference:1.0
    //
    virtual ::CORBA::Object_ptr get_reference() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_typecode:1.0
    //
    virtual ::CORBA::TypeCode_ptr get_typecode() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_longlong:1.0
    //
    virtual ::CORBA::LongLong get_longlong() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_ulonglong:1.0
    //
    virtual ::CORBA::ULongLong get_ulonglong() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_longdouble:1.0
    //
    virtual ::CORBA::LongDouble get_longdouble() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_wchar:1.0
    //
    virtual ::CORBA::WChar get_wchar() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_wstring:1.0
    //
    virtual ::CORBA::WChar* get_wstring() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_any:1.0
    //
    virtual ::CORBA::Any* get_any() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_dyn_any:1.0
    //
    virtual DynAny_ptr get_dyn_any() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_val:1.0
    //
    virtual ::CORBA::ValueBase* get_val() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_abstract:1.0
    //
    virtual ::CORBA::AbstractBase_ptr get_abstract() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_boolean_seq:1.0
    //
    virtual ::CORBA::BooleanSeq* get_boolean_seq() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_octet_seq:1.0
    //
    virtual ::CORBA::OctetSeq* get_octet_seq() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_char_seq:1.0
    //
    virtual ::CORBA::CharSeq* get_char_seq() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_wchar_seq:1.0
    //
    virtual ::CORBA::WCharSeq* get_wchar_seq() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_short_seq:1.0
    //
    virtual ::CORBA::ShortSeq* get_short_seq() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_ushort_seq:1.0
    //
    virtual ::CORBA::UShortSeq* get_ushort_seq() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_long_seq:1.0
    //
    virtual ::CORBA::LongSeq* get_long_seq() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_ulong_seq:1.0
    //
    virtual ::CORBA::ULongSeq* get_ulong_seq() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_longlong_seq:1.0
    //
    virtual ::CORBA::LongLongSeq* get_longlong_seq() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_ulonglong_seq:1.0
    //
    virtual ::CORBA::ULongLongSeq* get_ulonglong_seq() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_float_seq:1.0
    //
    virtual ::CORBA::FloatSeq* get_float_seq() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_double_seq:1.0
    //
    virtual ::CORBA::DoubleSeq* get_double_seq() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/get_longdouble_seq:1.0
    //
    virtual ::CORBA::LongDoubleSeq* get_longdouble_seq() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/seek:1.0
    //
    virtual ::CORBA::Boolean seek(::CORBA::Long index) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/rewind:1.0
    //
    virtual void rewind() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/next:1.0
    //
    virtual ::CORBA::Boolean next() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/component_count:1.0
    //
    virtual ::CORBA::ULong component_count() = 0;

    //
    // IDL:omg.org/DynamicAny/DynAny/current_component:1.0
    //
    virtual DynAny_ptr current_component() = 0;
};

//
// IDL:omg.org/DynamicAny/DynFixed:1.0
//
class DynFixed : virtual public ::DynamicAny::DynAny
{
    DynFixed(const DynFixed&);
    void operator=(const DynFixed&);

protected:

    static OB_IMPORT const char* ids_[];

public:

    DynFixed() { }
    virtual ~DynFixed() { }

    typedef DynFixed_ptr _ptr_type;
    typedef DynFixed_var _var_type;

    static inline DynFixed_ptr
    _duplicate(DynFixed_ptr p)
    {
        if(p)
            p -> _add_ref();
        return p;
    }

    static inline DynFixed_ptr
    _nil()
    {
        return 0;
    }

    static DynFixed_ptr _narrow(::CORBA::Object_ptr);

    static DynFixed_ptr _narrow(::CORBA::AbstractBase_ptr);


    //
    // IDL:omg.org/DynamicAny/DynFixed/get_value:1.0
    //
    virtual char* get_value() = 0;

    //
    // IDL:omg.org/DynamicAny/DynFixed/set_value:1.0
    //
    virtual ::CORBA::Boolean set_value(const char* val) = 0;
};

//
// IDL:omg.org/DynamicAny/DynEnum:1.0
//
class DynEnum : virtual public ::DynamicAny::DynAny
{
    DynEnum(const DynEnum&);
    void operator=(const DynEnum&);

protected:

    static OB_IMPORT const char* ids_[];

public:

    DynEnum() { }
    virtual ~DynEnum() { }

    typedef DynEnum_ptr _ptr_type;
    typedef DynEnum_var _var_type;

    static inline DynEnum_ptr
    _duplicate(DynEnum_ptr p)
    {
        if(p)
            p -> _add_ref();
        return p;
    }

    static inline DynEnum_ptr
    _nil()
    {
        return 0;
    }

    static DynEnum_ptr _narrow(::CORBA::Object_ptr);

    static DynEnum_ptr _narrow(::CORBA::AbstractBase_ptr);


    //
    // IDL:omg.org/DynamicAny/DynEnum/get_as_string:1.0
    //
    virtual char* get_as_string() = 0;

    //
    // IDL:omg.org/DynamicAny/DynEnum/set_as_string:1.0
    //
    virtual void set_as_string(const char* value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynEnum/get_as_ulong:1.0
    //
    virtual ::CORBA::ULong get_as_ulong() = 0;

    //
    // IDL:omg.org/DynamicAny/DynEnum/set_as_ulong:1.0
    //
    virtual void set_as_ulong(::CORBA::ULong value) = 0;
};

//
// IDL:omg.org/DynamicAny/FieldName:1.0
//
typedef char* FieldName;
typedef ::CORBA::String_var FieldName_var;
typedef ::CORBA::String_out FieldName_out;

//
// IDL:omg.org/DynamicAny/NameValuePair:1.0
//
struct NameValuePair;
typedef OB::VarVar< NameValuePair > NameValuePair_var;
typedef OB::VarOut< NameValuePair > NameValuePair_out;

struct NameValuePair
{
    NameValuePair() { }
    NameValuePair(const NameValuePair&);
    NameValuePair& operator=(const NameValuePair&);

    typedef NameValuePair_var _var_type;

    OB::StrForStruct id;
    ::CORBA::Any value;

    void _OB_marshal(OB::OutputStreamImpl*) const;
    static void _OB_unmarshal(NameValuePair&, OB::InputStreamImpl*);
};

//
// IDL:omg.org/DynamicAny/NameValuePairSeq:1.0
//
class OBUnique_NameValuePairSeq { };

typedef OB::VarSeq< NameValuePair, OBUnique_NameValuePairSeq > NameValuePairSeq;
typedef OB::SeqVar< OB::VarSeq< NameValuePair, OBUnique_NameValuePairSeq > > NameValuePairSeq_var;
typedef OB::SeqOut< OB::VarSeq< NameValuePair, OBUnique_NameValuePairSeq > > NameValuePairSeq_out;

//
// IDL:omg.org/DynamicAny/NameDynAnyPair:1.0
//
struct NameDynAnyPair;
typedef OB::VarVar< NameDynAnyPair > NameDynAnyPair_var;
typedef OB::VarOut< NameDynAnyPair > NameDynAnyPair_out;

struct NameDynAnyPair
{
    NameDynAnyPair() { }
    NameDynAnyPair(const NameDynAnyPair&);
    NameDynAnyPair& operator=(const NameDynAnyPair&);

    typedef NameDynAnyPair_var _var_type;

    OB::StrForStruct id;
    DynAny_var value;

    void _OB_marshal(OB::OutputStreamImpl*) const;
    static void _OB_unmarshal(NameDynAnyPair&, OB::InputStreamImpl*);
};

//
// IDL:omg.org/DynamicAny/NameDynAnyPairSeq:1.0
//
class OBUnique_NameDynAnyPairSeq { };

typedef OB::VarSeq< NameDynAnyPair, OBUnique_NameDynAnyPairSeq > NameDynAnyPairSeq;
typedef OB::SeqVar< OB::VarSeq< NameDynAnyPair, OBUnique_NameDynAnyPairSeq > > NameDynAnyPairSeq_var;
typedef OB::SeqOut< OB::VarSeq< NameDynAnyPair, OBUnique_NameDynAnyPairSeq > > NameDynAnyPairSeq_out;

//
// IDL:omg.org/DynamicAny/DynStruct:1.0
//
class DynStruct : virtual public ::DynamicAny::DynAny
{
    DynStruct(const DynStruct&);
    void operator=(const DynStruct&);

protected:

    static OB_IMPORT const char* ids_[];

public:

    DynStruct() { }
    virtual ~DynStruct() { }

    typedef DynStruct_ptr _ptr_type;
    typedef DynStruct_var _var_type;

    static inline DynStruct_ptr
    _duplicate(DynStruct_ptr p)
    {
        if(p)
            p -> _add_ref();
        return p;
    }

    static inline DynStruct_ptr
    _nil()
    {
        return 0;
    }

    static DynStruct_ptr _narrow(::CORBA::Object_ptr);

    static DynStruct_ptr _narrow(::CORBA::AbstractBase_ptr);


    //
    // IDL:omg.org/DynamicAny/DynStruct/current_member_name:1.0
    //
    virtual FieldName current_member_name() = 0;

    //
    // IDL:omg.org/DynamicAny/DynStruct/current_member_kind:1.0
    //
    virtual ::CORBA::TCKind current_member_kind() = 0;

    //
    // IDL:omg.org/DynamicAny/DynStruct/get_members:1.0
    //
    virtual NameValuePairSeq* get_members() = 0;

    //
    // IDL:omg.org/DynamicAny/DynStruct/set_members:1.0
    //
    virtual void set_members(const NameValuePairSeq& value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynStruct/get_members_as_dyn_any:1.0
    //
    virtual NameDynAnyPairSeq* get_members_as_dyn_any() = 0;

    //
    // IDL:omg.org/DynamicAny/DynStruct/set_members_as_dyn_any:1.0
    //
    virtual void set_members_as_dyn_any(const NameDynAnyPairSeq& value) = 0;
};

//
// IDL:omg.org/DynamicAny/DynUnion:1.0
//
class DynUnion : virtual public ::DynamicAny::DynAny
{
    DynUnion(const DynUnion&);
    void operator=(const DynUnion&);

protected:

    static OB_IMPORT const char* ids_[];

public:

    DynUnion() { }
    virtual ~DynUnion() { }

    typedef DynUnion_ptr _ptr_type;
    typedef DynUnion_var _var_type;

    static inline DynUnion_ptr
    _duplicate(DynUnion_ptr p)
    {
        if(p)
            p -> _add_ref();
        return p;
    }

    static inline DynUnion_ptr
    _nil()
    {
        return 0;
    }

    static DynUnion_ptr _narrow(::CORBA::Object_ptr);

    static DynUnion_ptr _narrow(::CORBA::AbstractBase_ptr);


    //
    // IDL:omg.org/DynamicAny/DynUnion/get_discriminator:1.0
    //
    virtual DynAny_ptr get_discriminator() = 0;

    //
    // IDL:omg.org/DynamicAny/DynUnion/set_discriminator:1.0
    //
    virtual void set_discriminator(DynAny_ptr d) = 0;

    //
    // IDL:omg.org/DynamicAny/DynUnion/set_to_default_member:1.0
    //
    virtual void set_to_default_member() = 0;

    //
    // IDL:omg.org/DynamicAny/DynUnion/set_to_no_active_member:1.0
    //
    virtual void set_to_no_active_member() = 0;

    //
    // IDL:omg.org/DynamicAny/DynUnion/has_no_active_member:1.0
    //
    virtual ::CORBA::Boolean has_no_active_member() = 0;

    //
    // IDL:omg.org/DynamicAny/DynUnion/discriminator_kind:1.0
    //
    virtual ::CORBA::TCKind discriminator_kind() = 0;

    //
    // IDL:omg.org/DynamicAny/DynUnion/member:1.0
    //
    virtual DynAny_ptr member() = 0;

    //
    // IDL:omg.org/DynamicAny/DynUnion/member_name:1.0
    //
    virtual FieldName member_name() = 0;

    //
    // IDL:omg.org/DynamicAny/DynUnion/member_kind:1.0
    //
    virtual ::CORBA::TCKind member_kind() = 0;

    //
    // IDL:omg.org/DynamicAny/DynUnion/is_set_to_default_member:1.0
    //
    virtual ::CORBA::Boolean is_set_to_default_member() = 0;
};

//
// IDL:omg.org/DynamicAny/AnySeq:1.0
//
class OBUnique_AnySeq { };

typedef OB::VarSeq< ::CORBA::Any, OBUnique_AnySeq > AnySeq;
typedef OB::SeqVar< OB::VarSeq< ::CORBA::Any, OBUnique_AnySeq > > AnySeq_var;
typedef OB::SeqOut< OB::VarSeq< ::CORBA::Any, OBUnique_AnySeq > > AnySeq_out;

//
// IDL:omg.org/DynamicAny/DynAnySeq:1.0
//
class OBUnique_DynAnySeq { };

typedef OB::ObjSeq< DynAny, OBUnique_DynAnySeq > DynAnySeq;
typedef OB::SeqVar< OB::ObjSeq< DynAny, OBUnique_DynAnySeq > > DynAnySeq_var;
typedef OB::SeqOut< OB::ObjSeq< DynAny, OBUnique_DynAnySeq > > DynAnySeq_out;

//
// IDL:omg.org/DynamicAny/DynSequence:1.0
//
class DynSequence : virtual public ::DynamicAny::DynAny
{
    DynSequence(const DynSequence&);
    void operator=(const DynSequence&);

protected:

    static OB_IMPORT const char* ids_[];

public:

    DynSequence() { }
    virtual ~DynSequence() { }

    typedef DynSequence_ptr _ptr_type;
    typedef DynSequence_var _var_type;

    static inline DynSequence_ptr
    _duplicate(DynSequence_ptr p)
    {
        if(p)
            p -> _add_ref();
        return p;
    }

    static inline DynSequence_ptr
    _nil()
    {
        return 0;
    }

    static DynSequence_ptr _narrow(::CORBA::Object_ptr);

    static DynSequence_ptr _narrow(::CORBA::AbstractBase_ptr);


    //
    // IDL:omg.org/DynamicAny/DynSequence/get_length:1.0
    //
    virtual ::CORBA::ULong get_length() = 0;

    //
    // IDL:omg.org/DynamicAny/DynSequence/set_length:1.0
    //
    virtual void set_length(::CORBA::ULong len) = 0;

    //
    // IDL:omg.org/DynamicAny/DynSequence/get_elements:1.0
    //
    virtual AnySeq* get_elements() = 0;

    //
    // IDL:omg.org/DynamicAny/DynSequence/set_elements:1.0
    //
    virtual void set_elements(const AnySeq& value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynSequence/get_elements_as_dyn_any:1.0
    //
    virtual DynAnySeq* get_elements_as_dyn_any() = 0;

    //
    // IDL:omg.org/DynamicAny/DynSequence/set_elements_as_dyn_any:1.0
    //
    virtual void set_elements_as_dyn_any(const DynAnySeq& value) = 0;
};

//
// IDL:omg.org/DynamicAny/DynArray:1.0
//
class DynArray : virtual public ::DynamicAny::DynAny
{
    DynArray(const DynArray&);
    void operator=(const DynArray&);

protected:

    static OB_IMPORT const char* ids_[];

public:

    DynArray() { }
    virtual ~DynArray() { }

    typedef DynArray_ptr _ptr_type;
    typedef DynArray_var _var_type;

    static inline DynArray_ptr
    _duplicate(DynArray_ptr p)
    {
        if(p)
            p -> _add_ref();
        return p;
    }

    static inline DynArray_ptr
    _nil()
    {
        return 0;
    }

    static DynArray_ptr _narrow(::CORBA::Object_ptr);

    static DynArray_ptr _narrow(::CORBA::AbstractBase_ptr);


    //
    // IDL:omg.org/DynamicAny/DynArray/get_elements:1.0
    //
    virtual AnySeq* get_elements() = 0;

    //
    // IDL:omg.org/DynamicAny/DynArray/set_elements:1.0
    //
    virtual void set_elements(const AnySeq& value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynArray/get_elements_as_dyn_any:1.0
    //
    virtual DynAnySeq* get_elements_as_dyn_any() = 0;

    //
    // IDL:omg.org/DynamicAny/DynArray/set_elements_as_dyn_any:1.0
    //
    virtual void set_elements_as_dyn_any(const DynAnySeq& value) = 0;
};

//
// IDL:omg.org/DynamicAny/DynValueCommon:1.0
//
class DynValueCommon : virtual public ::DynamicAny::DynAny
{
    DynValueCommon(const DynValueCommon&);
    void operator=(const DynValueCommon&);

protected:

    static OB_IMPORT const char* ids_[];

public:

    DynValueCommon() { }
    virtual ~DynValueCommon() { }

    typedef DynValueCommon_ptr _ptr_type;
    typedef DynValueCommon_var _var_type;

    static inline DynValueCommon_ptr
    _duplicate(DynValueCommon_ptr p)
    {
        if(p)
            p -> _add_ref();
        return p;
    }

    static inline DynValueCommon_ptr
    _nil()
    {
        return 0;
    }

    static DynValueCommon_ptr _narrow(::CORBA::Object_ptr);

    static DynValueCommon_ptr _narrow(::CORBA::AbstractBase_ptr);


    //
    // IDL:omg.org/DynamicAny/DynValueCommon/is_null:1.0
    //
    virtual ::CORBA::Boolean is_null() = 0;

    //
    // IDL:omg.org/DynamicAny/DynValueCommon/set_to_null:1.0
    //
    virtual void set_to_null() = 0;

    //
    // IDL:omg.org/DynamicAny/DynValueCommon/set_to_value:1.0
    //
    virtual void set_to_value() = 0;
};

//
// IDL:omg.org/DynamicAny/DynValue:1.0
//
class DynValue : virtual public ::DynamicAny::DynValueCommon
{
    DynValue(const DynValue&);
    void operator=(const DynValue&);

protected:

    static OB_IMPORT const char* ids_[];

public:

    DynValue() { }
    virtual ~DynValue() { }

    typedef DynValue_ptr _ptr_type;
    typedef DynValue_var _var_type;

    static inline DynValue_ptr
    _duplicate(DynValue_ptr p)
    {
        if(p)
            p -> _add_ref();
        return p;
    }

    static inline DynValue_ptr
    _nil()
    {
        return 0;
    }

    static DynValue_ptr _narrow(::CORBA::Object_ptr);

    static DynValue_ptr _narrow(::CORBA::AbstractBase_ptr);


    //
    // IDL:omg.org/DynamicAny/DynValue/current_member_name:1.0
    //
    virtual FieldName current_member_name() = 0;

    //
    // IDL:omg.org/DynamicAny/DynValue/current_member_kind:1.0
    //
    virtual ::CORBA::TCKind current_member_kind() = 0;

    //
    // IDL:omg.org/DynamicAny/DynValue/get_members:1.0
    //
    virtual NameValuePairSeq* get_members() = 0;

    //
    // IDL:omg.org/DynamicAny/DynValue/set_members:1.0
    //
    virtual void set_members(const NameValuePairSeq& value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynValue/get_members_as_dyn_any:1.0
    //
    virtual NameDynAnyPairSeq* get_members_as_dyn_any() = 0;

    //
    // IDL:omg.org/DynamicAny/DynValue/set_members_as_dyn_any:1.0
    //
    virtual void set_members_as_dyn_any(const NameDynAnyPairSeq& value) = 0;
};

//
// IDL:omg.org/DynamicAny/DynValueBox:1.0
//
class DynValueBox : virtual public ::DynamicAny::DynValueCommon
{
    DynValueBox(const DynValueBox&);
    void operator=(const DynValueBox&);

protected:

    static OB_IMPORT const char* ids_[];

public:

    DynValueBox() { }
    virtual ~DynValueBox() { }

    typedef DynValueBox_ptr _ptr_type;
    typedef DynValueBox_var _var_type;

    static inline DynValueBox_ptr
    _duplicate(DynValueBox_ptr p)
    {
        if(p)
            p -> _add_ref();
        return p;
    }

    static inline DynValueBox_ptr
    _nil()
    {
        return 0;
    }

    static DynValueBox_ptr _narrow(::CORBA::Object_ptr);

    static DynValueBox_ptr _narrow(::CORBA::AbstractBase_ptr);


    //
    // IDL:omg.org/DynamicAny/DynValueBox/get_boxed_value:1.0
    //
    virtual ::CORBA::Any* get_boxed_value() = 0;

    //
    // IDL:omg.org/DynamicAny/DynValueBox/set_boxed_value:1.0
    //
    virtual void set_boxed_value(const ::CORBA::Any& boxed) = 0;

    //
    // IDL:omg.org/DynamicAny/DynValueBox/get_boxed_value_as_dyn_any:1.0
    //
    virtual DynAny_ptr get_boxed_value_as_dyn_any() = 0;

    //
    // IDL:omg.org/DynamicAny/DynValueBox/set_boxed_value_as_dyn_any:1.0
    //
    virtual void set_boxed_value_as_dyn_any(DynAny_ptr boxed) = 0;
};

//
// IDL:omg.org/DynamicAny/DynAnyFactory:1.0
//
class DynAnyFactory : virtual public ::CORBA::Object
{
    DynAnyFactory(const DynAnyFactory&);
    void operator=(const DynAnyFactory&);

protected:

    static OB_IMPORT const char* ids_[];

public:

    DynAnyFactory() { }
    virtual ~DynAnyFactory() { }

    typedef DynAnyFactory_ptr _ptr_type;
    typedef DynAnyFactory_var _var_type;

    static inline DynAnyFactory_ptr
    _duplicate(DynAnyFactory_ptr p)
    {
        if(p)
            p -> _add_ref();
        return p;
    }

    static inline DynAnyFactory_ptr
    _nil()
    {
        return 0;
    }

    static DynAnyFactory_ptr _narrow(::CORBA::Object_ptr);

    static DynAnyFactory_ptr _narrow(::CORBA::AbstractBase_ptr);


    //
    // IDL:omg.org/DynamicAny/DynAnyFactory/InconsistentTypeCode:1.0
    //
    struct InconsistentTypeCode : public ::CORBA::UserException
    {
        InconsistentTypeCode() { }
        InconsistentTypeCode(const InconsistentTypeCode&);
        InconsistentTypeCode& operator=(const InconsistentTypeCode&);

        static InconsistentTypeCode* _downcast(::CORBA::Exception*);
        static const InconsistentTypeCode* _downcast(const ::CORBA::Exception*);
        virtual const char* _name() const;
        virtual void _raise() const { throw *this; }
        virtual const char* _rep_id() const;
        virtual char* _to_string() const;

        virtual ::CORBA::Exception* _OB_clone() const;
        virtual void _OB_insertInAny(::CORBA::Any&);

        static void _OB_unmarshal(InconsistentTypeCode&, OB::InputStreamImpl*);
    };

    //
    // IDL:omg.org/DynamicAny/DynAnyFactory/create_dyn_any:1.0
    //
    virtual DynAny_ptr create_dyn_any(const ::CORBA::Any& value) = 0;

    //
    // IDL:omg.org/DynamicAny/DynAnyFactory/create_dyn_any_from_type_code:1.0
    //
    virtual DynAny_ptr create_dyn_any_from_type_code(::CORBA::TypeCode_ptr type) = 0;
};

} // End of namespace DynamicAny

//
// IDL:omg.org/DynamicAny:1.0
//
namespace OBProxy_DynamicAny
{

} // End of namespace OBProxy_DynamicAny

//
// IDL:omg.org/DynamicAny:1.0
//
namespace OBStubImpl_DynamicAny
{

} // End of namespace OBStubImpl_DynamicAny

//
// IDL:omg.org/DynamicAny:1.0
//
namespace OBMarshalStubImpl_DynamicAny
{

} // End of namespace OBMarshalStubImpl_DynamicAny

//
// IDL:omg.org/DynamicAny:1.0
//
namespace OBV_DynamicAny
{

} // End of namespace OBV_DynamicAny

//
// IDL:omg.org/DynamicAny/DynAny:1.0
//
namespace CORBA
{

inline void
release(::DynamicAny::DynAny_ptr p)
{
    if(p)
        p -> _remove_ref();
}

inline Boolean
is_nil(::DynamicAny::DynAny_ptr p)
{
    return p == 0;
}

} // End of namespace CORBA

//
// IDL:omg.org/DynamicAny/DynFixed:1.0
//
namespace CORBA
{

inline void
release(::DynamicAny::DynFixed_ptr p)
{
    if(p)
        p -> _remove_ref();
}

inline Boolean
is_nil(::DynamicAny::DynFixed_ptr p)
{
    return p == 0;
}

} // End of namespace CORBA

//
// IDL:omg.org/DynamicAny/DynEnum:1.0
//
namespace CORBA
{

inline void
release(::DynamicAny::DynEnum_ptr p)
{
    if(p)
        p -> _remove_ref();
}

inline Boolean
is_nil(::DynamicAny::DynEnum_ptr p)
{
    return p == 0;
}

} // End of namespace CORBA

//
// IDL:omg.org/DynamicAny/DynStruct:1.0
//
namespace CORBA
{

inline void
release(::DynamicAny::DynStruct_ptr p)
{
    if(p)
        p -> _remove_ref();
}

inline Boolean
is_nil(::DynamicAny::DynStruct_ptr p)
{
    return p == 0;
}

} // End of namespace CORBA

//
// IDL:omg.org/DynamicAny/DynUnion:1.0
//
namespace CORBA
{

inline void
release(::DynamicAny::DynUnion_ptr p)
{
    if(p)
        p -> _remove_ref();
}

inline Boolean
is_nil(::DynamicAny::DynUnion_ptr p)
{
    return p == 0;
}

} // End of namespace CORBA

//
// IDL:omg.org/DynamicAny/DynSequence:1.0
//
namespace CORBA
{

inline void
release(::DynamicAny::DynSequence_ptr p)
{
    if(p)
        p -> _remove_ref();
}

inline Boolean
is_nil(::DynamicAny::DynSequence_ptr p)
{
    return p == 0;
}

} // End of namespace CORBA

//
// IDL:omg.org/DynamicAny/DynArray:1.0
//
namespace CORBA
{

inline void
release(::DynamicAny::DynArray_ptr p)
{
    if(p)
        p -> _remove_ref();
}

inline Boolean
is_nil(::DynamicAny::DynArray_ptr p)
{
    return p == 0;
}

} // End of namespace CORBA

//
// IDL:omg.org/DynamicAny/DynValueCommon:1.0
//
namespace CORBA
{

inline void
release(::DynamicAny::DynValueCommon_ptr p)
{
    if(p)
        p -> _remove_ref();
}

inline Boolean
is_nil(::DynamicAny::DynValueCommon_ptr p)
{
    return p == 0;
}

} // End of namespace CORBA

//
// IDL:omg.org/DynamicAny/DynValue:1.0
//
namespace CORBA
{

inline void
release(::DynamicAny::DynValue_ptr p)
{
    if(p)
        p -> _remove_ref();
}

inline Boolean
is_nil(::DynamicAny::DynValue_ptr p)
{
    return p == 0;
}

} // End of namespace CORBA

//
// IDL:omg.org/DynamicAny/DynValueBox:1.0
//
namespace CORBA
{

inline void
release(::DynamicAny::DynValueBox_ptr p)
{
    if(p)
        p -> _remove_ref();
}

inline Boolean
is_nil(::DynamicAny::DynValueBox_ptr p)
{
    return p == 0;
}

} // End of namespace CORBA

//
// IDL:omg.org/DynamicAny/DynAnyFactory:1.0
//
namespace CORBA
{

inline void
release(::DynamicAny::DynAnyFactory_ptr p)
{
    if(p)
        p -> _remove_ref();
}

inline Boolean
is_nil(::DynamicAny::DynAnyFactory_ptr p)
{
    return p == 0;
}

} // End of namespace CORBA

#endif
