// ********************************************************************** // // Copyright (c) 2003-2005 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_OBJECT_ADAPTER_FACTORY_H #define ICE_OBJECT_ADAPTER_FACTORY_H #include #include #include namespace IceInternal { class ObjectAdapterFactory : public ::IceUtil::Shared, public ::IceUtil::Monitor< ::IceUtil::RecMutex> { public: void shutdown(); void waitForShutdown(); ::Ice::ObjectAdapterPtr createObjectAdapter(const std::string&, const std::string&); ::Ice::ObjectAdapterPtr findObjectAdapter(const ::Ice::ObjectPrx&); void flushBatchRequests() const; private: ObjectAdapterFactory(const InstancePtr&, const ::Ice::CommunicatorPtr&); virtual ~ObjectAdapterFactory(); friend class Instance; InstancePtr _instance; ::Ice::CommunicatorPtr _communicator; std::map _adapters; bool _waitForShutdown; }; } #endif