aria2/test/MockDHTMessageDispatcher.h
Tatsuhiro Tsujikawa 3505201f33 2008-04-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Rewritten SharedHandle. Now copy constructor taking raw pointer 
has
	keyword explicit and SharedHandle's default constructor 
initializes
	its internal obj to null, old implementation initializes it 
using
	obj's default constructor.
	To assign null, write SharedHandle<T> x(...); x.reset();
	TODO: test/SharedHandleTest.cc needs more tests.
	* src/SharedHandle.h
2008-04-20 00:50:22 +00:00

61 lines
1.4 KiB
C++

#ifndef _D_MOCK_DHT_MESSAGE_DISPATCHER_H_
#define _D_MOCK_DHT_MESSAGE_DISPATCHER_H_
#include "DHTMessageDispatcher.h"
#include "DHTMessageCallback.h"
#include "DHTMessage.h"
#include "DHTConstants.h"
namespace aria2 {
class MockDHTMessageDispatcher:public DHTMessageDispatcher {
public:
class Entry {
public:
SharedHandle<DHTMessage> _message;
time_t _timeout;
SharedHandle<DHTMessageCallback> _callback;
Entry(const SharedHandle<DHTMessage>& message, time_t timeout,
const SharedHandle<DHTMessageCallback>& callback):
_message(message),
_timeout(timeout),
_callback(callback) {}
};
std::deque<Entry> _messageQueue;
public:
MockDHTMessageDispatcher() {}
virtual ~MockDHTMessageDispatcher() {}
virtual void
addMessageToQueue(const SharedHandle<DHTMessage>& message,
time_t timeout,
const SharedHandle<DHTMessageCallback>& callback =
SharedHandle<DHTMessageCallback>())
{
_messageQueue.push_back(Entry(message, timeout, callback));
}
virtual void
addMessageToQueue(const SharedHandle<DHTMessage>& message,
const SharedHandle<DHTMessageCallback>& callback =
SharedHandle<DHTMessageCallback>())
{
_messageQueue.push_back(Entry(message, DHT_MESSAGE_TIMEOUT, callback));
}
virtual void sendMessages() {}
virtual size_t countMessageInQueue() const
{
return _messageQueue.size();
}
};
} // namespace aria2
#endif // _D_MOCK_DHT_MESSAGE_DISPATCHER_H_