// ********************************************************************** // // Copyright (c) 2003-2018 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_ENDPOINT_FACTORY_MANAGER_H #define ICE_ENDPOINT_FACTORY_MANAGER_H #include #include #include #include #include #include namespace Ice { class InputStream; } namespace IceInternal { class EndpointFactoryManager : public ::IceUtil::Shared, public ::IceUtil::Mutex { public: void initialize() const; void add(const EndpointFactoryPtr&); EndpointFactoryPtr get(::Ice::Short) const; EndpointIPtr create(const std::string&, bool) const; EndpointIPtr read(Ice::InputStream*) const; private: EndpointFactoryManager(const InstancePtr&); void destroy(); friend class Instance; InstancePtr _instance; std::vector _factories; }; } #endif