// ********************************************************************** // // Copyright (c) 2003-2005 ZeroC, Inc. All rights reserved. // // This copy of Ice-E is licensed to you under the terms described in the // ICEE_LICENSE file included in this distribution. // // ********************************************************************** #ifndef ICEE_OUTGOING_CONNECTION_FACTORY_H #define ICEE_OUTGOING_CONNECTION_FACTORY_H #include #include #include #include #include #ifdef ICEE_HAS_ROUTER # include #endif #include #include #include #include namespace IceInternal { class OutgoingConnectionFactory : public IceUtil::Shared, public IceUtil::Monitor { public: void destroy(); void waitUntilFinished(); Ice::ConnectionPtr create(const std::vector&); #ifdef ICEE_HAS_ROUTER void setRouterInfo(const RouterInfoPtr&); #endif void removeAdapter(const ::Ice::ObjectAdapterPtr&); #ifdef ICEE_HAS_BATCH void flushBatchRequests(); #endif private: OutgoingConnectionFactory(const InstancePtr&); virtual ~OutgoingConnectionFactory(); friend class Instance; const InstancePtr _instance; bool _destroyed; std::multimap _connections; std::set _pending; // Endpoints for which connection establishment is pending. }; } #endif