// **********************************************************************
//
// 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_IFR2_skel_h__
#define __OB_IFR2_skel_h__

#include <OB/IFR2.h>

#include <OB/IFR1_skel.h>

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


#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

//
// IDL:omg.org/CORBA:1.0
//
namespace POA_CORBA
{

//
// IDL:omg.org/CORBA/Contained:1.0
//
class Contained : virtual public POA_CORBA::IRObject
{
    Contained(const Contained&);
    void operator=(const Contained&);

protected:

    //
    // IDL:omg.org/CORBA/Contained/id:1.0
    //
    void _OB_get_id(OB::Upcall_ptr);
    void _OB_set_id(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/Contained/name:1.0
    //
    void _OB_get_name(OB::Upcall_ptr);
    void _OB_set_name(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/Contained/version:1.0
    //
    void _OB_get_version(OB::Upcall_ptr);
    void _OB_set_version(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/Contained/defined_in:1.0
    //
    void _OB_get_defined_in(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/Contained/absolute_name:1.0
    //
    void _OB_get_absolute_name(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/Contained/containing_repository:1.0
    //
    void _OB_get_containing_repository(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/Contained/describe:1.0
    //
    void _OB_op_describe(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/Contained/move:1.0
    //
    void _OB_op_move(OB::Upcall_ptr);

public:

    Contained() { }

    virtual ::CORBA::Boolean _is_a(const char*)
        throw(::CORBA::SystemException);

    virtual ::CORBA::RepositoryId _primary_interface(const PortableServer::ObjectId&,
                                                     PortableServer::POA_ptr);

    CORBA::Contained_ptr _this();

    virtual OB::DirectStubImpl_ptr _OB_createDirectStubImpl(PortableServer::POA_ptr,
                                                            const PortableServer::ObjectId&);
    virtual void _OB_dispatch(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/Contained/id:1.0
    //
    virtual ::CORBA::RepositoryId id()
        throw(::CORBA::SystemException) = 0;
    virtual void id(const char*)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/Contained/name:1.0
    //
    virtual ::CORBA::Identifier name()
        throw(::CORBA::SystemException) = 0;
    virtual void name(const char*)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/Contained/version:1.0
    //
    virtual ::CORBA::VersionSpec version()
        throw(::CORBA::SystemException) = 0;
    virtual void version(const char*)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/Contained/defined_in:1.0
    //
    virtual ::CORBA::Container_ptr defined_in()
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/Contained/absolute_name:1.0
    //
    virtual ::CORBA::ScopedName absolute_name()
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/Contained/containing_repository:1.0
    //
    virtual ::CORBA::Repository_ptr containing_repository()
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/Contained/describe:1.0
    //
    virtual ::CORBA::Contained::Description* describe()
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/Contained/move:1.0
    //
    virtual void move(::CORBA::Container_ptr new_container,
                      const char* new_name,
                      const char* new_version)
        throw(::CORBA::SystemException) = 0;
};

//
// IDL:omg.org/CORBA/Container:1.0
//
class Container : virtual public POA_CORBA::IRObject
{
    Container(const Container&);
    void operator=(const Container&);

protected:

    //
    // IDL:omg.org/CORBA/Container/lookup:1.0
    //
    void _OB_op_lookup(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/Container/contents:1.0
    //
    void _OB_op_contents(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/Container/lookup_name:1.0
    //
    void _OB_op_lookup_name(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/Container/describe_contents:1.0
    //
    void _OB_op_describe_contents(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/Container/create_module:1.0
    //
    void _OB_op_create_module(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/Container/create_constant:1.0
    //
    void _OB_op_create_constant(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/Container/create_struct:1.0
    //
    void _OB_op_create_struct(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/Container/create_union:1.0
    //
    void _OB_op_create_union(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/Container/create_enum:1.0
    //
    void _OB_op_create_enum(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/Container/create_alias:1.0
    //
    void _OB_op_create_alias(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/Container/create_interface:1.0
    //
    void _OB_op_create_interface(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/Container/create_abstract_interface:1.0
    //
    void _OB_op_create_abstract_interface(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/Container/create_local_interface:1.0
    //
    void _OB_op_create_local_interface(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/Container/create_exception:1.0
    //
    void _OB_op_create_exception(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/Container/create_value:1.0
    //
    void _OB_op_create_value(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/Container/create_value_box:1.0
    //
    void _OB_op_create_value_box(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/Container/create_native:1.0
    //
    void _OB_op_create_native(OB::Upcall_ptr);

public:

    Container() { }

    virtual ::CORBA::Boolean _is_a(const char*)
        throw(::CORBA::SystemException);

    virtual ::CORBA::RepositoryId _primary_interface(const PortableServer::ObjectId&,
                                                     PortableServer::POA_ptr);

    CORBA::Container_ptr _this();

    virtual OB::DirectStubImpl_ptr _OB_createDirectStubImpl(PortableServer::POA_ptr,
                                                            const PortableServer::ObjectId&);
    virtual void _OB_dispatch(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/Container/lookup:1.0
    //
    virtual ::CORBA::Contained_ptr lookup(const char* search_name)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/Container/contents:1.0
    //
    virtual ::CORBA::ContainedSeq* contents(::CORBA::DefinitionKind limit_type,
                                            ::CORBA::Boolean exclude_inherited)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/Container/lookup_name:1.0
    //
    virtual ::CORBA::ContainedSeq* lookup_name(const char* search_name,
                                               ::CORBA::Long levels_to_search,
                                               ::CORBA::DefinitionKind limit_type,
                                               ::CORBA::Boolean exclude_inherited)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/Container/describe_contents:1.0
    //
    virtual ::CORBA::Container::DescriptionSeq* describe_contents(::CORBA::DefinitionKind limit_type,
                                                                  ::CORBA::Boolean exclude_inherited,
                                                                  ::CORBA::Long max_returned_objs)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/Container/create_module:1.0
    //
    virtual ::CORBA::ModuleDef_ptr create_module(const char* id,
                                                 const char* name,
                                                 const char* version)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/Container/create_constant:1.0
    //
    virtual ::CORBA::ConstantDef_ptr create_constant(const char* id,
                                                     const char* name,
                                                     const char* version,
                                                     ::CORBA::IDLType_ptr type,
                                                     const ::CORBA::Any& value)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/Container/create_struct:1.0
    //
    virtual ::CORBA::StructDef_ptr create_struct(const char* id,
                                                 const char* name,
                                                 const char* version,
                                                 const ::CORBA::StructMemberSeq& members)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/Container/create_union:1.0
    //
    virtual ::CORBA::UnionDef_ptr create_union(const char* id,
                                               const char* name,
                                               const char* version,
                                               ::CORBA::IDLType_ptr discriminator_type,
                                               const ::CORBA::UnionMemberSeq& members)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/Container/create_enum:1.0
    //
    virtual ::CORBA::EnumDef_ptr create_enum(const char* id,
                                             const char* name,
                                             const char* version,
                                             const ::CORBA::EnumMemberSeq& members)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/Container/create_alias:1.0
    //
    virtual ::CORBA::AliasDef_ptr create_alias(const char* id,
                                               const char* name,
                                               const char* version,
                                               ::CORBA::IDLType_ptr original_type)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/Container/create_interface:1.0
    //
    virtual ::CORBA::InterfaceDef_ptr create_interface(const char* id,
                                                       const char* name,
                                                       const char* version,
                                                       const ::CORBA::InterfaceDefSeq& base_interfaces)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/Container/create_abstract_interface:1.0
    //
    virtual ::CORBA::AbstractInterfaceDef_ptr create_abstract_interface(const char* id,
                                                                        const char* name,
                                                                        const char* version,
                                                                        const ::CORBA::AbstractInterfaceDefSeq& base_interfaces)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/Container/create_local_interface:1.0
    //
    virtual ::CORBA::LocalInterfaceDef_ptr create_local_interface(const char* id,
                                                                  const char* name,
                                                                  const char* version,
                                                                  const ::CORBA::InterfaceDefSeq& base_interfaces)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/Container/create_exception:1.0
    //
    virtual ::CORBA::ExceptionDef_ptr create_exception(const char* id,
                                                       const char* name,
                                                       const char* version,
                                                       const ::CORBA::StructMemberSeq& members)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/Container/create_value:1.0
    //
    virtual ::CORBA::ValueDef_ptr create_value(const char* id,
                                               const char* name,
                                               const char* version,
                                               ::CORBA::Boolean is_custom,
                                               ::CORBA::Boolean is_abstract,
                                               ::CORBA::ValueDef_ptr base_value,
                                               ::CORBA::Boolean is_truncatable,
                                               const ::CORBA::ValueDefSeq& abstract_base_values,
                                               const ::CORBA::InterfaceDefSeq& supported_interfaces,
                                               const ::CORBA::InitializerSeq& initializers)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/Container/create_value_box:1.0
    //
    virtual ::CORBA::ValueBoxDef_ptr create_value_box(const char* id,
                                                      const char* name,
                                                      const char* version,
                                                      ::CORBA::IDLType_ptr original_type_def)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/Container/create_native:1.0
    //
    virtual ::CORBA::NativeDef_ptr create_native(const char* id,
                                                 const char* name,
                                                 const char* version)
        throw(::CORBA::SystemException) = 0;
};

//
// IDL:omg.org/CORBA/AttributeDef:1.0
//
class AttributeDef : virtual public POA_CORBA::Contained
{
    AttributeDef(const AttributeDef&);
    void operator=(const AttributeDef&);

protected:

    //
    // IDL:omg.org/CORBA/AttributeDef/type:1.0
    //
    void _OB_get_type(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/AttributeDef/type_def:1.0
    //
    void _OB_get_type_def(OB::Upcall_ptr);
    void _OB_set_type_def(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/AttributeDef/mode:1.0
    //
    void _OB_get_mode(OB::Upcall_ptr);
    void _OB_set_mode(OB::Upcall_ptr);

public:

    AttributeDef() { }

    virtual ::CORBA::Boolean _is_a(const char*)
        throw(::CORBA::SystemException);

    virtual ::CORBA::RepositoryId _primary_interface(const PortableServer::ObjectId&,
                                                     PortableServer::POA_ptr);

    CORBA::AttributeDef_ptr _this();

    virtual OB::DirectStubImpl_ptr _OB_createDirectStubImpl(PortableServer::POA_ptr,
                                                            const PortableServer::ObjectId&);
    virtual void _OB_dispatch(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/AttributeDef/type:1.0
    //
    virtual ::CORBA::TypeCode_ptr type()
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/AttributeDef/type_def:1.0
    //
    virtual ::CORBA::IDLType_ptr type_def()
        throw(::CORBA::SystemException) = 0;
    virtual void type_def(::CORBA::IDLType_ptr)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/AttributeDef/mode:1.0
    //
    virtual ::CORBA::AttributeMode mode()
        throw(::CORBA::SystemException) = 0;
    virtual void mode(::CORBA::AttributeMode)
        throw(::CORBA::SystemException) = 0;
};

//
// IDL:omg.org/CORBA/ExceptionDef:1.0
//
class ExceptionDef : virtual public POA_CORBA::Contained,
                     virtual public POA_CORBA::Container
{
    ExceptionDef(const ExceptionDef&);
    void operator=(const ExceptionDef&);

protected:

    //
    // IDL:omg.org/CORBA/ExceptionDef/type:1.0
    //
    void _OB_get_type(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/ExceptionDef/members:1.0
    //
    void _OB_get_members(OB::Upcall_ptr);
    void _OB_set_members(OB::Upcall_ptr);

public:

    ExceptionDef() { }

    virtual ::CORBA::Boolean _is_a(const char*)
        throw(::CORBA::SystemException);

    virtual ::CORBA::RepositoryId _primary_interface(const PortableServer::ObjectId&,
                                                     PortableServer::POA_ptr);

    CORBA::ExceptionDef_ptr _this();

    virtual OB::DirectStubImpl_ptr _OB_createDirectStubImpl(PortableServer::POA_ptr,
                                                            const PortableServer::ObjectId&);
    virtual void _OB_dispatch(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/ExceptionDef/type:1.0
    //
    virtual ::CORBA::TypeCode_ptr type()
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/ExceptionDef/members:1.0
    //
    virtual ::CORBA::StructMemberSeq* members()
        throw(::CORBA::SystemException) = 0;
    virtual void members(const ::CORBA::StructMemberSeq&)
        throw(::CORBA::SystemException) = 0;
};

//
// IDL:omg.org/CORBA/OperationDef:1.0
//
class OperationDef : virtual public POA_CORBA::Contained
{
    OperationDef(const OperationDef&);
    void operator=(const OperationDef&);

protected:

    //
    // IDL:omg.org/CORBA/OperationDef/result:1.0
    //
    void _OB_get_result(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/OperationDef/result_def:1.0
    //
    void _OB_get_result_def(OB::Upcall_ptr);
    void _OB_set_result_def(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/OperationDef/params:1.0
    //
    void _OB_get_params(OB::Upcall_ptr);
    void _OB_set_params(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/OperationDef/mode:1.0
    //
    void _OB_get_mode(OB::Upcall_ptr);
    void _OB_set_mode(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/OperationDef/contexts:1.0
    //
    void _OB_get_contexts(OB::Upcall_ptr);
    void _OB_set_contexts(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/OperationDef/exceptions:1.0
    //
    void _OB_get_exceptions(OB::Upcall_ptr);
    void _OB_set_exceptions(OB::Upcall_ptr);

public:

    OperationDef() { }

    virtual ::CORBA::Boolean _is_a(const char*)
        throw(::CORBA::SystemException);

    virtual ::CORBA::RepositoryId _primary_interface(const PortableServer::ObjectId&,
                                                     PortableServer::POA_ptr);

    CORBA::OperationDef_ptr _this();

    virtual OB::DirectStubImpl_ptr _OB_createDirectStubImpl(PortableServer::POA_ptr,
                                                            const PortableServer::ObjectId&);
    virtual void _OB_dispatch(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/OperationDef/result:1.0
    //
    virtual ::CORBA::TypeCode_ptr result()
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/OperationDef/result_def:1.0
    //
    virtual ::CORBA::IDLType_ptr result_def()
        throw(::CORBA::SystemException) = 0;
    virtual void result_def(::CORBA::IDLType_ptr)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/OperationDef/params:1.0
    //
    virtual ::CORBA::ParDescriptionSeq* params()
        throw(::CORBA::SystemException) = 0;
    virtual void params(const ::CORBA::ParDescriptionSeq&)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/OperationDef/mode:1.0
    //
    virtual ::CORBA::OperationMode mode()
        throw(::CORBA::SystemException) = 0;
    virtual void mode(::CORBA::OperationMode)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/OperationDef/contexts:1.0
    //
    virtual ::CORBA::ContextIdSeq* contexts()
        throw(::CORBA::SystemException) = 0;
    virtual void contexts(const ::CORBA::ContextIdSeq&)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/OperationDef/exceptions:1.0
    //
    virtual ::CORBA::ExceptionDefSeq* exceptions()
        throw(::CORBA::SystemException) = 0;
    virtual void exceptions(const ::CORBA::ExceptionDefSeq&)
        throw(::CORBA::SystemException) = 0;
};

//
// IDL:omg.org/CORBA/InterfaceDef:1.0
//
class InterfaceDef : virtual public POA_CORBA::Container,
                     virtual public POA_CORBA::Contained,
                     virtual public POA_CORBA::IDLType
{
    InterfaceDef(const InterfaceDef&);
    void operator=(const InterfaceDef&);

protected:

    //
    // IDL:omg.org/CORBA/InterfaceDef/base_interfaces:1.0
    //
    void _OB_get_base_interfaces(OB::Upcall_ptr);
    void _OB_set_base_interfaces(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/InterfaceDef/is_a:1.0
    //
    void _OB_op_is_a(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/InterfaceDef/describe_interface:1.0
    //
    void _OB_op_describe_interface(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/InterfaceDef/create_attribute:1.0
    //
    void _OB_op_create_attribute(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/InterfaceDef/create_operation:1.0
    //
    void _OB_op_create_operation(OB::Upcall_ptr);

public:

    InterfaceDef() { }

    virtual ::CORBA::Boolean _is_a(const char*)
        throw(::CORBA::SystemException);

    virtual ::CORBA::RepositoryId _primary_interface(const PortableServer::ObjectId&,
                                                     PortableServer::POA_ptr);

    CORBA::InterfaceDef_ptr _this();

    virtual OB::DirectStubImpl_ptr _OB_createDirectStubImpl(PortableServer::POA_ptr,
                                                            const PortableServer::ObjectId&);
    virtual void _OB_dispatch(OB::Upcall_ptr);

    //
    // IDL:omg.org/CORBA/InterfaceDef/base_interfaces:1.0
    //
    virtual ::CORBA::InterfaceDefSeq* base_interfaces()
        throw(::CORBA::SystemException) = 0;
    virtual void base_interfaces(const ::CORBA::InterfaceDefSeq&)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/InterfaceDef/is_a:1.0
    //
    virtual ::CORBA::Boolean is_a(const char* interface_id)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/InterfaceDef/describe_interface:1.0
    //
    virtual ::CORBA::InterfaceDef::FullInterfaceDescription* describe_interface()
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/InterfaceDef/create_attribute:1.0
    //
    virtual ::CORBA::AttributeDef_ptr create_attribute(const char* id,
                                                       const char* name,
                                                       const char* version,
                                                       ::CORBA::IDLType_ptr type,
                                                       ::CORBA::AttributeMode mode)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CORBA/InterfaceDef/create_operation:1.0
    //
    virtual ::CORBA::OperationDef_ptr create_operation(const char* id,
                                                       const char* name,
                                                       const char* version,
                                                       ::CORBA::IDLType_ptr result,
                                                       ::CORBA::OperationMode mode,
                                                       const ::CORBA::ParDescriptionSeq& params,
                                                       const ::CORBA::ExceptionDefSeq& exceptions,
                                                       const ::CORBA::ContextIdSeq& contexts)
        throw(::CORBA::SystemException) = 0;
};

} // End of namespace POA_CORBA

//
// IDL:omg.org/CORBA:1.0
//
namespace OBDirectStubImpl_CORBA
{

//
// IDL:omg.org/CORBA/Contained:1.0
//
class Contained : virtual public OBStubImpl_CORBA::Contained,
                  virtual public OBDirectStubImpl_CORBA::IRObject
{
    Contained(const Contained&);
    void operator=(const Contained&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    Contained() { }

#endif

    Contained(PortableServer::POA_ptr,
              const PortableServer::ObjectId&,
              PortableServer::ServantBase*);

    friend class POA_CORBA::Contained;

public:

    //
    // IDL:omg.org/CORBA/Contained/id:1.0
    //
    virtual ::CORBA::RepositoryId id();
    virtual void id(const char*);

    //
    // IDL:omg.org/CORBA/Contained/name:1.0
    //
    virtual ::CORBA::Identifier name();
    virtual void name(const char*);

    //
    // IDL:omg.org/CORBA/Contained/version:1.0
    //
    virtual ::CORBA::VersionSpec version();
    virtual void version(const char*);

    //
    // IDL:omg.org/CORBA/Contained/defined_in:1.0
    //
    virtual ::CORBA::Container_ptr defined_in();

    //
    // IDL:omg.org/CORBA/Contained/absolute_name:1.0
    //
    virtual ::CORBA::ScopedName absolute_name();

    //
    // IDL:omg.org/CORBA/Contained/containing_repository:1.0
    //
    virtual ::CORBA::Repository_ptr containing_repository();

    //
    // IDL:omg.org/CORBA/Contained/describe:1.0
    //
    virtual ::CORBA::Contained::Description* describe();

    //
    // IDL:omg.org/CORBA/Contained/move:1.0
    //
    virtual void move(::CORBA::Container_ptr new_container,
                      const char* new_name,
                      const char* new_version);
};

//
// IDL:omg.org/CORBA/Container:1.0
//
class Container : virtual public OBStubImpl_CORBA::Container,
                  virtual public OBDirectStubImpl_CORBA::IRObject
{
    Container(const Container&);
    void operator=(const Container&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    Container() { }

#endif

    Container(PortableServer::POA_ptr,
              const PortableServer::ObjectId&,
              PortableServer::ServantBase*);

    friend class POA_CORBA::Container;

public:

    //
    // IDL:omg.org/CORBA/Container/lookup:1.0
    //
    virtual ::CORBA::Contained_ptr lookup(const char* search_name);

    //
    // IDL:omg.org/CORBA/Container/contents:1.0
    //
    virtual ::CORBA::ContainedSeq* contents(::CORBA::DefinitionKind limit_type,
                                            ::CORBA::Boolean exclude_inherited);

    //
    // IDL:omg.org/CORBA/Container/lookup_name:1.0
    //
    virtual ::CORBA::ContainedSeq* lookup_name(const char* search_name,
                                               ::CORBA::Long levels_to_search,
                                               ::CORBA::DefinitionKind limit_type,
                                               ::CORBA::Boolean exclude_inherited);

    //
    // IDL:omg.org/CORBA/Container/describe_contents:1.0
    //
    virtual ::CORBA::Container::DescriptionSeq* describe_contents(::CORBA::DefinitionKind limit_type,
                                                                  ::CORBA::Boolean exclude_inherited,
                                                                  ::CORBA::Long max_returned_objs);

    //
    // IDL:omg.org/CORBA/Container/create_module:1.0
    //
    virtual ::CORBA::ModuleDef_ptr create_module(const char* id,
                                                 const char* name,
                                                 const char* version);

    //
    // IDL:omg.org/CORBA/Container/create_constant:1.0
    //
    virtual ::CORBA::ConstantDef_ptr create_constant(const char* id,
                                                     const char* name,
                                                     const char* version,
                                                     ::CORBA::IDLType_ptr type,
                                                     const ::CORBA::Any& value);

    //
    // IDL:omg.org/CORBA/Container/create_struct:1.0
    //
    virtual ::CORBA::StructDef_ptr create_struct(const char* id,
                                                 const char* name,
                                                 const char* version,
                                                 const ::CORBA::StructMemberSeq& members);

    //
    // IDL:omg.org/CORBA/Container/create_union:1.0
    //
    virtual ::CORBA::UnionDef_ptr create_union(const char* id,
                                               const char* name,
                                               const char* version,
                                               ::CORBA::IDLType_ptr discriminator_type,
                                               const ::CORBA::UnionMemberSeq& members);

    //
    // IDL:omg.org/CORBA/Container/create_enum:1.0
    //
    virtual ::CORBA::EnumDef_ptr create_enum(const char* id,
                                             const char* name,
                                             const char* version,
                                             const ::CORBA::EnumMemberSeq& members);

    //
    // IDL:omg.org/CORBA/Container/create_alias:1.0
    //
    virtual ::CORBA::AliasDef_ptr create_alias(const char* id,
                                               const char* name,
                                               const char* version,
                                               ::CORBA::IDLType_ptr original_type);

    //
    // IDL:omg.org/CORBA/Container/create_interface:1.0
    //
    virtual ::CORBA::InterfaceDef_ptr create_interface(const char* id,
                                                       const char* name,
                                                       const char* version,
                                                       const ::CORBA::InterfaceDefSeq& base_interfaces);

    //
    // IDL:omg.org/CORBA/Container/create_abstract_interface:1.0
    //
    virtual ::CORBA::AbstractInterfaceDef_ptr create_abstract_interface(const char* id,
                                                                        const char* name,
                                                                        const char* version,
                                                                        const ::CORBA::AbstractInterfaceDefSeq& base_interfaces);

    //
    // IDL:omg.org/CORBA/Container/create_local_interface:1.0
    //
    virtual ::CORBA::LocalInterfaceDef_ptr create_local_interface(const char* id,
                                                                  const char* name,
                                                                  const char* version,
                                                                  const ::CORBA::InterfaceDefSeq& base_interfaces);

    //
    // IDL:omg.org/CORBA/Container/create_exception:1.0
    //
    virtual ::CORBA::ExceptionDef_ptr create_exception(const char* id,
                                                       const char* name,
                                                       const char* version,
                                                       const ::CORBA::StructMemberSeq& members);

    //
    // IDL:omg.org/CORBA/Container/create_value:1.0
    //
    virtual ::CORBA::ValueDef_ptr create_value(const char* id,
                                               const char* name,
                                               const char* version,
                                               ::CORBA::Boolean is_custom,
                                               ::CORBA::Boolean is_abstract,
                                               ::CORBA::ValueDef_ptr base_value,
                                               ::CORBA::Boolean is_truncatable,
                                               const ::CORBA::ValueDefSeq& abstract_base_values,
                                               const ::CORBA::InterfaceDefSeq& supported_interfaces,
                                               const ::CORBA::InitializerSeq& initializers);

    //
    // IDL:omg.org/CORBA/Container/create_value_box:1.0
    //
    virtual ::CORBA::ValueBoxDef_ptr create_value_box(const char* id,
                                                      const char* name,
                                                      const char* version,
                                                      ::CORBA::IDLType_ptr original_type_def);

    //
    // IDL:omg.org/CORBA/Container/create_native:1.0
    //
    virtual ::CORBA::NativeDef_ptr create_native(const char* id,
                                                 const char* name,
                                                 const char* version);
};

//
// IDL:omg.org/CORBA/AttributeDef:1.0
//
class AttributeDef : virtual public OBStubImpl_CORBA::AttributeDef,
                     virtual public OBDirectStubImpl_CORBA::Contained
{
    AttributeDef(const AttributeDef&);
    void operator=(const AttributeDef&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    AttributeDef() { }

#endif

    AttributeDef(PortableServer::POA_ptr,
                 const PortableServer::ObjectId&,
                 PortableServer::ServantBase*);

    friend class POA_CORBA::AttributeDef;

public:

    //
    // IDL:omg.org/CORBA/AttributeDef/type:1.0
    //
    virtual ::CORBA::TypeCode_ptr type();

    //
    // IDL:omg.org/CORBA/AttributeDef/type_def:1.0
    //
    virtual ::CORBA::IDLType_ptr type_def();
    virtual void type_def(::CORBA::IDLType_ptr);

    //
    // IDL:omg.org/CORBA/AttributeDef/mode:1.0
    //
    virtual ::CORBA::AttributeMode mode();
    virtual void mode(::CORBA::AttributeMode);
};

//
// IDL:omg.org/CORBA/ExceptionDef:1.0
//
class ExceptionDef : virtual public OBStubImpl_CORBA::ExceptionDef,
                     virtual public OBDirectStubImpl_CORBA::Contained,
                     virtual public OBDirectStubImpl_CORBA::Container
{
    ExceptionDef(const ExceptionDef&);
    void operator=(const ExceptionDef&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    ExceptionDef() { }

#endif

    ExceptionDef(PortableServer::POA_ptr,
                 const PortableServer::ObjectId&,
                 PortableServer::ServantBase*);

    friend class POA_CORBA::ExceptionDef;

public:

    //
    // IDL:omg.org/CORBA/ExceptionDef/type:1.0
    //
    virtual ::CORBA::TypeCode_ptr type();

    //
    // IDL:omg.org/CORBA/ExceptionDef/members:1.0
    //
    virtual ::CORBA::StructMemberSeq* members();
    virtual void members(const ::CORBA::StructMemberSeq&);
};

//
// IDL:omg.org/CORBA/OperationDef:1.0
//
class OperationDef : virtual public OBStubImpl_CORBA::OperationDef,
                     virtual public OBDirectStubImpl_CORBA::Contained
{
    OperationDef(const OperationDef&);
    void operator=(const OperationDef&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    OperationDef() { }

#endif

    OperationDef(PortableServer::POA_ptr,
                 const PortableServer::ObjectId&,
                 PortableServer::ServantBase*);

    friend class POA_CORBA::OperationDef;

public:

    //
    // IDL:omg.org/CORBA/OperationDef/result:1.0
    //
    virtual ::CORBA::TypeCode_ptr result();

    //
    // IDL:omg.org/CORBA/OperationDef/result_def:1.0
    //
    virtual ::CORBA::IDLType_ptr result_def();
    virtual void result_def(::CORBA::IDLType_ptr);

    //
    // IDL:omg.org/CORBA/OperationDef/params:1.0
    //
    virtual ::CORBA::ParDescriptionSeq* params();
    virtual void params(const ::CORBA::ParDescriptionSeq&);

    //
    // IDL:omg.org/CORBA/OperationDef/mode:1.0
    //
    virtual ::CORBA::OperationMode mode();
    virtual void mode(::CORBA::OperationMode);

    //
    // IDL:omg.org/CORBA/OperationDef/contexts:1.0
    //
    virtual ::CORBA::ContextIdSeq* contexts();
    virtual void contexts(const ::CORBA::ContextIdSeq&);

    //
    // IDL:omg.org/CORBA/OperationDef/exceptions:1.0
    //
    virtual ::CORBA::ExceptionDefSeq* exceptions();
    virtual void exceptions(const ::CORBA::ExceptionDefSeq&);
};

//
// IDL:omg.org/CORBA/InterfaceDef:1.0
//
class InterfaceDef : virtual public OBStubImpl_CORBA::InterfaceDef,
                     virtual public OBDirectStubImpl_CORBA::Container,
                     virtual public OBDirectStubImpl_CORBA::Contained,
                     virtual public OBDirectStubImpl_CORBA::IDLType
{
    InterfaceDef(const InterfaceDef&);
    void operator=(const InterfaceDef&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    InterfaceDef() { }

#endif

    InterfaceDef(PortableServer::POA_ptr,
                 const PortableServer::ObjectId&,
                 PortableServer::ServantBase*);

    friend class POA_CORBA::InterfaceDef;

public:

    //
    // IDL:omg.org/CORBA/InterfaceDef/base_interfaces:1.0
    //
    virtual ::CORBA::InterfaceDefSeq* base_interfaces();
    virtual void base_interfaces(const ::CORBA::InterfaceDefSeq&);

    //
    // IDL:omg.org/CORBA/InterfaceDef/is_a:1.0
    //
    virtual ::CORBA::Boolean is_a(const char* interface_id);

    //
    // IDL:omg.org/CORBA/InterfaceDef/describe_interface:1.0
    //
    virtual ::CORBA::InterfaceDef::FullInterfaceDescription* describe_interface();

    //
    // IDL:omg.org/CORBA/InterfaceDef/create_attribute:1.0
    //
    virtual ::CORBA::AttributeDef_ptr create_attribute(const char* id,
                                                       const char* name,
                                                       const char* version,
                                                       ::CORBA::IDLType_ptr type,
                                                       ::CORBA::AttributeMode mode);

    //
    // IDL:omg.org/CORBA/InterfaceDef/create_operation:1.0
    //
    virtual ::CORBA::OperationDef_ptr create_operation(const char* id,
                                                       const char* name,
                                                       const char* version,
                                                       ::CORBA::IDLType_ptr result,
                                                       ::CORBA::OperationMode mode,
                                                       const ::CORBA::ParDescriptionSeq& params,
                                                       const ::CORBA::ExceptionDefSeq& exceptions,
                                                       const ::CORBA::ContextIdSeq& contexts);
};

} // End of namespace OBDirectStubImpl_CORBA

#endif
