// ********************************************************************** // // Copyright (c) 2002 // MutableRealms, Inc. // Huntsville, AL, USA // // All Rights Reserved // // ********************************************************************** #ifndef ICE_REFERENCE_FACTORY_H #define ICE_REFERENCE_FACTORY_H #include #include #include #include // For Reference::Mode #include namespace IceInternal { class ReferenceFactory : public ::IceUtil::Shared, public ::IceUtil::Mutex { public: ReferencePtr create(const Ice::Identity&, const std::string&, Reference::Mode, bool, const std::vector&, const std::vector&, const RouterInfoPtr&, const Ice::ObjectAdapterPtr&); ReferencePtr create(const std::string&); ReferencePtr create(const Ice::Identity&, BasicStream*); void setDefaultRouter(const ::Ice::RouterPrx&); Ice::RouterPrx getDefaultRouter() const; private: ReferenceFactory(const InstancePtr&); void destroy(); friend class Instance; InstancePtr _instance; Ice::RouterPrx _defaultRouter; std::set _references; std::set::iterator _referencesHint; int _evict; }; } #endif