// **********************************************************************
//
// 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_CosProperty_skel_h__
#define __OB_CosProperty_skel_h__

#include <OB/CosProperty.h>

#ifndef OB_PROPERTY_IMPORT
#   ifdef OB_DLL
#      define OB_PROPERTY_IMPORT __declspec(dllimport)
#   else
#      define OB_PROPERTY_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/CosPropertyService:1.0
//
namespace POA_CosPropertyService
{

//
// IDL:omg.org/CosPropertyService/PropertySetFactory:1.0
//
class PropertySetFactory : virtual public PortableServer::ServantBase
{
    PropertySetFactory(const PropertySetFactory&);
    void operator=(const PropertySetFactory&);

protected:

    //
    // IDL:omg.org/CosPropertyService/PropertySetFactory/create_propertyset:1.0
    //
    void _OB_op_create_propertyset(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosPropertyService/PropertySetFactory/create_constrained_propertyset:1.0
    //
    void _OB_op_create_constrained_propertyset(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosPropertyService/PropertySetFactory/create_initial_propertyset:1.0
    //
    void _OB_op_create_initial_propertyset(OB::Upcall_ptr);

public:

    PropertySetFactory() { }

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

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

    CosPropertyService::PropertySetFactory_ptr _this();

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

    //
    // IDL:omg.org/CosPropertyService/PropertySetFactory/create_propertyset:1.0
    //
    virtual ::CosPropertyService::PropertySet_ptr create_propertyset()
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertySetFactory/create_constrained_propertyset:1.0
    //
    virtual ::CosPropertyService::PropertySet_ptr create_constrained_propertyset(const ::CosPropertyService::PropertyTypes& allowed_property_types,
                                                                                 const ::CosPropertyService::Properties& allowed_properties)
        throw(CosPropertyService::ConstraintNotSupported,
              ::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertySetFactory/create_initial_propertyset:1.0
    //
    virtual ::CosPropertyService::PropertySet_ptr create_initial_propertyset(const ::CosPropertyService::Properties& initial_properties)
        throw(CosPropertyService::MultipleExceptions,
              ::CORBA::SystemException) = 0;
};

//
// IDL:omg.org/CosPropertyService/PropertySetDefFactory:1.0
//
class PropertySetDefFactory : virtual public PortableServer::ServantBase
{
    PropertySetDefFactory(const PropertySetDefFactory&);
    void operator=(const PropertySetDefFactory&);

protected:

    //
    // IDL:omg.org/CosPropertyService/PropertySetDefFactory/create_propertysetdef:1.0
    //
    void _OB_op_create_propertysetdef(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosPropertyService/PropertySetDefFactory/create_constrained_propertysetdef:1.0
    //
    void _OB_op_create_constrained_propertysetdef(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosPropertyService/PropertySetDefFactory/create_initial_propertysetdef:1.0
    //
    void _OB_op_create_initial_propertysetdef(OB::Upcall_ptr);

public:

    PropertySetDefFactory() { }

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

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

    CosPropertyService::PropertySetDefFactory_ptr _this();

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

    //
    // IDL:omg.org/CosPropertyService/PropertySetDefFactory/create_propertysetdef:1.0
    //
    virtual ::CosPropertyService::PropertySetDef_ptr create_propertysetdef()
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertySetDefFactory/create_constrained_propertysetdef:1.0
    //
    virtual ::CosPropertyService::PropertySetDef_ptr create_constrained_propertysetdef(const ::CosPropertyService::PropertyTypes& allowed_property_types,
                                                                                       const ::CosPropertyService::PropertyDefs& allowed_property_defs)
        throw(CosPropertyService::ConstraintNotSupported,
              ::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertySetDefFactory/create_initial_propertysetdef:1.0
    //
    virtual ::CosPropertyService::PropertySetDef_ptr create_initial_propertysetdef(const ::CosPropertyService::PropertyDefs& initial_property_defs)
        throw(CosPropertyService::MultipleExceptions,
              ::CORBA::SystemException) = 0;
};

//
// IDL:omg.org/CosPropertyService/PropertySet:1.0
//
class PropertySet : virtual public PortableServer::ServantBase
{
    PropertySet(const PropertySet&);
    void operator=(const PropertySet&);

protected:

    //
    // IDL:omg.org/CosPropertyService/PropertySet/define_property:1.0
    //
    void _OB_op_define_property(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosPropertyService/PropertySet/define_properties:1.0
    //
    void _OB_op_define_properties(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosPropertyService/PropertySet/get_number_of_properties:1.0
    //
    void _OB_op_get_number_of_properties(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosPropertyService/PropertySet/get_all_property_names:1.0
    //
    void _OB_op_get_all_property_names(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosPropertyService/PropertySet/get_property_value:1.0
    //
    void _OB_op_get_property_value(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosPropertyService/PropertySet/get_properties:1.0
    //
    void _OB_op_get_properties(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosPropertyService/PropertySet/get_all_properties:1.0
    //
    void _OB_op_get_all_properties(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosPropertyService/PropertySet/delete_property:1.0
    //
    void _OB_op_delete_property(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosPropertyService/PropertySet/delete_properties:1.0
    //
    void _OB_op_delete_properties(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosPropertyService/PropertySet/delete_all_properties:1.0
    //
    void _OB_op_delete_all_properties(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosPropertyService/PropertySet/is_property_defined:1.0
    //
    void _OB_op_is_property_defined(OB::Upcall_ptr);

public:

    PropertySet() { }

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

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

    CosPropertyService::PropertySet_ptr _this();

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

    //
    // IDL:omg.org/CosPropertyService/PropertySet/define_property:1.0
    //
    virtual void define_property(const char* property_name,
                                 const ::CORBA::Any& property_value)
        throw(CosPropertyService::InvalidPropertyName,
              CosPropertyService::ConflictingProperty,
              CosPropertyService::UnsupportedTypeCode,
              CosPropertyService::UnsupportedProperty,
              CosPropertyService::ReadOnlyProperty,
              ::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertySet/define_properties:1.0
    //
    virtual void define_properties(const ::CosPropertyService::Properties& nproperties)
        throw(CosPropertyService::MultipleExceptions,
              ::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertySet/get_number_of_properties:1.0
    //
    virtual ::CORBA::ULong get_number_of_properties()
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertySet/get_all_property_names:1.0
    //
    virtual void get_all_property_names(::CORBA::ULong how_many,
                                        ::CosPropertyService::PropertyNames_out property_names,
                                        ::CosPropertyService::PropertyNamesIterator_out rest)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertySet/get_property_value:1.0
    //
    virtual ::CORBA::Any* get_property_value(const char* property_name)
        throw(CosPropertyService::PropertyNotFound,
              CosPropertyService::InvalidPropertyName,
              ::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertySet/get_properties:1.0
    //
    virtual ::CORBA::Boolean get_properties(const ::CosPropertyService::PropertyNames& property_names,
                                            ::CosPropertyService::Properties_out nproperties)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertySet/get_all_properties:1.0
    //
    virtual void get_all_properties(::CORBA::ULong how_many,
                                    ::CosPropertyService::Properties_out nproperties,
                                    ::CosPropertyService::PropertiesIterator_out rest)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertySet/delete_property:1.0
    //
    virtual void delete_property(const char* property_name)
        throw(CosPropertyService::PropertyNotFound,
              CosPropertyService::InvalidPropertyName,
              CosPropertyService::FixedProperty,
              ::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertySet/delete_properties:1.0
    //
    virtual void delete_properties(const ::CosPropertyService::PropertyNames& property_names)
        throw(CosPropertyService::MultipleExceptions,
              ::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertySet/delete_all_properties:1.0
    //
    virtual ::CORBA::Boolean delete_all_properties()
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertySet/is_property_defined:1.0
    //
    virtual ::CORBA::Boolean is_property_defined(const char* property_name)
        throw(CosPropertyService::InvalidPropertyName,
              ::CORBA::SystemException) = 0;
};

//
// IDL:omg.org/CosPropertyService/PropertySetDef:1.0
//
class PropertySetDef : virtual public POA_CosPropertyService::PropertySet
{
    PropertySetDef(const PropertySetDef&);
    void operator=(const PropertySetDef&);

protected:

    //
    // IDL:omg.org/CosPropertyService/PropertySetDef/get_allowed_property_types:1.0
    //
    void _OB_op_get_allowed_property_types(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosPropertyService/PropertySetDef/get_allowed_properties:1.0
    //
    void _OB_op_get_allowed_properties(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosPropertyService/PropertySetDef/define_property_with_mode:1.0
    //
    void _OB_op_define_property_with_mode(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosPropertyService/PropertySetDef/define_properties_with_modes:1.0
    //
    void _OB_op_define_properties_with_modes(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosPropertyService/PropertySetDef/get_property_mode:1.0
    //
    void _OB_op_get_property_mode(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosPropertyService/PropertySetDef/get_property_modes:1.0
    //
    void _OB_op_get_property_modes(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosPropertyService/PropertySetDef/set_property_mode:1.0
    //
    void _OB_op_set_property_mode(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosPropertyService/PropertySetDef/set_property_modes:1.0
    //
    void _OB_op_set_property_modes(OB::Upcall_ptr);

public:

    PropertySetDef() { }

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

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

    CosPropertyService::PropertySetDef_ptr _this();

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

    //
    // IDL:omg.org/CosPropertyService/PropertySetDef/get_allowed_property_types:1.0
    //
    virtual void get_allowed_property_types(::CosPropertyService::PropertyTypes_out property_types)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertySetDef/get_allowed_properties:1.0
    //
    virtual void get_allowed_properties(::CosPropertyService::PropertyDefs_out property_defs)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertySetDef/define_property_with_mode:1.0
    //
    virtual void define_property_with_mode(const char* property_name,
                                           const ::CORBA::Any& property_value,
                                           ::CosPropertyService::PropertyModeType property_mode)
        throw(CosPropertyService::InvalidPropertyName,
              CosPropertyService::ConflictingProperty,
              CosPropertyService::UnsupportedTypeCode,
              CosPropertyService::UnsupportedProperty,
              CosPropertyService::UnsupportedMode,
              CosPropertyService::ReadOnlyProperty,
              ::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertySetDef/define_properties_with_modes:1.0
    //
    virtual void define_properties_with_modes(const ::CosPropertyService::PropertyDefs& property_defs)
        throw(CosPropertyService::MultipleExceptions,
              ::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertySetDef/get_property_mode:1.0
    //
    virtual ::CosPropertyService::PropertyModeType get_property_mode(const char* property_name)
        throw(CosPropertyService::PropertyNotFound,
              CosPropertyService::InvalidPropertyName,
              ::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertySetDef/get_property_modes:1.0
    //
    virtual ::CORBA::Boolean get_property_modes(const ::CosPropertyService::PropertyNames& property_names,
                                                ::CosPropertyService::PropertyModes_out property_modes)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertySetDef/set_property_mode:1.0
    //
    virtual void set_property_mode(const char* property_name,
                                   ::CosPropertyService::PropertyModeType property_mode)
        throw(CosPropertyService::InvalidPropertyName,
              CosPropertyService::PropertyNotFound,
              CosPropertyService::UnsupportedMode,
              ::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertySetDef/set_property_modes:1.0
    //
    virtual void set_property_modes(const ::CosPropertyService::PropertyModes& property_modes)
        throw(CosPropertyService::MultipleExceptions,
              ::CORBA::SystemException) = 0;
};

//
// IDL:omg.org/CosPropertyService/PropertyNamesIterator:1.0
//
class PropertyNamesIterator : virtual public PortableServer::ServantBase
{
    PropertyNamesIterator(const PropertyNamesIterator&);
    void operator=(const PropertyNamesIterator&);

protected:

    //
    // IDL:omg.org/CosPropertyService/PropertyNamesIterator/reset:1.0
    //
    void _OB_op_reset(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosPropertyService/PropertyNamesIterator/next_one:1.0
    //
    void _OB_op_next_one(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosPropertyService/PropertyNamesIterator/next_n:1.0
    //
    void _OB_op_next_n(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosPropertyService/PropertyNamesIterator/destroy:1.0
    //
    void _OB_op_destroy(OB::Upcall_ptr);

public:

    PropertyNamesIterator() { }

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

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

    CosPropertyService::PropertyNamesIterator_ptr _this();

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

    //
    // IDL:omg.org/CosPropertyService/PropertyNamesIterator/reset:1.0
    //
    virtual void reset()
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertyNamesIterator/next_one:1.0
    //
    virtual ::CORBA::Boolean next_one(::CosPropertyService::PropertyName_out property_name)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertyNamesIterator/next_n:1.0
    //
    virtual ::CORBA::Boolean next_n(::CORBA::ULong how_many,
                                    ::CosPropertyService::PropertyNames_out property_names)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertyNamesIterator/destroy:1.0
    //
    virtual void destroy()
        throw(::CORBA::SystemException) = 0;
};

//
// IDL:omg.org/CosPropertyService/PropertiesIterator:1.0
//
class PropertiesIterator : virtual public PortableServer::ServantBase
{
    PropertiesIterator(const PropertiesIterator&);
    void operator=(const PropertiesIterator&);

protected:

    //
    // IDL:omg.org/CosPropertyService/PropertiesIterator/reset:1.0
    //
    void _OB_op_reset(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosPropertyService/PropertiesIterator/next_one:1.0
    //
    void _OB_op_next_one(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosPropertyService/PropertiesIterator/next_n:1.0
    //
    void _OB_op_next_n(OB::Upcall_ptr);

    //
    // IDL:omg.org/CosPropertyService/PropertiesIterator/destroy:1.0
    //
    void _OB_op_destroy(OB::Upcall_ptr);

public:

    PropertiesIterator() { }

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

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

    CosPropertyService::PropertiesIterator_ptr _this();

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

    //
    // IDL:omg.org/CosPropertyService/PropertiesIterator/reset:1.0
    //
    virtual void reset()
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertiesIterator/next_one:1.0
    //
    virtual ::CORBA::Boolean next_one(::CosPropertyService::Property_out aproperty)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertiesIterator/next_n:1.0
    //
    virtual ::CORBA::Boolean next_n(::CORBA::ULong how_many,
                                    ::CosPropertyService::Properties_out nproperties)
        throw(::CORBA::SystemException) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertiesIterator/destroy:1.0
    //
    virtual void destroy()
        throw(::CORBA::SystemException) = 0;
};

} // End of namespace POA_CosPropertyService

//
// IDL:omg.org/CosPropertyService:1.0
//
namespace OBDirectStubImpl_CosPropertyService
{

//
// IDL:omg.org/CosPropertyService/PropertySetFactory:1.0
//
class PropertySetFactory : virtual public OBStubImpl_CosPropertyService::PropertySetFactory,
                           virtual public OB::DirectStubImpl
{
    PropertySetFactory(const PropertySetFactory&);
    void operator=(const PropertySetFactory&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    PropertySetFactory() { }

#endif

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

    friend class POA_CosPropertyService::PropertySetFactory;

public:

    //
    // IDL:omg.org/CosPropertyService/PropertySetFactory/create_propertyset:1.0
    //
    virtual ::CosPropertyService::PropertySet_ptr create_propertyset();

    //
    // IDL:omg.org/CosPropertyService/PropertySetFactory/create_constrained_propertyset:1.0
    //
    virtual ::CosPropertyService::PropertySet_ptr create_constrained_propertyset(const ::CosPropertyService::PropertyTypes& allowed_property_types,
                                                                                 const ::CosPropertyService::Properties& allowed_properties);

    //
    // IDL:omg.org/CosPropertyService/PropertySetFactory/create_initial_propertyset:1.0
    //
    virtual ::CosPropertyService::PropertySet_ptr create_initial_propertyset(const ::CosPropertyService::Properties& initial_properties);
};

//
// IDL:omg.org/CosPropertyService/PropertySetDefFactory:1.0
//
class PropertySetDefFactory : virtual public OBStubImpl_CosPropertyService::PropertySetDefFactory,
                              virtual public OB::DirectStubImpl
{
    PropertySetDefFactory(const PropertySetDefFactory&);
    void operator=(const PropertySetDefFactory&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    PropertySetDefFactory() { }

#endif

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

    friend class POA_CosPropertyService::PropertySetDefFactory;

public:

    //
    // IDL:omg.org/CosPropertyService/PropertySetDefFactory/create_propertysetdef:1.0
    //
    virtual ::CosPropertyService::PropertySetDef_ptr create_propertysetdef();

    //
    // IDL:omg.org/CosPropertyService/PropertySetDefFactory/create_constrained_propertysetdef:1.0
    //
    virtual ::CosPropertyService::PropertySetDef_ptr create_constrained_propertysetdef(const ::CosPropertyService::PropertyTypes& allowed_property_types,
                                                                                       const ::CosPropertyService::PropertyDefs& allowed_property_defs);

    //
    // IDL:omg.org/CosPropertyService/PropertySetDefFactory/create_initial_propertysetdef:1.0
    //
    virtual ::CosPropertyService::PropertySetDef_ptr create_initial_propertysetdef(const ::CosPropertyService::PropertyDefs& initial_property_defs);
};

//
// IDL:omg.org/CosPropertyService/PropertySet:1.0
//
class PropertySet : virtual public OBStubImpl_CosPropertyService::PropertySet,
                    virtual public OB::DirectStubImpl
{
    PropertySet(const PropertySet&);
    void operator=(const PropertySet&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    PropertySet() { }

#endif

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

    friend class POA_CosPropertyService::PropertySet;

public:

    //
    // IDL:omg.org/CosPropertyService/PropertySet/define_property:1.0
    //
    virtual void define_property(const char* property_name,
                                 const ::CORBA::Any& property_value);

    //
    // IDL:omg.org/CosPropertyService/PropertySet/define_properties:1.0
    //
    virtual void define_properties(const ::CosPropertyService::Properties& nproperties);

    //
    // IDL:omg.org/CosPropertyService/PropertySet/get_number_of_properties:1.0
    //
    virtual ::CORBA::ULong get_number_of_properties();

    //
    // IDL:omg.org/CosPropertyService/PropertySet/get_all_property_names:1.0
    //
    virtual void get_all_property_names(::CORBA::ULong how_many,
                                        ::CosPropertyService::PropertyNames_out property_names,
                                        ::CosPropertyService::PropertyNamesIterator_out rest);

    //
    // IDL:omg.org/CosPropertyService/PropertySet/get_property_value:1.0
    //
    virtual ::CORBA::Any* get_property_value(const char* property_name);

    //
    // IDL:omg.org/CosPropertyService/PropertySet/get_properties:1.0
    //
    virtual ::CORBA::Boolean get_properties(const ::CosPropertyService::PropertyNames& property_names,
                                            ::CosPropertyService::Properties_out nproperties);

    //
    // IDL:omg.org/CosPropertyService/PropertySet/get_all_properties:1.0
    //
    virtual void get_all_properties(::CORBA::ULong how_many,
                                    ::CosPropertyService::Properties_out nproperties,
                                    ::CosPropertyService::PropertiesIterator_out rest);

    //
    // IDL:omg.org/CosPropertyService/PropertySet/delete_property:1.0
    //
    virtual void delete_property(const char* property_name);

    //
    // IDL:omg.org/CosPropertyService/PropertySet/delete_properties:1.0
    //
    virtual void delete_properties(const ::CosPropertyService::PropertyNames& property_names);

    //
    // IDL:omg.org/CosPropertyService/PropertySet/delete_all_properties:1.0
    //
    virtual ::CORBA::Boolean delete_all_properties();

    //
    // IDL:omg.org/CosPropertyService/PropertySet/is_property_defined:1.0
    //
    virtual ::CORBA::Boolean is_property_defined(const char* property_name);
};

//
// IDL:omg.org/CosPropertyService/PropertySetDef:1.0
//
class PropertySetDef : virtual public OBStubImpl_CosPropertyService::PropertySetDef,
                       virtual public OBDirectStubImpl_CosPropertyService::PropertySet
{
    PropertySetDef(const PropertySetDef&);
    void operator=(const PropertySetDef&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    PropertySetDef() { }

#endif

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

    friend class POA_CosPropertyService::PropertySetDef;

public:

    //
    // IDL:omg.org/CosPropertyService/PropertySetDef/get_allowed_property_types:1.0
    //
    virtual void get_allowed_property_types(::CosPropertyService::PropertyTypes_out property_types);

    //
    // IDL:omg.org/CosPropertyService/PropertySetDef/get_allowed_properties:1.0
    //
    virtual void get_allowed_properties(::CosPropertyService::PropertyDefs_out property_defs);

    //
    // IDL:omg.org/CosPropertyService/PropertySetDef/define_property_with_mode:1.0
    //
    virtual void define_property_with_mode(const char* property_name,
                                           const ::CORBA::Any& property_value,
                                           ::CosPropertyService::PropertyModeType property_mode);

    //
    // IDL:omg.org/CosPropertyService/PropertySetDef/define_properties_with_modes:1.0
    //
    virtual void define_properties_with_modes(const ::CosPropertyService::PropertyDefs& property_defs);

    //
    // IDL:omg.org/CosPropertyService/PropertySetDef/get_property_mode:1.0
    //
    virtual ::CosPropertyService::PropertyModeType get_property_mode(const char* property_name);

    //
    // IDL:omg.org/CosPropertyService/PropertySetDef/get_property_modes:1.0
    //
    virtual ::CORBA::Boolean get_property_modes(const ::CosPropertyService::PropertyNames& property_names,
                                                ::CosPropertyService::PropertyModes_out property_modes);

    //
    // IDL:omg.org/CosPropertyService/PropertySetDef/set_property_mode:1.0
    //
    virtual void set_property_mode(const char* property_name,
                                   ::CosPropertyService::PropertyModeType property_mode);

    //
    // IDL:omg.org/CosPropertyService/PropertySetDef/set_property_modes:1.0
    //
    virtual void set_property_modes(const ::CosPropertyService::PropertyModes& property_modes);
};

//
// IDL:omg.org/CosPropertyService/PropertyNamesIterator:1.0
//
class PropertyNamesIterator : virtual public OBStubImpl_CosPropertyService::PropertyNamesIterator,
                              virtual public OB::DirectStubImpl
{
    PropertyNamesIterator(const PropertyNamesIterator&);
    void operator=(const PropertyNamesIterator&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    PropertyNamesIterator() { }

#endif

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

    friend class POA_CosPropertyService::PropertyNamesIterator;

public:

    //
    // IDL:omg.org/CosPropertyService/PropertyNamesIterator/reset:1.0
    //
    virtual void reset();

    //
    // IDL:omg.org/CosPropertyService/PropertyNamesIterator/next_one:1.0
    //
    virtual ::CORBA::Boolean next_one(::CosPropertyService::PropertyName_out property_name);

    //
    // IDL:omg.org/CosPropertyService/PropertyNamesIterator/next_n:1.0
    //
    virtual ::CORBA::Boolean next_n(::CORBA::ULong how_many,
                                    ::CosPropertyService::PropertyNames_out property_names);

    //
    // IDL:omg.org/CosPropertyService/PropertyNamesIterator/destroy:1.0
    //
    virtual void destroy();
};

//
// IDL:omg.org/CosPropertyService/PropertiesIterator:1.0
//
class PropertiesIterator : virtual public OBStubImpl_CosPropertyService::PropertiesIterator,
                           virtual public OB::DirectStubImpl
{
    PropertiesIterator(const PropertiesIterator&);
    void operator=(const PropertiesIterator&);

protected:

#ifdef HAVE_VCPLUSPLUS_BUGS

    PropertiesIterator() { }

#endif

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

    friend class POA_CosPropertyService::PropertiesIterator;

public:

    //
    // IDL:omg.org/CosPropertyService/PropertiesIterator/reset:1.0
    //
    virtual void reset();

    //
    // IDL:omg.org/CosPropertyService/PropertiesIterator/next_one:1.0
    //
    virtual ::CORBA::Boolean next_one(::CosPropertyService::Property_out aproperty);

    //
    // IDL:omg.org/CosPropertyService/PropertiesIterator/next_n:1.0
    //
    virtual ::CORBA::Boolean next_n(::CORBA::ULong how_many,
                                    ::CosPropertyService::Properties_out nproperties);

    //
    // IDL:omg.org/CosPropertyService/PropertiesIterator/destroy:1.0
    //
    virtual void destroy();
};

} // End of namespace OBDirectStubImpl_CosPropertyService

#endif
