// -*- C++ -*-
//
// $Id$

// ****  Code generated by the The ACE ORB (TAO) IDL Compiler ****
// TAO and the TAO IDL Compiler have been developed by:
//       Center for Distributed Object Computing
//       Washington University
//       St. Louis, MO
//       USA
//       http://www.cs.wustl.edu/~schmidt/doc-center.html
// and
//       Distributed Object Computing Laboratory
//       University of California at Irvine
//       Irvine, CA
//       USA
//       http://doc.ece.uci.edu/
// and
//       Institute for Software Integrated Systems
//       Vanderbilt University
//       Nashville, TN
//       USA
//       http://www.isis.vanderbilt.edu/
//
// Information about TAO is available at:
//     http://www.cs.wustl.edu/~schmidt/TAO.html

// TAO_IDL - Generated from
// be/be_codegen.cpp:546

#ifndef _TAO_IDL_COSPROPERTYSERVICES_T_H_
#define _TAO_IDL_COSPROPERTYSERVICES_T_H_

#include /**/ "ace/pre.h"

#if defined(_MSC_VER)
#if (_MSC_VER >= 1200)
#pragma warning(push)
#endif /* _MSC_VER >= 1200 */
#pragma warning(disable:4250)
#endif /* _MSC_VER */


// TAO_IDL - Generated from 
// be/be_visitor_root/root_sth.cpp:116

#if defined (ACE_HAS_USING_KEYWORD)
namespace POA_CosPropertyService
{
  
  // TAO_IDL - Generated from
  // be/be_visitor_interface/tie_sh.cpp:87
  
  // TIE class: Refer to CORBA v2.2, Section 20.34.4
  template <class T>
  class  PropertySetFactory_tie : public PropertySetFactory
  {
  public:
    PropertySetFactory_tie (T &t);
    // the T& ctor
    PropertySetFactory_tie (T &t, PortableServer::POA_ptr poa);
    // ctor taking a POA
    PropertySetFactory_tie (T *tp, CORBA::Boolean release = 1);
    // ctor taking pointer and an ownership flag
    PropertySetFactory_tie (
        T *tp,
        PortableServer::POA_ptr poa,
        CORBA::Boolean release = 1
      );
    // ctor with T*, ownership flag and a POA
    ~PropertySetFactory_tie (void);
    // dtor
    
    // TIE specific functions
    T *_tied_object (void);
    // return the underlying object
    void _tied_object (T &obj);
    // set the underlying object
    void _tied_object (T *obj, CORBA::Boolean release = 1);
    // set the underlying object and the ownership flag
    CORBA::Boolean _is_owner (void);
    // do we own it
    void _is_owner (CORBA::Boolean b);
    // set the ownership
    
    // overridden ServantBase operations
    PortableServer::POA_ptr _default_POA (
        ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS
      );
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    ::CosPropertyService::PropertySet_ptr create_propertyset (
        ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    ::CosPropertyService::PropertySet_ptr create_constrained_propertyset (
        const ::CosPropertyService::PropertyTypes & allowed_property_types,
        const ::CosPropertyService::Properties & allowed_properties
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException,
        ::CosPropertyService::ConstraintNotSupported
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    ::CosPropertyService::PropertySet_ptr create_initial_propertyset (
        const ::CosPropertyService::Properties & initial_properties
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException,
        ::CosPropertyService::MultipleExceptions
      ));
  
  private:
    T *ptr_;
    PortableServer::POA_var poa_;
    CORBA::Boolean rel_;
    
    // copy and assignment are not allowed
    PropertySetFactory_tie (const PropertySetFactory_tie &);
    void operator= (const PropertySetFactory_tie &);
  };
  
  // TAO_IDL - Generated from
  // be/be_visitor_interface/tie_sh.cpp:87
  
  // TIE class: Refer to CORBA v2.2, Section 20.34.4
  template <class T>
  class  PropertySetDefFactory_tie : public PropertySetDefFactory
  {
  public:
    PropertySetDefFactory_tie (T &t);
    // the T& ctor
    PropertySetDefFactory_tie (T &t, PortableServer::POA_ptr poa);
    // ctor taking a POA
    PropertySetDefFactory_tie (T *tp, CORBA::Boolean release = 1);
    // ctor taking pointer and an ownership flag
    PropertySetDefFactory_tie (
        T *tp,
        PortableServer::POA_ptr poa,
        CORBA::Boolean release = 1
      );
    // ctor with T*, ownership flag and a POA
    ~PropertySetDefFactory_tie (void);
    // dtor
    
    // TIE specific functions
    T *_tied_object (void);
    // return the underlying object
    void _tied_object (T &obj);
    // set the underlying object
    void _tied_object (T *obj, CORBA::Boolean release = 1);
    // set the underlying object and the ownership flag
    CORBA::Boolean _is_owner (void);
    // do we own it
    void _is_owner (CORBA::Boolean b);
    // set the ownership
    
