/* */ #ifndef _D_HANDLE_REGISTRY_H_ #define _D_HANDLE_REGISTRY_H_ #include "common.h" #include "SharedHandle.h" #include namespace aria2 { template class HandleRegistry { typedef std::map > HandleMap; private: HandleMap handleMap; public: void registerHandle(const K& key, const SharedHandle& obj) { unregisterHandle(key); typename HandleMap::value_type p(key, obj); handleMap.insert(p); } void unregisterHandle(const K& key) { handleMap.erase(key); } SharedHandle getHandle(const K& key) { typename HandleMap::const_iterator itr = handleMap.find(key); if(itr == handleMap.end()) { return 0; } else { return itr->second; } } void clear() { handleMap.clear(); } }; } // namespace aria2 #endif // _D_HANDLE_REGISTRY_H_