// **********************************************************************
//
// Generated by the ORBacus IDL-to-C++ Translator
//
// Copyright (c) 1998
// Object-Oriented Concepts, Inc.
// Billerica, MA, USA
//
// Copyright (c) 1998
// Object-Oriented Concepts GmbH
// Ettlingen, Germany
//
// All Rights Reserved
//
// **********************************************************************

// Version: 3.0
// License: non-commercial

#ifndef __CosProperty_skel_h__
#define __CosProperty_skel_h__

#include <OB/CosProperty.h>

//
// IDL:omg.org/CosPropertyService:1.0
//

//
// IDL:omg.org/CosPropertyService/PropertySetFactory:1.0
//
class CosPropertyService_PropertySetFactory_skel : virtual public CosPropertyService_PropertySetFactory,
                                                   virtual public CORBA_Object_skel
{
    CosPropertyService_PropertySetFactory_skel(const CosPropertyService_PropertySetFactory_skel&);
    void operator=(const CosPropertyService_PropertySetFactory_skel&);

public:

    CosPropertyService_PropertySetFactory_skel() { }

    CosPropertyService_PropertySetFactory_ptr _this() { return CosPropertyService_PropertySetFactory::_duplicate(this); }

    virtual OBDispatchStatus _OB_dispatch(const char*, OBBuffer&, bool, CORBA_ULong, CORBA_ULong);

    //
    // IDL:omg.org/CosPropertyService/PropertySetFactory/create_propertyset:1.0
    //
    virtual CosPropertyService_PropertySet_ptr create_propertyset() = 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) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertySetFactory/create_initial_propertyset:1.0
    //
    virtual CosPropertyService_PropertySet_ptr create_initial_propertyset(const CosPropertyService_Properties& initial_properties) = 0;
};

//
// IDL:omg.org/CosPropertyService/PropertySetDefFactory:1.0
//
class CosPropertyService_PropertySetDefFactory_skel : virtual public CosPropertyService_PropertySetDefFactory,
                                                      virtual public CORBA_Object_skel
{
    CosPropertyService_PropertySetDefFactory_skel(const CosPropertyService_PropertySetDefFactory_skel&);
    void operator=(const CosPropertyService_PropertySetDefFactory_skel&);

public:

    CosPropertyService_PropertySetDefFactory_skel() { }

    CosPropertyService_PropertySetDefFactory_ptr _this() { return CosPropertyService_PropertySetDefFactory::_duplicate(this); }

    virtual OBDispatchStatus _OB_dispatch(const char*, OBBuffer&, bool, CORBA_ULong, CORBA_ULong);

    //
    // IDL:omg.org/CosPropertyService/PropertySetDefFactory/create_propertysetdef:1.0
    //
    virtual CosPropertyService_PropertySetDef_ptr create_propertysetdef() = 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) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertySetDefFactory/create_initial_propertysetdef:1.0
    //
    virtual CosPropertyService_PropertySetDef_ptr create_initial_propertysetdef(const CosPropertyService_PropertyDefs& initial_property_defs) = 0;
};

//
// IDL:omg.org/CosPropertyService/PropertySet:1.0
//
class CosPropertyService_PropertySet_skel : virtual public CosPropertyService_PropertySet,
                                            virtual public CORBA_Object_skel
{
    CosPropertyService_PropertySet_skel(const CosPropertyService_PropertySet_skel&);
    void operator=(const CosPropertyService_PropertySet_skel&);

public:

    CosPropertyService_PropertySet_skel() { }

    CosPropertyService_PropertySet_ptr _this() { return CosPropertyService_PropertySet::_duplicate(this); }

    virtual OBDispatchStatus _OB_dispatch(const char*, OBBuffer&, bool, CORBA_ULong, CORBA_ULong);

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

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

    //
    // IDL:omg.org/CosPropertyService/PropertySet/get_number_of_properties:1.0
    //
    virtual CORBA_ULong get_number_of_properties() = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertySet/get_all_property_names:1.0
    //
    virtual void get_all_property_names(CORBA_ULong how_many,
                                        CosPropertyService_PropertyNames*& property_names,
                                        CosPropertyService_PropertyNamesIterator_ptr& rest) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertySet/get_property_value:1.0
    //
    virtual CORBA_Any* get_property_value(const char* property_name) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertySet/get_properties:1.0
    //
    virtual CORBA_Boolean get_properties(const CosPropertyService_PropertyNames& property_names,
                                         CosPropertyService_Properties*& nproperties) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertySet/get_all_properties:1.0
    //
    virtual void get_all_properties(CORBA_ULong how_many,
                                    CosPropertyService_Properties*& nproperties,
                                    CosPropertyService_PropertiesIterator_ptr& rest) = 0;

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

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

    //
    // IDL:omg.org/CosPropertyService/PropertySet/delete_all_properties:1.0
    //
    virtual CORBA_Boolean delete_all_properties() = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertySet/is_property_defined:1.0
    //
    virtual CORBA_Boolean is_property_defined(const char* property_name) = 0;
};