    // overridden ServantBase operations
    PortableServer::POA_ptr _default_POA (
        ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS
      );
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    ::CosPropertyService::PropertySetDef_ptr create_propertysetdef (
        ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    ::CosPropertyService::PropertySetDef_ptr create_constrained_propertysetdef (
        const ::CosPropertyService::PropertyTypes & allowed_property_types,
        const ::CosPropertyService::PropertyDefs & allowed_property_defs
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException,
        ::CosPropertyService::ConstraintNotSupported
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    ::CosPropertyService::PropertySetDef_ptr create_initial_propertysetdef (
        const ::CosPropertyService::PropertyDefs & initial_property_defs
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException,
        ::CosPropertyService::MultipleExceptions
      ));
  
  private:
    T *ptr_;
    PortableServer::POA_var poa_;
    CORBA::Boolean rel_;
    
    // copy and assignment are not allowed
    PropertySetDefFactory_tie (const PropertySetDefFactory_tie &);
    void operator= (const PropertySetDefFactory_tie &);
  };
  
  // TAO_IDL - Generated from
  // be/be_visitor_interface/tie_sh.cpp:87
  
  // TIE class: Refer to CORBA v2.2, Section 20.34.4
  template <class T>
  class  PropertySet_tie : public PropertySet
  {
  public:
    PropertySet_tie (T &t);
    // the T& ctor
    PropertySet_tie (T &t, PortableServer::POA_ptr poa);
    // ctor taking a POA
    PropertySet_tie (T *tp, CORBA::Boolean release = 1);
    // ctor taking pointer and an ownership flag
    PropertySet_tie (
        T *tp,
        PortableServer::POA_ptr poa,
        CORBA::Boolean release = 1
      );
    // ctor with T*, ownership flag and a POA
    ~PropertySet_tie (void);
    // dtor
    
    // TIE specific functions
    T *_tied_object (void);
    // return the underlying object
    void _tied_object (T &obj);
    // set the underlying object
    void _tied_object (T *obj, CORBA::Boolean release = 1);
    // set the underlying object and the ownership flag
    CORBA::Boolean _is_owner (void);
    // do we own it
    void _is_owner (CORBA::Boolean b);
    // set the ownership
    
