2010-06-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

Made DHTMessageEntry struct
	* src/DHTMessageDispatcherImpl.cc
	* src/DHTMessageDispatcherImpl.h
	* src/DHTMessageEntry.cc
	* src/DHTMessageEntry.h
pull/1/head
Tatsuhiro Tsujikawa 2010-06-13 02:18:17 +00:00
parent 6127307c54
commit 411f818032
5 changed files with 38 additions and 26 deletions

View File

@ -1,3 +1,11 @@
2010-06-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Made DHTMessageEntry struct
* src/DHTMessageDispatcherImpl.cc
* src/DHTMessageDispatcherImpl.h
* src/DHTMessageEntry.cc
* src/DHTMessageEntry.h
2010-06-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> 2010-06-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Made DHTNodeLookupEntry struct Made DHTNodeLookupEntry struct

View File

@ -55,44 +55,48 @@ DHTMessageDispatcherImpl::DHTMessageDispatcherImpl
DHTMessageDispatcherImpl::~DHTMessageDispatcherImpl() {} DHTMessageDispatcherImpl::~DHTMessageDispatcherImpl() {}
void void
DHTMessageDispatcherImpl::addMessageToQueue(const SharedHandle<DHTMessage>& message, DHTMessageDispatcherImpl::addMessageToQueue
time_t timeout, (const SharedHandle<DHTMessage>& message,
const SharedHandle<DHTMessageCallback>& callback) time_t timeout,
const SharedHandle<DHTMessageCallback>& callback)
{ {
SharedHandle<DHTMessageEntry> e(new DHTMessageEntry(message, timeout, callback)); SharedHandle<DHTMessageEntry> e
(new DHTMessageEntry(message, timeout, callback));
_messageQueue.push_back(e); _messageQueue.push_back(e);
} }
void void
DHTMessageDispatcherImpl::addMessageToQueue(const SharedHandle<DHTMessage>& message, DHTMessageDispatcherImpl::addMessageToQueue
const SharedHandle<DHTMessageCallback>& callback) (const SharedHandle<DHTMessage>& message,
const SharedHandle<DHTMessageCallback>& callback)
{ {
addMessageToQueue(message, _timeout, callback); addMessageToQueue(message, _timeout, callback);
} }
bool bool
DHTMessageDispatcherImpl::sendMessage(const SharedHandle<DHTMessageEntry>& entry) DHTMessageDispatcherImpl::sendMessage
(const SharedHandle<DHTMessageEntry>& entry)
{ {
try { try {
if(entry->_message->send()) { if(entry->message->send()) {
if(!entry->_message->isReply()) { if(!entry->message->isReply()) {
_tracker->addMessage(entry->_message, entry->_timeout, entry->_callback); _tracker->addMessage(entry->message, entry->timeout, entry->callback);
} }
if(_logger->info()) { if(_logger->info()) {
_logger->info("Message sent: %s", entry->_message->toString().c_str()); _logger->info("Message sent: %s", entry->message->toString().c_str());
} }
} else { } else {
return false; return false;
} }
} catch(RecoverableException& e) { } catch(RecoverableException& e) {
_logger->info("Failed to send message: %s", _logger->info("Failed to send message: %s",
e, entry->_message->toString().c_str()); e, entry->message->toString().c_str());
// Add message to DHTMessageTracker with timeout 0 to treat it as // Add message to DHTMessageTracker with timeout 0 to treat it as
// time out. Without this, we have untracked message and some of // time out. Without this, we have untracked message and some of
// DHTTask(such as DHTAbstractNodeLookupTask) don't finish // DHTTask(such as DHTAbstractNodeLookupTask) don't finish
// forever. // forever.
if(!entry->_message->isReply()) { if(!entry->message->isReply()) {
_tracker->addMessage(entry->_message, 0, entry->_callback); _tracker->addMessage(entry->message, 0, entry->callback);
} }
} }
return true; return true;

View File

@ -41,7 +41,7 @@
namespace aria2 { namespace aria2 {
class DHTMessageTracker; class DHTMessageTracker;
class DHTMessageEntry; struct DHTMessageEntry;
class Logger; class Logger;
class DHTMessageDispatcherImpl:public DHTMessageDispatcher { class DHTMessageDispatcherImpl:public DHTMessageDispatcher {

View File

@ -39,12 +39,13 @@
namespace aria2 { namespace aria2 {
DHTMessageEntry::DHTMessageEntry(const SharedHandle<DHTMessage>& message, DHTMessageEntry::DHTMessageEntry
time_t timeout, (const SharedHandle<DHTMessage>& message,
const SharedHandle<DHTMessageCallback>& callback): time_t timeout,
_message(message), const SharedHandle<DHTMessageCallback>& callback):
_timeout(timeout), message(message),
_callback(callback) {} timeout(timeout),
callback(callback) {}
DHTMessageEntry::~DHTMessageEntry() {} DHTMessageEntry::~DHTMessageEntry() {}

View File

@ -44,11 +44,10 @@ namespace aria2 {
class DHTMessage; class DHTMessage;
class DHTMessageCallback; class DHTMessageCallback;
class DHTMessageEntry { struct DHTMessageEntry {
public: SharedHandle<DHTMessage> message;
SharedHandle<DHTMessage> _message; time_t timeout;
time_t _timeout; SharedHandle<DHTMessageCallback> callback;
SharedHandle<DHTMessageCallback> _callback;
DHTMessageEntry(const SharedHandle<DHTMessage>& message, DHTMessageEntry(const SharedHandle<DHTMessage>& message,
time_t timeout, time_t timeout,