// ********************************************************************** // // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved. // // This copy of Ice is licensed to you under the terms described in the // ICE_LICENSE file included in this distribution. // // ********************************************************************** #ifndef ICE_PROPERTIES_ADMIN_I_H #define ICE_PROPERTIES_ADMIN_I_H #include #include #include #include #include #ifdef ICE_CPP11_MAPPING #include #endif namespace IceInternal { class PropertiesAdminI : public Ice::PropertiesAdmin, public Ice::NativePropertiesAdmin, #ifdef ICE_CPP11_MAPPING public std::enable_shared_from_this, #endif private IceUtil::RecMutex { public: PropertiesAdminI(const InstancePtr&); #ifdef ICE_CPP11_MAPPING virtual std::string getProperty(std::string, const Ice::Current&) override; virtual Ice::PropertyDict getPropertiesForPrefix(std::string, const Ice::Current&) override; virtual void setProperties(::Ice::PropertyDict, const Ice::Current&) override; virtual std::function addUpdateCallback(std::function) override; void removeUpdateCallback(std::list>::iterator); #else virtual std::string getProperty(const std::string&, const Ice::Current&); virtual Ice::PropertyDict getPropertiesForPrefix(const std::string&, const Ice::Current&); virtual void setProperties(const Ice::PropertyDict&, const Ice::Current&); virtual void addUpdateCallback(const Ice::PropertiesAdminUpdateCallbackPtr&); virtual void removeUpdateCallback(const Ice::PropertiesAdminUpdateCallbackPtr&); #endif private: const Ice::PropertiesPtr _properties; const Ice::LoggerPtr _logger; #ifdef ICE_CPP11_MAPPING std::list> _updateCallbacks; #else std::vector _updateCallbacks; #endif }; ICE_DEFINE_PTR(PropertiesAdminIPtr, PropertiesAdminI); } #endif