    // overridden ServantBase operations
    PortableServer::POA_ptr _default_POA (
        ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS
      );
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    void define_property (
        const char * property_name,
        const ::CORBA::Any & property_value
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException,
        ::CosPropertyService::InvalidPropertyName,
        ::CosPropertyService::ConflictingProperty,
        ::CosPropertyService::UnsupportedTypeCode,
        ::CosPropertyService::UnsupportedProperty,
        ::CosPropertyService::ReadOnlyProperty
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    void define_properties (
        const ::CosPropertyService::Properties & nproperties
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException,
        ::CosPropertyService::MultipleExceptions
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    CORBA::ULong get_number_of_properties (
        ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    void get_all_property_names (
        ::CORBA::ULong how_many,
        ::CosPropertyService::PropertyNames_out property_names,
        ::CosPropertyService::PropertyNamesIterator_out rest
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    CORBA::Any * get_property_value (
        const char * property_name
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException,
        ::CosPropertyService::PropertyNotFound,
        ::CosPropertyService::InvalidPropertyName
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    CORBA::Boolean get_properties (
        const ::CosPropertyService::PropertyNames & property_names,
        ::CosPropertyService::Properties_out nproperties
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    void get_all_properties (
        ::CORBA::ULong how_many,
        ::CosPropertyService::Properties_out nproperties,
        ::CosPropertyService::PropertiesIterator_out rest
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    void delete_property (
        const char * property_name
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException,
        ::CosPropertyService::PropertyNotFound,
        ::CosPropertyService::InvalidPropertyName,
        ::CosPropertyService::FixedProperty
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    void delete_properties (
        const ::CosPropertyService::PropertyNames & property_names
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException,
        ::CosPropertyService::MultipleExceptions
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    CORBA::Boolean delete_all_properties (
        ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    CORBA::Boolean is_property_defined (
        const char * property_name
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException,
        ::CosPropertyService::InvalidPropertyName
      ));
  
  private:
    T *ptr_;
    PortableServer::POA_var poa_;
    CORBA::Boolean rel_;
    
    // copy and assignment are not allowed
    PropertySet_tie (const PropertySet_tie &);
    void operator= (const PropertySet_tie &);
  };
  
  // TAO_IDL - Generated from
  // be/be_visitor_interface/tie_sh.cpp:87
  
  // TIE class: Refer to CORBA v2.2, Section 20.34.4
  template <class T>
  class  PropertySetDef_tie : public PropertySetDef
  {
  public:
    PropertySetDef_tie (T &t);
    // the T& ctor
    PropertySetDef_tie (T &t, PortableServer::POA_ptr poa);
    // ctor taking a POA
    PropertySetDef_tie (T *tp, CORBA::Boolean release = 1);
    // ctor taking pointer and an ownership flag
    PropertySetDef_tie (
        T *tp,
        PortableServer::POA_ptr poa,
        CORBA::Boolean release = 1
      );
    // ctor with T*, ownership flag and a POA
    ~PropertySetDef_tie (void);
    // dtor
    
    // TIE specific functions
    T *_tied_object (void);
    // return the underlying object
    void _tied_object (T &obj);
    // set the underlying object
    void _tied_object (T *obj, CORBA::Boolean release = 1);
    // set the underlying object and the ownership flag
    CORBA::Boolean _is_owner (void);
    // do we own it
    void _is_owner (CORBA::Boolean b);
    // set the ownership
    
    // overridden ServantBase operations
    PortableServer::POA_ptr _default_POA (
        ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS
      );
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    void define_property (
        const char * property_name,
        const ::CORBA::Any & property_value
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException,
        ::CosPropertyService::InvalidPropertyName,
        ::CosPropertyService::ConflictingProperty,
        ::CosPropertyService::UnsupportedTypeCode,
        ::CosPropertyService::UnsupportedProperty,
        ::CosPropertyService::ReadOnlyProperty
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    void define_properties (
        const ::CosPropertyService::Properties & nproperties
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException,
        ::CosPropertyService::MultipleExceptions
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    CORBA::ULong get_number_of_properties (
        ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    void get_all_property_names (
        ::CORBA::ULong how_many,
        ::CosPropertyService::PropertyNames_out property_names,
        ::CosPropertyService::PropertyNamesIterator_out rest
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    CORBA::Any * get_property_value (
        const char * property_name
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException,
        ::CosPropertyService::PropertyNotFound,
        ::CosPropertyService::InvalidPropertyName
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    CORBA::Boolean get_properties (
        const ::CosPropertyService::PropertyNames & property_names,
        ::CosPropertyService::Properties_out nproperties
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    void get_all_properties (
        ::CORBA::ULong how_many,
        ::CosPropertyService::Properties_out nproperties,
        ::CosPropertyService::PropertiesIterator_out rest
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    void delete_property (
        const char * property_name
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException,
        ::CosPropertyService::PropertyNotFound,
        ::CosPropertyService::InvalidPropertyName,
        ::CosPropertyService::FixedProperty
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    void delete_properties (
        const ::CosPropertyService::PropertyNames & property_names
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException,
        ::CosPropertyService::MultipleExceptions
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    CORBA::Boolean delete_all_properties (
        ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    CORBA::Boolean is_property_defined (
        const char * property_name
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException,
        ::CosPropertyService::InvalidPropertyName
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    void get_allowed_property_types (
        ::CosPropertyService::PropertyTypes_out property_types
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    void get_allowed_properties (
        ::CosPropertyService::PropertyDefs_out property_defs
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    void define_property_with_mode (
        const char * property_name,
        const ::CORBA::Any & property_value,
        ::CosPropertyService::PropertyModeType property_mode
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException,
        ::CosPropertyService::InvalidPropertyName,
        ::CosPropertyService::ConflictingProperty,
        ::CosPropertyService::UnsupportedTypeCode,
        ::CosPropertyService::UnsupportedProperty,
        ::CosPropertyService::UnsupportedMode,
        ::CosPropertyService::ReadOnlyProperty
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    void define_properties_with_modes (
        const ::CosPropertyService::PropertyDefs & property_defs
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException,
        ::CosPropertyService::MultipleExceptions
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    ::CosPropertyService::PropertyModeType get_property_mode (
        const char * property_name
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException,
        ::CosPropertyService::PropertyNotFound,
        ::CosPropertyService::InvalidPropertyName
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    CORBA::Boolean get_property_modes (
        const ::CosPropertyService::PropertyNames & property_names,
        ::CosPropertyService::PropertyModes_out property_modes
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    void set_property_mode (
        const char * property_name,
        ::CosPropertyService::PropertyModeType property_mode
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException,
        ::CosPropertyService::InvalidPropertyName,
        ::CosPropertyService::PropertyNotFound,
        ::CosPropertyService::UnsupportedMode
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    void set_property_modes (
        const ::CosPropertyService::PropertyModes & property_modes
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException,
        ::CosPropertyService::MultipleExceptions
      ));
  
  private:
    T *ptr_;
    PortableServer::POA_var poa_;
    CORBA::Boolean rel_;
    
    // copy and assignment are not allowed
    PropertySetDef_tie (const PropertySetDef_tie &);
    void operator= (const PropertySetDef_tie &);
  };
  
  // TAO_IDL - Generated from
  // be/be_visitor_interface/tie_sh.cpp:87
  
  // TIE class: Refer to CORBA v2.2, Section 20.34.4
  template <class T>
  class  PropertyNamesIterator_tie : public PropertyNamesIterator
  {
  public:
    PropertyNamesIterator_tie (T &t);
    // the T& ctor
    PropertyNamesIterator_tie (T &t, PortableServer::POA_ptr poa);
    // ctor taking a POA
    PropertyNamesIterator_tie (T *tp, CORBA::Boolean release = 1);
    // ctor taking pointer and an ownership flag
    PropertyNamesIterator_tie (
        T *tp,
        PortableServer::POA_ptr poa,
        CORBA::Boolean release = 1
      );
    // ctor with T*, ownership flag and a POA
    ~PropertyNamesIterator_tie (void);
    // dtor
    
    // TIE specific functions
    T *_tied_object (void);
    // return the underlying object
    void _tied_object (T &obj);
    // set the underlying object
    void _tied_object (T *obj, CORBA::Boolean release = 1);
    // set the underlying object and the ownership flag
    CORBA::Boolean _is_owner (void);
    // do we own it
    void _is_owner (CORBA::Boolean b);
    // set the ownership
    
    // overridden ServantBase operations
    PortableServer::POA_ptr _default_POA (
        ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS
      );
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    void reset (
        ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    CORBA::Boolean next_one (
        CORBA::String_out property_name
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    CORBA::Boolean next_n (
        ::CORBA::ULong how_many,
        ::CosPropertyService::PropertyNames_out property_names
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    void destroy (
        ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException
      ));
  
  private:
    T *ptr_;
    PortableServer::POA_var poa_;
    CORBA::Boolean rel_;
    
    // copy and assignment are not allowed
    PropertyNamesIterator_tie (const PropertyNamesIterator_tie &);
    void operator= (const PropertyNamesIterator_tie &);
  };
  
  // TAO_IDL - Generated from
  // be/be_visitor_interface/tie_sh.cpp:87
  
  // TIE class: Refer to CORBA v2.2, Section 20.34.4
  template <class T>
  class  PropertiesIterator_tie : public PropertiesIterator
  {
  public:
    PropertiesIterator_tie (T &t);
    // the T& ctor
    PropertiesIterator_tie (T &t, PortableServer::POA_ptr poa);
    // ctor taking a POA
    PropertiesIterator_tie (T *tp, CORBA::Boolean release = 1);
    // ctor taking pointer and an ownership flag
    PropertiesIterator_tie (
        T *tp,
        PortableServer::POA_ptr poa,
        CORBA::Boolean release = 1
      );
    // ctor with T*, ownership flag and a POA
    ~PropertiesIterator_tie (void);
    // dtor
    
    // TIE specific functions
    T *_tied_object (void);
    // return the underlying object
    void _tied_object (T &obj);
    // set the underlying object
    void _tied_object (T *obj, CORBA::Boolean release = 1);
    // set the underlying object and the ownership flag
    CORBA::Boolean _is_owner (void);
    // do we own it
    void _is_owner (CORBA::Boolean b);
    // set the ownership
    
    // overridden ServantBase operations
    PortableServer::POA_ptr _default_POA (
        ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS
      );
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    void reset (
        ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    CORBA::Boolean next_one (
        ::CosPropertyService::Property_out aproperty
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    CORBA::Boolean next_n (
        ::CORBA::ULong how_many,
        ::CosPropertyService::Properties_out nproperties
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/tie_sh.cpp:60
    
    void destroy (
        ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException
      ));
  
  private:
    T *ptr_;
    PortableServer::POA_var poa_;
    CORBA::Boolean rel_;
    
    // copy and assignment are not allowed
    PropertiesIterator_tie (const PropertiesIterator_tie &);
    void operator= (const PropertiesIterator_tie &);
  };
} // module CosPropertyService
#endif /* ACE_HAS_USING_KEYWORD */

// TAO_IDL - Generated from 
// be/be_codegen.cpp:1091

#if defined (__ACE_INLINE__)
#include "CosPropertyServiceS_T.inl"
#endif /* defined __ACE_INLINE__ */

#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
#include "CosPropertyServiceS_T.cpp"
#endif /* defined REQUIRED SOURCE */

#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
#pragma implementation ("CosPropertyServiceS_T.cpp")
#endif /* defined REQUIRED PRAGMA */

#if defined(_MSC_VER) && (_MSC_VER >= 1200)
#pragma warning(pop)
#endif /* _MSC_VER */

#include /**/ "ace/post.h"
#endif /* ifndef */
