/* */ #ifndef _D_DHT_MESSAGE_DISPATCHER_H_ #define _D_DHT_MESSAGE_DISPATCHER_H_ #include "common.h" #include "SharedHandle.h" #include namespace aria2 { class DHTMessageTracker; class DHTMessageCallback; class DHTMessageEntry; class DHTMessage; class Logger; class DHTMessageDispatcher { private: SharedHandle _tracker; std::deque > _messageQueue; const Logger* _logger; void sendMessage(const SharedHandle& msg); public: DHTMessageDispatcher(const SharedHandle& tracker); ~DHTMessageDispatcher(); void addMessageToQueue(const SharedHandle& message, time_t timeout, const SharedHandle& callback = 0); void addMessageToQueue(const SharedHandle& message, const SharedHandle& callback = 0); void sendMessages(); size_t countMessageInQueue() const; }; } // namespace aria2 #endif // _D_DHT_MESSAGE_DISPATCHER_H_