/* */ #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 { bool initialized; SharedHandle localNode; SharedHandle routingTable; SharedHandle taskQueue; SharedHandle taskFactory; SharedHandle peerAnnounceStorage; SharedHandle tokenTracker; SharedHandle messageDispatcher; SharedHandle messageReceiver; SharedHandle messageFactory; Data():initialized(false) {} }; static Data data_; static Data data6_; static void clear(Data& data); DHTRegistry(); public: static const Data& getData() { return data_; } static Data& getMutableData() { return data_; } static void clearData(); static bool isInitialized() { return data_.initialized; } static void setInitialized(bool f) { data_.initialized = f; } static const Data& getData6() { return data6_; } static Data& getMutableData6() { return data6_; } static void clearData6(); static bool isInitialized6() { return data6_.initialized; } static void setInitialized6(bool f) { data6_.initialized = f; } }; } // namespace aria2 #endif // D_DHT_REGISTRY_H