/* */ #ifndef _D_BT_REGISTRY_H_ #define _D_BT_REGISTRY_H_ #include "common.h" #include #include #include "SharedHandle.h" #include "HandleRegistry.h" namespace aria2 { class PeerStorage; class PieceStorage; class BtAnnounce; class BtRuntime; class BtProgressInfoFile; class BtContext; typedef HandleRegistry PeerStorageMap; typedef HandleRegistry PieceStorageMap; typedef HandleRegistry BtAnnounceMap; typedef HandleRegistry BtRuntimeMap; typedef HandleRegistry BtProgressInfoFileMap; typedef HandleRegistry BtContextMap; class BtRegistry { private: BtContextMap btContextMap; PeerStorageMap peerStorageMap; PieceStorageMap pieceStorageMap; BtAnnounceMap btAnnounceMap; BtRuntimeMap btRuntimeMap; BtProgressInfoFileMap btProgressInfoFileMap; public: BtRegistry(); SharedHandle getBtContext(const std::string& key); void registerBtContext(const std::string& key, const SharedHandle& btContext); SharedHandle getPeerStorage(const std::string& key); void registerPeerStorage(const std::string& key, const SharedHandle& peer); SharedHandle getPieceStorage(const std::string& key); void registerPieceStorage(const std::string& key, const SharedHandle& pieceStorage); SharedHandle getBtRuntime(const std::string& key); void registerBtRuntime(const std::string& key, const SharedHandle& btRuntime); SharedHandle getBtAnnounce(const std::string& key); void registerBtAnnounce(const std::string& key, const SharedHandle& btAnnounce); SharedHandle getBtProgressInfoFile(const std::string& key); void registerBtProgressInfoFile(const std::string& key, const SharedHandle& file); std::deque > getAllBtContext(); void unregisterAll(); void unregister(const std::string& key); }; } // namespace aria2 #endif // _D_BT_REGISTRY_H_