//
// IDL:omg.org/CosPropertyService/PropertySetDef:1.0
//
class CosPropertyService_PropertySetDef_skel : virtual public CosPropertyService_PropertySetDef,
                                               virtual public CosPropertyService_PropertySet_skel
{
    CosPropertyService_PropertySetDef_skel(const CosPropertyService_PropertySetDef_skel&);
    void operator=(const CosPropertyService_PropertySetDef_skel&);

public:

    CosPropertyService_PropertySetDef_skel() { }

    CosPropertyService_PropertySetDef_ptr _this() { return CosPropertyService_PropertySetDef::_duplicate(this); }

    virtual OBDispatchStatus _OB_dispatch(const char*, OBBuffer&, bool, CORBA_ULong, CORBA_ULong);

    //
    // IDL:omg.org/CosPropertyService/PropertySetDef/get_allowed_property_types:1.0
    //
    virtual void get_allowed_property_types(CosPropertyService_PropertyTypes*& property_types) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertySetDef/get_allowed_properties:1.0
    //
    virtual void get_allowed_properties(CosPropertyService_PropertyDefs*& property_defs) = 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) = 0;

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

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

    //
    // IDL:omg.org/CosPropertyService/PropertySetDef/get_property_modes:1.0
    //
    virtual CORBA_Boolean get_property_modes(const CosPropertyService_PropertyNames& property_names,
                                             CosPropertyService_PropertyModes*& property_modes) = 0;

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

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

//
// IDL:omg.org/CosPropertyService/PropertyNamesIterator:1.0
//
class CosPropertyService_PropertyNamesIterator_skel : virtual public CosPropertyService_PropertyNamesIterator,
                                                      virtual public CORBA_Object_skel
{
    CosPropertyService_PropertyNamesIterator_skel(const CosPropertyService_PropertyNamesIterator_skel&);
    void operator=(const CosPropertyService_PropertyNamesIterator_skel&);

public:

    CosPropertyService_PropertyNamesIterator_skel() { }

    CosPropertyService_PropertyNamesIterator_ptr _this() { return CosPropertyService_PropertyNamesIterator::_duplicate(this); }

    virtual OBDispatchStatus _OB_dispatch(const char*, OBBuffer&, bool, CORBA_ULong, CORBA_ULong);

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

    //
    // IDL:omg.org/CosPropertyService/PropertyNamesIterator/next_one:1.0
    //
    virtual CORBA_Boolean next_one(CosPropertyService_PropertyName& property_name) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertyNamesIterator/next_n:1.0
    //
    virtual CORBA_Boolean next_n(CORBA_ULong how_many,
                                 CosPropertyService_PropertyNames*& property_names) = 0;

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

//
// IDL:omg.org/CosPropertyService/PropertiesIterator:1.0
//
class CosPropertyService_PropertiesIterator_skel : virtual public CosPropertyService_PropertiesIterator,
                                                   virtual public CORBA_Object_skel
{
    CosPropertyService_PropertiesIterator_skel(const CosPropertyService_PropertiesIterator_skel&);
    void operator=(const CosPropertyService_PropertiesIterator_skel&);

public:

    CosPropertyService_PropertiesIterator_skel() { }

    CosPropertyService_PropertiesIterator_ptr _this() { return CosPropertyService_PropertiesIterator::_duplicate(this); }

    virtual OBDispatchStatus _OB_dispatch(const char*, OBBuffer&, bool, CORBA_ULong, CORBA_ULong);

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

    //
    // IDL:omg.org/CosPropertyService/PropertiesIterator/next_one:1.0
    //
    virtual CORBA_Boolean next_one(CosPropertyService_Property*& aproperty) = 0;

    //
    // IDL:omg.org/CosPropertyService/PropertiesIterator/next_n:1.0
    //
    virtual CORBA_Boolean next_n(CORBA_ULong how_many,
                                 CosPropertyService_Properties*& nproperties) = 0;

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

#endif
