/* */ #ifndef _D_DHT_REGISTRY_H_ #define _D_DHT_REGISTRY_H_ #include "common.h" #include "SharedHandle.h" namespace aria2 { class DHTNode; class DHTRoutingTable; class DHTTaskQueue; class DHTTaskFactory; class DHTPeerAnnounceStorage; class DHTTokenTracker; class DHTMessageDispatcher; class DHTMessageReceiver; class DHTMessageFactory; class DHTRegistry { private: struct Data { SharedHandle localNode; SharedHandle routingTable; SharedHandle taskQueue; SharedHandle taskFactory; SharedHandle peerAnnounceStorage; SharedHandle tokenTracker; SharedHandle messageDispatcher; SharedHandle messageReceiver; SharedHandle messageFactory; }; static Data data_; DHTRegistry(); public: static const Data& getData() { return data_; } static Data& getMutableData() { return data_; } static void clearData(); }; } // namespace aria2 #endif // _D_DHT_REGISTRY_H_