mirror of https://github.com/aria2/aria2
Made static create function of BtMessage subclass return raw pointer
parent
ae2e4cb7ff
commit
215d1d3d0b
|
@ -44,7 +44,7 @@ const char BtAllowedFastMessage::NAME[] = "allowed fast";
|
||||||
BtAllowedFastMessage::BtAllowedFastMessage(size_t index):
|
BtAllowedFastMessage::BtAllowedFastMessage(size_t index):
|
||||||
IndexBtMessage(ID, NAME, index) {}
|
IndexBtMessage(ID, NAME, index) {}
|
||||||
|
|
||||||
SharedHandle<BtAllowedFastMessage> BtAllowedFastMessage::create
|
BtAllowedFastMessage* BtAllowedFastMessage::create
|
||||||
(const unsigned char* data, size_t dataLength)
|
(const unsigned char* data, size_t dataLength)
|
||||||
{
|
{
|
||||||
return IndexBtMessage::create<BtAllowedFastMessage>(data, dataLength);
|
return IndexBtMessage::create<BtAllowedFastMessage>(data, dataLength);
|
||||||
|
|
|
@ -39,10 +39,6 @@
|
||||||
|
|
||||||
namespace aria2 {
|
namespace aria2 {
|
||||||
|
|
||||||
class BtAllowedFastMessage;
|
|
||||||
|
|
||||||
typedef SharedHandle<BtAllowedFastMessage> BtAllowedFastMessageHandle;
|
|
||||||
|
|
||||||
class BtAllowedFastMessage : public IndexBtMessage {
|
class BtAllowedFastMessage : public IndexBtMessage {
|
||||||
public:
|
public:
|
||||||
BtAllowedFastMessage(size_t index = 0);
|
BtAllowedFastMessage(size_t index = 0);
|
||||||
|
@ -51,7 +47,7 @@ public:
|
||||||
|
|
||||||
static const char NAME[];
|
static const char NAME[];
|
||||||
|
|
||||||
static SharedHandle<BtAllowedFastMessage> create
|
static BtAllowedFastMessage* create
|
||||||
(const unsigned char* data, size_t dataLength);
|
(const unsigned char* data, size_t dataLength);
|
||||||
|
|
||||||
virtual void doReceivedAction();
|
virtual void doReceivedAction();
|
||||||
|
|
|
@ -78,12 +78,12 @@ void BtBitfieldMessage::setBitfield
|
||||||
memcpy(bitfield_, bitfield, bitfieldLength_);
|
memcpy(bitfield_, bitfield, bitfieldLength_);
|
||||||
}
|
}
|
||||||
|
|
||||||
BtBitfieldMessageHandle
|
BtBitfieldMessage*
|
||||||
BtBitfieldMessage::create(const unsigned char* data, size_t dataLength)
|
BtBitfieldMessage::create(const unsigned char* data, size_t dataLength)
|
||||||
{
|
{
|
||||||
bittorrent::assertPayloadLengthGreater(1,dataLength, NAME);
|
bittorrent::assertPayloadLengthGreater(1,dataLength, NAME);
|
||||||
bittorrent::assertID(ID, data, NAME);
|
bittorrent::assertID(ID, data, NAME);
|
||||||
BtBitfieldMessageHandle message(new BtBitfieldMessage());
|
BtBitfieldMessage* message(new BtBitfieldMessage());
|
||||||
message->setBitfield(data+1, dataLength-1);
|
message->setBitfield(data+1, dataLength-1);
|
||||||
return message;
|
return message;
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,10 +39,6 @@
|
||||||
|
|
||||||
namespace aria2 {
|
namespace aria2 {
|
||||||
|
|
||||||
class BtBitfieldMessage;
|
|
||||||
|
|
||||||
typedef SharedHandle<BtBitfieldMessage> BtBitfieldMessageHandle;
|
|
||||||
|
|
||||||
class BtBitfieldMessage : public SimpleBtMessage {
|
class BtBitfieldMessage : public SimpleBtMessage {
|
||||||
private:
|
private:
|
||||||
unsigned char* bitfield_;
|
unsigned char* bitfield_;
|
||||||
|
@ -64,7 +60,7 @@ public:
|
||||||
|
|
||||||
size_t getBitfieldLength() const { return bitfieldLength_; }
|
size_t getBitfieldLength() const { return bitfieldLength_; }
|
||||||
|
|
||||||
static BtBitfieldMessageHandle create
|
static BtBitfieldMessage* create
|
||||||
(const unsigned char* data, size_t dataLength);
|
(const unsigned char* data, size_t dataLength);
|
||||||
|
|
||||||
virtual void doReceivedAction();
|
virtual void doReceivedAction();
|
||||||
|
|
|
@ -43,7 +43,7 @@ BtCancelMessage::BtCancelMessage
|
||||||
(size_t index, int32_t begin, int32_t length)
|
(size_t index, int32_t begin, int32_t length)
|
||||||
:RangeBtMessage(ID, NAME, index, begin, length) {}
|
:RangeBtMessage(ID, NAME, index, begin, length) {}
|
||||||
|
|
||||||
SharedHandle<BtCancelMessage> BtCancelMessage::create
|
BtCancelMessage* BtCancelMessage::create
|
||||||
(const unsigned char* data, size_t dataLength)
|
(const unsigned char* data, size_t dataLength)
|
||||||
{
|
{
|
||||||
return RangeBtMessage::create<BtCancelMessage>(data, dataLength);
|
return RangeBtMessage::create<BtCancelMessage>(data, dataLength);
|
||||||
|
|
|
@ -39,10 +39,6 @@
|
||||||
|
|
||||||
namespace aria2 {
|
namespace aria2 {
|
||||||
|
|
||||||
class BtCancelMessage;
|
|
||||||
|
|
||||||
typedef SharedHandle<BtCancelMessage> BtCancelMessageHandle;
|
|
||||||
|
|
||||||
class BtCancelMessage : public RangeBtMessage {
|
class BtCancelMessage : public RangeBtMessage {
|
||||||
public:
|
public:
|
||||||
BtCancelMessage(size_t index = 0, int32_t begin = 0, int32_t length = 0);
|
BtCancelMessage(size_t index = 0, int32_t begin = 0, int32_t length = 0);
|
||||||
|
@ -51,8 +47,7 @@ public:
|
||||||
|
|
||||||
static const char NAME[];
|
static const char NAME[];
|
||||||
|
|
||||||
static BtCancelMessageHandle create
|
static BtCancelMessage* create(const unsigned char* data, size_t dataLength);
|
||||||
(const unsigned char* data, size_t dataLength);
|
|
||||||
|
|
||||||
virtual void doReceivedAction();
|
virtual void doReceivedAction();
|
||||||
};
|
};
|
||||||
|
|
|
@ -43,7 +43,7 @@ const char BtChokeMessage::NAME[] = "choke";
|
||||||
|
|
||||||
BtChokeMessage::BtChokeMessage():ZeroBtMessage(ID, NAME) {}
|
BtChokeMessage::BtChokeMessage():ZeroBtMessage(ID, NAME) {}
|
||||||
|
|
||||||
SharedHandle<BtChokeMessage> BtChokeMessage::create
|
BtChokeMessage* BtChokeMessage::create
|
||||||
(const unsigned char* data, size_t dataLength)
|
(const unsigned char* data, size_t dataLength)
|
||||||
{
|
{
|
||||||
return ZeroBtMessage::create<BtChokeMessage>(data, dataLength);
|
return ZeroBtMessage::create<BtChokeMessage>(data, dataLength);
|
||||||
|
|
|
@ -39,10 +39,6 @@
|
||||||
|
|
||||||
namespace aria2 {
|
namespace aria2 {
|
||||||
|
|
||||||
class BtChokeMessage;
|
|
||||||
|
|
||||||
typedef SharedHandle<BtChokeMessage> BtChokeMessageHandle;
|
|
||||||
|
|
||||||
class BtChokeMessage : public ZeroBtMessage {
|
class BtChokeMessage : public ZeroBtMessage {
|
||||||
public:
|
public:
|
||||||
BtChokeMessage();
|
BtChokeMessage();
|
||||||
|
@ -53,8 +49,7 @@ public:
|
||||||
|
|
||||||
virtual void doReceivedAction();
|
virtual void doReceivedAction();
|
||||||
|
|
||||||
static SharedHandle<BtChokeMessage> create
|
static BtChokeMessage* create(const unsigned char* data, size_t dataLength);
|
||||||
(const unsigned char* data, size_t dataLength);
|
|
||||||
|
|
||||||
virtual bool sendPredicate() const;
|
virtual bool sendPredicate() const;
|
||||||
|
|
||||||
|
|
|
@ -96,7 +96,7 @@ std::string BtExtendedMessage::toString() const {
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
BtExtendedMessageHandle
|
BtExtendedMessage*
|
||||||
BtExtendedMessage::create(const SharedHandle<ExtensionMessageFactory>& factory,
|
BtExtendedMessage::create(const SharedHandle<ExtensionMessageFactory>& factory,
|
||||||
const SharedHandle<Peer>& peer,
|
const SharedHandle<Peer>& peer,
|
||||||
const unsigned char* data, size_t dataLength)
|
const unsigned char* data, size_t dataLength)
|
||||||
|
@ -104,9 +104,9 @@ BtExtendedMessage::create(const SharedHandle<ExtensionMessageFactory>& factory,
|
||||||
bittorrent::assertPayloadLengthGreater(1, dataLength, NAME);
|
bittorrent::assertPayloadLengthGreater(1, dataLength, NAME);
|
||||||
bittorrent::assertID(ID, data, NAME);
|
bittorrent::assertID(ID, data, NAME);
|
||||||
assert(factory);
|
assert(factory);
|
||||||
ExtensionMessageHandle extmsg = factory->createMessage(data+1,
|
SharedHandle<ExtensionMessage> extmsg = factory->createMessage(data+1,
|
||||||
dataLength-1);
|
dataLength-1);
|
||||||
BtExtendedMessageHandle message(new BtExtendedMessage(extmsg));
|
BtExtendedMessage* message(new BtExtendedMessage(extmsg));
|
||||||
return message;
|
return message;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -41,9 +41,6 @@ namespace aria2 {
|
||||||
class ExtensionMessage;
|
class ExtensionMessage;
|
||||||
class ExtensionMessageFactory;
|
class ExtensionMessageFactory;
|
||||||
|
|
||||||
class BtExtendedMessage;
|
|
||||||
typedef SharedHandle<BtExtendedMessage> BtExtendedMessageHandle;
|
|
||||||
|
|
||||||
class BtExtendedMessage:public SimpleBtMessage
|
class BtExtendedMessage:public SimpleBtMessage
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
@ -59,7 +56,7 @@ public:
|
||||||
|
|
||||||
static const char NAME[];
|
static const char NAME[];
|
||||||
|
|
||||||
static BtExtendedMessageHandle create
|
static BtExtendedMessage* create
|
||||||
(const SharedHandle<ExtensionMessageFactory>& factory,
|
(const SharedHandle<ExtensionMessageFactory>& factory,
|
||||||
const SharedHandle<Peer>& peer,
|
const SharedHandle<Peer>& peer,
|
||||||
const unsigned char* data,
|
const unsigned char* data,
|
||||||
|
|
|
@ -45,7 +45,7 @@ const char BtHaveAllMessage::NAME[] = "have all";
|
||||||
|
|
||||||
BtHaveAllMessage::BtHaveAllMessage():ZeroBtMessage(ID, NAME) {}
|
BtHaveAllMessage::BtHaveAllMessage():ZeroBtMessage(ID, NAME) {}
|
||||||
|
|
||||||
SharedHandle<BtHaveAllMessage> BtHaveAllMessage::create
|
BtHaveAllMessage* BtHaveAllMessage::create
|
||||||
(const unsigned char* data, size_t dataLength)
|
(const unsigned char* data, size_t dataLength)
|
||||||
{
|
{
|
||||||
return ZeroBtMessage::create<BtHaveAllMessage>(data, dataLength);
|
return ZeroBtMessage::create<BtHaveAllMessage>(data, dataLength);
|
||||||
|
|
|
@ -39,10 +39,6 @@
|
||||||
|
|
||||||
namespace aria2 {
|
namespace aria2 {
|
||||||
|
|
||||||
class BtHaveAllMessage;
|
|
||||||
|
|
||||||
typedef SharedHandle<BtHaveAllMessage> BtHaveAllMessageHandle;
|
|
||||||
|
|
||||||
class BtHaveAllMessage : public ZeroBtMessage {
|
class BtHaveAllMessage : public ZeroBtMessage {
|
||||||
public:
|
public:
|
||||||
BtHaveAllMessage();
|
BtHaveAllMessage();
|
||||||
|
@ -51,7 +47,7 @@ public:
|
||||||
|
|
||||||
static const char NAME[];
|
static const char NAME[];
|
||||||
|
|
||||||
static SharedHandle<BtHaveAllMessage> create
|
static BtHaveAllMessage* create
|
||||||
(const unsigned char* data, size_t dataLength);
|
(const unsigned char* data, size_t dataLength);
|
||||||
|
|
||||||
virtual void doReceivedAction();
|
virtual void doReceivedAction();
|
||||||
|
|
|
@ -44,7 +44,7 @@ const char BtHaveMessage::NAME[] = "have";
|
||||||
|
|
||||||
BtHaveMessage::BtHaveMessage(size_t index):IndexBtMessage(ID, NAME, index) {}
|
BtHaveMessage::BtHaveMessage(size_t index):IndexBtMessage(ID, NAME, index) {}
|
||||||
|
|
||||||
SharedHandle<BtHaveMessage> BtHaveMessage::create
|
BtHaveMessage* BtHaveMessage::create
|
||||||
(const unsigned char* data, size_t dataLength)
|
(const unsigned char* data, size_t dataLength)
|
||||||
{
|
{
|
||||||
return IndexBtMessage::create<BtHaveMessage>(data, dataLength);
|
return IndexBtMessage::create<BtHaveMessage>(data, dataLength);
|
||||||
|
|
|
@ -39,10 +39,6 @@
|
||||||
|
|
||||||
namespace aria2 {
|
namespace aria2 {
|
||||||
|
|
||||||
class BtHaveMessage;
|
|
||||||
|
|
||||||
typedef SharedHandle<BtHaveMessage> BtHaveMessageHandle;
|
|
||||||
|
|
||||||
class BtHaveMessage : public IndexBtMessage {
|
class BtHaveMessage : public IndexBtMessage {
|
||||||
public:
|
public:
|
||||||
BtHaveMessage(size_t index = 0);
|
BtHaveMessage(size_t index = 0);
|
||||||
|
@ -51,8 +47,7 @@ public:
|
||||||
|
|
||||||
static const char NAME[];
|
static const char NAME[];
|
||||||
|
|
||||||
static SharedHandle<BtHaveMessage> create
|
static BtHaveMessage* create(const unsigned char* data, size_t dataLength);
|
||||||
(const unsigned char* data, size_t dataLength);
|
|
||||||
|
|
||||||
virtual void doReceivedAction();
|
virtual void doReceivedAction();
|
||||||
};
|
};
|
||||||
|
|
|
@ -43,7 +43,7 @@ const char BtHaveNoneMessage::NAME[] = "have none";
|
||||||
|
|
||||||
BtHaveNoneMessage::BtHaveNoneMessage():ZeroBtMessage(ID, NAME) {}
|
BtHaveNoneMessage::BtHaveNoneMessage():ZeroBtMessage(ID, NAME) {}
|
||||||
|
|
||||||
SharedHandle<BtHaveNoneMessage> BtHaveNoneMessage::create
|
BtHaveNoneMessage* BtHaveNoneMessage::create
|
||||||
(const unsigned char* data, size_t dataLength)
|
(const unsigned char* data, size_t dataLength)
|
||||||
{
|
{
|
||||||
return ZeroBtMessage::create<BtHaveNoneMessage>(data, dataLength);
|
return ZeroBtMessage::create<BtHaveNoneMessage>(data, dataLength);
|
||||||
|
|
|
@ -39,10 +39,6 @@
|
||||||
|
|
||||||
namespace aria2 {
|
namespace aria2 {
|
||||||
|
|
||||||
class BtHaveNoneMessage;
|
|
||||||
|
|
||||||
typedef SharedHandle<BtHaveNoneMessage> BtHaveNoneMessageHandle;
|
|
||||||
|
|
||||||
class BtHaveNoneMessage : public ZeroBtMessage {
|
class BtHaveNoneMessage : public ZeroBtMessage {
|
||||||
public:
|
public:
|
||||||
BtHaveNoneMessage();
|
BtHaveNoneMessage();
|
||||||
|
@ -51,7 +47,7 @@ public:
|
||||||
|
|
||||||
static const char NAME[];
|
static const char NAME[];
|
||||||
|
|
||||||
static SharedHandle<BtHaveNoneMessage> create
|
static BtHaveNoneMessage* create
|
||||||
(const unsigned char* data, size_t dataLength);
|
(const unsigned char* data, size_t dataLength);
|
||||||
|
|
||||||
virtual void doReceivedAction();
|
virtual void doReceivedAction();
|
||||||
|
|
|
@ -44,7 +44,7 @@ BtInterestedMessage::BtInterestedMessage():ZeroBtMessage(ID, NAME) {}
|
||||||
|
|
||||||
BtInterestedMessage::~BtInterestedMessage() {}
|
BtInterestedMessage::~BtInterestedMessage() {}
|
||||||
|
|
||||||
SharedHandle<BtInterestedMessage> BtInterestedMessage::create
|
BtInterestedMessage* BtInterestedMessage::create
|
||||||
(const unsigned char* data, size_t dataLength)
|
(const unsigned char* data, size_t dataLength)
|
||||||
{
|
{
|
||||||
return ZeroBtMessage::create<BtInterestedMessage>(data, dataLength);
|
return ZeroBtMessage::create<BtInterestedMessage>(data, dataLength);
|
||||||
|
|
|
@ -42,8 +42,6 @@ namespace aria2 {
|
||||||
class PeerStorage;
|
class PeerStorage;
|
||||||
class BtInterestedMessage;
|
class BtInterestedMessage;
|
||||||
|
|
||||||
typedef SharedHandle<BtInterestedMessage> BtInterestedMessageHandle;
|
|
||||||
|
|
||||||
class BtInterestedMessage : public ZeroBtMessage {
|
class BtInterestedMessage : public ZeroBtMessage {
|
||||||
private:
|
private:
|
||||||
SharedHandle<PeerStorage> peerStorage_;
|
SharedHandle<PeerStorage> peerStorage_;
|
||||||
|
@ -55,7 +53,7 @@ public:
|
||||||
|
|
||||||
static const char NAME[];
|
static const char NAME[];
|
||||||
|
|
||||||
static SharedHandle<BtInterestedMessage> create
|
static BtInterestedMessage* create
|
||||||
(const unsigned char* data, size_t dataLength);
|
(const unsigned char* data, size_t dataLength);
|
||||||
|
|
||||||
virtual void doReceivedAction();
|
virtual void doReceivedAction();
|
||||||
|
|
|
@ -44,7 +44,7 @@ BtNotInterestedMessage::BtNotInterestedMessage():ZeroBtMessage(ID, NAME) {}
|
||||||
|
|
||||||
BtNotInterestedMessage::~BtNotInterestedMessage() {}
|
BtNotInterestedMessage::~BtNotInterestedMessage() {}
|
||||||
|
|
||||||
SharedHandle<BtNotInterestedMessage> BtNotInterestedMessage::create
|
BtNotInterestedMessage* BtNotInterestedMessage::create
|
||||||
(const unsigned char* data, size_t dataLength)
|
(const unsigned char* data, size_t dataLength)
|
||||||
{
|
{
|
||||||
return ZeroBtMessage::create<BtNotInterestedMessage>(data, dataLength);
|
return ZeroBtMessage::create<BtNotInterestedMessage>(data, dataLength);
|
||||||
|
|
|
@ -42,8 +42,6 @@ namespace aria2 {
|
||||||
class PeerStorage;
|
class PeerStorage;
|
||||||
class BtNotInterestedMessage;
|
class BtNotInterestedMessage;
|
||||||
|
|
||||||
typedef SharedHandle<BtNotInterestedMessage> BtNotInterestedMessageHandle;
|
|
||||||
|
|
||||||
class BtNotInterestedMessage : public ZeroBtMessage {
|
class BtNotInterestedMessage : public ZeroBtMessage {
|
||||||
private:
|
private:
|
||||||
SharedHandle<PeerStorage> peerStorage_;
|
SharedHandle<PeerStorage> peerStorage_;
|
||||||
|
@ -55,7 +53,7 @@ public:
|
||||||
|
|
||||||
static const char NAME[];
|
static const char NAME[];
|
||||||
|
|
||||||
static SharedHandle<BtNotInterestedMessage> create
|
static BtNotInterestedMessage* create
|
||||||
(const unsigned char* data, size_t dataLength);
|
(const unsigned char* data, size_t dataLength);
|
||||||
|
|
||||||
virtual void doReceivedAction();
|
virtual void doReceivedAction();
|
||||||
|
|
|
@ -80,12 +80,12 @@ void BtPieceMessage::setMsgPayload(const unsigned char* data)
|
||||||
data_ = data;
|
data_ = data;
|
||||||
}
|
}
|
||||||
|
|
||||||
BtPieceMessageHandle BtPieceMessage::create
|
BtPieceMessage* BtPieceMessage::create
|
||||||
(const unsigned char* data, size_t dataLength)
|
(const unsigned char* data, size_t dataLength)
|
||||||
{
|
{
|
||||||
bittorrent::assertPayloadLengthGreater(9, dataLength, NAME);
|
bittorrent::assertPayloadLengthGreater(9, dataLength, NAME);
|
||||||
bittorrent::assertID(ID, data, NAME);
|
bittorrent::assertID(ID, data, NAME);
|
||||||
BtPieceMessageHandle message(new BtPieceMessage());
|
BtPieceMessage* message(new BtPieceMessage());
|
||||||
message->setIndex(bittorrent::getIntParam(data, 1));
|
message->setIndex(bittorrent::getIntParam(data, 1));
|
||||||
message->setBegin(bittorrent::getIntParam(data, 5));
|
message->setBegin(bittorrent::getIntParam(data, 5));
|
||||||
message->setBlockLength(dataLength-9);
|
message->setBlockLength(dataLength-9);
|
||||||
|
|
|
@ -40,12 +40,9 @@
|
||||||
namespace aria2 {
|
namespace aria2 {
|
||||||
|
|
||||||
class Piece;
|
class Piece;
|
||||||
class BtPieceMessage;
|
|
||||||
class DownloadContext;
|
class DownloadContext;
|
||||||
class PeerStorage;
|
class PeerStorage;
|
||||||
|
|
||||||
typedef SharedHandle<BtPieceMessage> BtPieceMessageHandle;
|
|
||||||
|
|
||||||
class BtPieceMessage : public AbstractBtMessage {
|
class BtPieceMessage : public AbstractBtMessage {
|
||||||
private:
|
private:
|
||||||
size_t index_;
|
size_t index_;
|
||||||
|
@ -97,8 +94,7 @@ public:
|
||||||
|
|
||||||
void setPeerStorage(const SharedHandle<PeerStorage>& peerStorage);
|
void setPeerStorage(const SharedHandle<PeerStorage>& peerStorage);
|
||||||
|
|
||||||
static BtPieceMessageHandle create
|
static BtPieceMessage* create(const unsigned char* data, size_t dataLength);
|
||||||
(const unsigned char* data, size_t dataLength);
|
|
||||||
|
|
||||||
virtual void doReceivedAction();
|
virtual void doReceivedAction();
|
||||||
|
|
||||||
|
|
|
@ -61,13 +61,13 @@ BtPortMessage::BtPortMessage(uint16_t port)
|
||||||
taskFactory_(0)
|
taskFactory_(0)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
SharedHandle<BtPortMessage> BtPortMessage::create
|
BtPortMessage* BtPortMessage::create
|
||||||
(const unsigned char* data, size_t dataLength)
|
(const unsigned char* data, size_t dataLength)
|
||||||
{
|
{
|
||||||
bittorrent::assertPayloadLengthEqual(3, dataLength, NAME);
|
bittorrent::assertPayloadLengthEqual(3, dataLength, NAME);
|
||||||
bittorrent::assertID(ID, data, NAME);
|
bittorrent::assertID(ID, data, NAME);
|
||||||
uint16_t port = bittorrent::getShortIntParam(data, 1);
|
uint16_t port = bittorrent::getShortIntParam(data, 1);
|
||||||
SharedHandle<BtPortMessage> message(new BtPortMessage(port));
|
BtPortMessage* message(new BtPortMessage(port));
|
||||||
return message;
|
return message;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -65,8 +65,7 @@ public:
|
||||||
|
|
||||||
uint16_t getPort() const { return port_; }
|
uint16_t getPort() const { return port_; }
|
||||||
|
|
||||||
static SharedHandle<BtPortMessage> create
|
static BtPortMessage* create(const unsigned char* data, size_t dataLength);
|
||||||
(const unsigned char* data, size_t dataLength);
|
|
||||||
|
|
||||||
virtual void doReceivedAction();
|
virtual void doReceivedAction();
|
||||||
|
|
||||||
|
|
|
@ -47,7 +47,7 @@ BtRejectMessage::BtRejectMessage
|
||||||
(size_t index, int32_t begin, int32_t length):
|
(size_t index, int32_t begin, int32_t length):
|
||||||
RangeBtMessage(ID, NAME, index, begin, length) {}
|
RangeBtMessage(ID, NAME, index, begin, length) {}
|
||||||
|
|
||||||
SharedHandle<BtRejectMessage> BtRejectMessage::create
|
BtRejectMessage* BtRejectMessage::create
|
||||||
(const unsigned char* data, size_t dataLength)
|
(const unsigned char* data, size_t dataLength)
|
||||||
{
|
{
|
||||||
return RangeBtMessage::create<BtRejectMessage>(data, dataLength);
|
return RangeBtMessage::create<BtRejectMessage>(data, dataLength);
|
||||||
|
|
|
@ -39,10 +39,6 @@
|
||||||
|
|
||||||
namespace aria2 {
|
namespace aria2 {
|
||||||
|
|
||||||
class BtRejectMessage;
|
|
||||||
|
|
||||||
typedef SharedHandle<BtRejectMessage> BtRejectMessageHandle;
|
|
||||||
|
|
||||||
class BtRejectMessage : public RangeBtMessage {
|
class BtRejectMessage : public RangeBtMessage {
|
||||||
public:
|
public:
|
||||||
BtRejectMessage(size_t index = 0, int32_t begin = 0, int32_t length = 0);
|
BtRejectMessage(size_t index = 0, int32_t begin = 0, int32_t length = 0);
|
||||||
|
@ -51,8 +47,7 @@ public:
|
||||||
|
|
||||||
static const char NAME[];
|
static const char NAME[];
|
||||||
|
|
||||||
static SharedHandle<BtRejectMessage> create
|
static BtRejectMessage* create(const unsigned char* data, size_t dataLength);
|
||||||
(const unsigned char* data, size_t dataLength);
|
|
||||||
|
|
||||||
virtual void doReceivedAction();
|
virtual void doReceivedAction();
|
||||||
};
|
};
|
||||||
|
|
|
@ -48,7 +48,7 @@ BtRequestMessage::BtRequestMessage
|
||||||
RangeBtMessage(ID, NAME, index, begin, length),
|
RangeBtMessage(ID, NAME, index, begin, length),
|
||||||
blockIndex_(blockIndex) {}
|
blockIndex_(blockIndex) {}
|
||||||
|
|
||||||
SharedHandle<BtRequestMessage> BtRequestMessage::create
|
BtRequestMessage* BtRequestMessage::create
|
||||||
(const unsigned char* data, size_t dataLength)
|
(const unsigned char* data, size_t dataLength)
|
||||||
{
|
{
|
||||||
return RangeBtMessage::create<BtRequestMessage>(data, dataLength);
|
return RangeBtMessage::create<BtRequestMessage>(data, dataLength);
|
||||||
|
|
|
@ -39,10 +39,6 @@
|
||||||
|
|
||||||
namespace aria2 {
|
namespace aria2 {
|
||||||
|
|
||||||
class BtRequestMessage;
|
|
||||||
|
|
||||||
typedef SharedHandle<BtRequestMessage> BtRequestMessageHandle;
|
|
||||||
|
|
||||||
class BtRequestMessage : public RangeBtMessage {
|
class BtRequestMessage : public RangeBtMessage {
|
||||||
private:
|
private:
|
||||||
size_t blockIndex_;
|
size_t blockIndex_;
|
||||||
|
@ -59,7 +55,7 @@ public:
|
||||||
size_t getBlockIndex() const { return blockIndex_; }
|
size_t getBlockIndex() const { return blockIndex_; }
|
||||||
void setBlockIndex(size_t blockIndex) { blockIndex_ = blockIndex; }
|
void setBlockIndex(size_t blockIndex) { blockIndex_ = blockIndex; }
|
||||||
|
|
||||||
static SharedHandle<BtRequestMessage> create
|
static BtRequestMessage* create
|
||||||
(const unsigned char* data, size_t dataLength);
|
(const unsigned char* data, size_t dataLength);
|
||||||
|
|
||||||
virtual void doReceivedAction();
|
virtual void doReceivedAction();
|
||||||
|
|
|
@ -38,7 +38,7 @@ namespace aria2 {
|
||||||
|
|
||||||
const char BtSuggestPieceMessage::NAME[] = "suggest piece";
|
const char BtSuggestPieceMessage::NAME[] = "suggest piece";
|
||||||
|
|
||||||
SharedHandle<BtSuggestPieceMessage> BtSuggestPieceMessage::create
|
BtSuggestPieceMessage* BtSuggestPieceMessage::create
|
||||||
(const unsigned char* data, size_t dataLength)
|
(const unsigned char* data, size_t dataLength)
|
||||||
{
|
{
|
||||||
return IndexBtMessage::create<BtSuggestPieceMessage>(data, dataLength);
|
return IndexBtMessage::create<BtSuggestPieceMessage>(data, dataLength);
|
||||||
|
|
|
@ -39,10 +39,6 @@
|
||||||
|
|
||||||
namespace aria2 {
|
namespace aria2 {
|
||||||
|
|
||||||
class BtSuggestPieceMessage;
|
|
||||||
|
|
||||||
typedef SharedHandle<BtSuggestPieceMessage> BtSuggestPieceMessageHandle;
|
|
||||||
|
|
||||||
class BtSuggestPieceMessage : public IndexBtMessage {
|
class BtSuggestPieceMessage : public IndexBtMessage {
|
||||||
public:
|
public:
|
||||||
BtSuggestPieceMessage():IndexBtMessage(ID, NAME, 0) {}
|
BtSuggestPieceMessage():IndexBtMessage(ID, NAME, 0) {}
|
||||||
|
@ -51,7 +47,7 @@ public:
|
||||||
|
|
||||||
static const char NAME[];
|
static const char NAME[];
|
||||||
|
|
||||||
static SharedHandle<BtSuggestPieceMessage> create
|
static BtSuggestPieceMessage* create
|
||||||
(const unsigned char* data, size_t dataLength);
|
(const unsigned char* data, size_t dataLength);
|
||||||
|
|
||||||
virtual void doReceivedAction() {
|
virtual void doReceivedAction() {
|
||||||
|
|
|
@ -41,7 +41,7 @@ const char BtUnchokeMessage::NAME[] = "unchoke";
|
||||||
|
|
||||||
BtUnchokeMessage::BtUnchokeMessage():ZeroBtMessage(ID, NAME) {}
|
BtUnchokeMessage::BtUnchokeMessage():ZeroBtMessage(ID, NAME) {}
|
||||||
|
|
||||||
SharedHandle<BtUnchokeMessage> BtUnchokeMessage::create
|
BtUnchokeMessage* BtUnchokeMessage::create
|
||||||
(const unsigned char* data, size_t dataLength)
|
(const unsigned char* data, size_t dataLength)
|
||||||
{
|
{
|
||||||
return ZeroBtMessage::create<BtUnchokeMessage>(data, dataLength);
|
return ZeroBtMessage::create<BtUnchokeMessage>(data, dataLength);
|
||||||
|
|
|
@ -39,10 +39,6 @@
|
||||||
|
|
||||||
namespace aria2 {
|
namespace aria2 {
|
||||||
|
|
||||||
class BtUnchokeMessage;
|
|
||||||
|
|
||||||
typedef SharedHandle<BtUnchokeMessage> BtUnchokeMessageHandle;
|
|
||||||
|
|
||||||
class BtUnchokeMessage : public ZeroBtMessage {
|
class BtUnchokeMessage : public ZeroBtMessage {
|
||||||
private:
|
private:
|
||||||
static const size_t MESSAGE_LENGTH = 5;
|
static const size_t MESSAGE_LENGTH = 5;
|
||||||
|
@ -53,7 +49,7 @@ public:
|
||||||
|
|
||||||
static const char NAME[];
|
static const char NAME[];
|
||||||
|
|
||||||
static SharedHandle<BtUnchokeMessage> create
|
static BtUnchokeMessage* create
|
||||||
(const unsigned char* data, size_t dataLength);
|
(const unsigned char* data, size_t dataLength);
|
||||||
|
|
||||||
virtual void doReceivedAction();
|
virtual void doReceivedAction();
|
||||||
|
|
|
@ -85,11 +85,11 @@ DefaultBtMessageFactory::DefaultBtMessageFactory():
|
||||||
|
|
||||||
DefaultBtMessageFactory::~DefaultBtMessageFactory() {}
|
DefaultBtMessageFactory::~DefaultBtMessageFactory() {}
|
||||||
|
|
||||||
BtMessageHandle
|
SharedHandle<BtMessage>
|
||||||
DefaultBtMessageFactory::createBtMessage
|
DefaultBtMessageFactory::createBtMessage
|
||||||
(const unsigned char* data, size_t dataLength)
|
(const unsigned char* data, size_t dataLength)
|
||||||
{
|
{
|
||||||
AbstractBtMessageHandle msg;
|
SharedHandle<AbstractBtMessage> msg;
|
||||||
if(dataLength == 0) {
|
if(dataLength == 0) {
|
||||||
// keep-alive
|
// keep-alive
|
||||||
msg.reset(new BtKeepAliveMessage());
|
msg.reset(new BtKeepAliveMessage());
|
||||||
|
@ -97,41 +97,37 @@ DefaultBtMessageFactory::createBtMessage
|
||||||
uint8_t id = bittorrent::getId(data);
|
uint8_t id = bittorrent::getId(data);
|
||||||
switch(id) {
|
switch(id) {
|
||||||
case BtChokeMessage::ID:
|
case BtChokeMessage::ID:
|
||||||
msg = BtChokeMessage::create(data, dataLength);
|
msg.reset(BtChokeMessage::create(data, dataLength));
|
||||||
break;
|
break;
|
||||||
case BtUnchokeMessage::ID:
|
case BtUnchokeMessage::ID:
|
||||||
msg = BtUnchokeMessage::create(data, dataLength);
|
msg.reset(BtUnchokeMessage::create(data, dataLength));
|
||||||
break;
|
break;
|
||||||
case BtInterestedMessage::ID:
|
case BtInterestedMessage::ID:
|
||||||
{
|
{
|
||||||
SharedHandle<BtInterestedMessage> m =
|
BtInterestedMessage* m = BtInterestedMessage::create(data, dataLength);
|
||||||
BtInterestedMessage::create(data, dataLength);
|
|
||||||
m->setPeerStorage(peerStorage_);
|
m->setPeerStorage(peerStorage_);
|
||||||
msg = m;
|
msg.reset(m);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case BtNotInterestedMessage::ID:
|
case BtNotInterestedMessage::ID:
|
||||||
{
|
{
|
||||||
SharedHandle<BtNotInterestedMessage> m =
|
BtNotInterestedMessage* m =
|
||||||
BtNotInterestedMessage::create(data, dataLength);
|
BtNotInterestedMessage::create(data, dataLength);
|
||||||
m->setPeerStorage(peerStorage_);
|
m->setPeerStorage(peerStorage_);
|
||||||
msg = m;
|
msg.reset(m);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case BtHaveMessage::ID:
|
case BtHaveMessage::ID:
|
||||||
msg = BtHaveMessage::create(data, dataLength);
|
msg.reset(BtHaveMessage::create(data, dataLength));
|
||||||
{
|
|
||||||
if(!metadataGetMode_) {
|
if(!metadataGetMode_) {
|
||||||
SharedHandle<BtMessageValidator> v
|
SharedHandle<BtMessageValidator> v
|
||||||
(new IndexBtMessageValidator(static_cast<BtHaveMessage*>(msg.get()),
|
(new IndexBtMessageValidator(static_cast<BtHaveMessage*>(msg.get()),
|
||||||
downloadContext_->getNumPieces()));
|
downloadContext_->getNumPieces()));
|
||||||
msg->setBtMessageValidator(v);
|
msg->setBtMessageValidator(v);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case BtBitfieldMessage::ID:
|
case BtBitfieldMessage::ID:
|
||||||
msg = BtBitfieldMessage::create(data, dataLength);
|
msg.reset(BtBitfieldMessage::create(data, dataLength));
|
||||||
{
|
|
||||||
if(!metadataGetMode_) {
|
if(!metadataGetMode_) {
|
||||||
SharedHandle<BtMessageValidator> v
|
SharedHandle<BtMessageValidator> v
|
||||||
(new BtBitfieldMessageValidator
|
(new BtBitfieldMessageValidator
|
||||||
|
@ -139,106 +135,101 @@ DefaultBtMessageFactory::createBtMessage
|
||||||
downloadContext_->getNumPieces()));
|
downloadContext_->getNumPieces()));
|
||||||
msg->setBtMessageValidator(v);
|
msg->setBtMessageValidator(v);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case BtRequestMessage::ID: {
|
case BtRequestMessage::ID: {
|
||||||
BtRequestMessageHandle temp = BtRequestMessage::create(data, dataLength);
|
BtRequestMessage* m = BtRequestMessage::create(data, dataLength);
|
||||||
if(!metadataGetMode_) {
|
if(!metadataGetMode_) {
|
||||||
SharedHandle<BtMessageValidator> validator
|
SharedHandle<BtMessageValidator> validator
|
||||||
(new RangeBtMessageValidator
|
(new RangeBtMessageValidator
|
||||||
(temp.get(),
|
(m,
|
||||||
downloadContext_->getNumPieces(),
|
downloadContext_->getNumPieces(),
|
||||||
pieceStorage_->getPieceLength(temp->getIndex())));
|
pieceStorage_->getPieceLength(m->getIndex())));
|
||||||
temp->setBtMessageValidator(validator);
|
m->setBtMessageValidator(validator);
|
||||||
}
|
}
|
||||||
msg = temp;
|
msg.reset(m);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case BtCancelMessage::ID: {
|
case BtCancelMessage::ID: {
|
||||||
BtCancelMessageHandle temp = BtCancelMessage::create(data, dataLength);
|
BtCancelMessage* m = BtCancelMessage::create(data, dataLength);
|
||||||
if(!metadataGetMode_) {
|
if(!metadataGetMode_) {
|
||||||
SharedHandle<BtMessageValidator> validator
|
SharedHandle<BtMessageValidator> validator
|
||||||
(new RangeBtMessageValidator
|
(new RangeBtMessageValidator
|
||||||
(temp.get(),
|
(m,
|
||||||
downloadContext_->getNumPieces(),
|
downloadContext_->getNumPieces(),
|
||||||
pieceStorage_->getPieceLength(temp->getIndex())));
|
pieceStorage_->getPieceLength(m->getIndex())));
|
||||||
temp->setBtMessageValidator(validator);
|
m->setBtMessageValidator(validator);
|
||||||
}
|
}
|
||||||
msg = temp;
|
msg.reset(m);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case BtPieceMessage::ID: {
|
case BtPieceMessage::ID: {
|
||||||
BtPieceMessageHandle temp = BtPieceMessage::create(data, dataLength);
|
BtPieceMessage* m = BtPieceMessage::create(data, dataLength);
|
||||||
if(!metadataGetMode_) {
|
if(!metadataGetMode_) {
|
||||||
BtMessageValidatorHandle validator
|
BtMessageValidatorHandle validator
|
||||||
(new BtPieceMessageValidator
|
(new BtPieceMessageValidator
|
||||||
(temp.get(),
|
(m,
|
||||||
downloadContext_->getNumPieces(),
|
downloadContext_->getNumPieces(),
|
||||||
pieceStorage_->getPieceLength(temp->getIndex())));
|
pieceStorage_->getPieceLength(m->getIndex())));
|
||||||
temp->setBtMessageValidator(validator);
|
m->setBtMessageValidator(validator);
|
||||||
}
|
}
|
||||||
temp->setDownloadContext(downloadContext_);
|
m->setDownloadContext(downloadContext_);
|
||||||
temp->setPeerStorage(peerStorage_);
|
m->setPeerStorage(peerStorage_);
|
||||||
msg = temp;
|
msg.reset(m);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case BtHaveAllMessage::ID:
|
case BtHaveAllMessage::ID:
|
||||||
msg = BtHaveAllMessage::create(data, dataLength);
|
msg.reset(BtHaveAllMessage::create(data, dataLength));
|
||||||
break;
|
break;
|
||||||
case BtHaveNoneMessage::ID:
|
case BtHaveNoneMessage::ID:
|
||||||
msg = BtHaveNoneMessage::create(data, dataLength);
|
msg.reset(BtHaveNoneMessage::create(data, dataLength));
|
||||||
break;
|
break;
|
||||||
case BtRejectMessage::ID: {
|
case BtRejectMessage::ID: {
|
||||||
BtRejectMessageHandle temp = BtRejectMessage::create(data, dataLength);
|
BtRejectMessage* m = BtRejectMessage::create(data, dataLength);
|
||||||
if(!metadataGetMode_) {
|
if(!metadataGetMode_) {
|
||||||
SharedHandle<BtMessageValidator> validator
|
SharedHandle<BtMessageValidator> validator
|
||||||
(new RangeBtMessageValidator
|
(new RangeBtMessageValidator
|
||||||
(temp.get(),
|
(m,
|
||||||
downloadContext_->getNumPieces(),
|
downloadContext_->getNumPieces(),
|
||||||
pieceStorage_->getPieceLength(temp->getIndex())));
|
pieceStorage_->getPieceLength(m->getIndex())));
|
||||||
temp->setBtMessageValidator(validator);
|
m->setBtMessageValidator(validator);
|
||||||
}
|
}
|
||||||
msg = temp;
|
msg.reset(m);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case BtSuggestPieceMessage::ID: {
|
case BtSuggestPieceMessage::ID: {
|
||||||
BtSuggestPieceMessageHandle temp =
|
BtSuggestPieceMessage* m =
|
||||||
BtSuggestPieceMessage::create(data, dataLength);
|
BtSuggestPieceMessage::create(data, dataLength);
|
||||||
if(!metadataGetMode_) {
|
if(!metadataGetMode_) {
|
||||||
SharedHandle<BtMessageValidator> validator
|
SharedHandle<BtMessageValidator> validator
|
||||||
(new IndexBtMessageValidator(temp.get(),
|
(new IndexBtMessageValidator(m, downloadContext_->getNumPieces()));
|
||||||
downloadContext_->getNumPieces()));
|
m->setBtMessageValidator(validator);
|
||||||
temp->setBtMessageValidator(validator);
|
|
||||||
}
|
}
|
||||||
msg = temp;
|
msg.reset(m);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case BtAllowedFastMessage::ID: {
|
case BtAllowedFastMessage::ID: {
|
||||||
BtAllowedFastMessageHandle temp =
|
BtAllowedFastMessage* m = BtAllowedFastMessage::create(data, dataLength);
|
||||||
BtAllowedFastMessage::create(data, dataLength);
|
|
||||||
if(!metadataGetMode_) {
|
if(!metadataGetMode_) {
|
||||||
SharedHandle<BtMessageValidator> validator
|
SharedHandle<BtMessageValidator> validator
|
||||||
(new IndexBtMessageValidator(temp.get(),
|
(new IndexBtMessageValidator(m, downloadContext_->getNumPieces()));
|
||||||
downloadContext_->getNumPieces()));
|
m->setBtMessageValidator(validator);
|
||||||
temp->setBtMessageValidator(validator);
|
|
||||||
}
|
}
|
||||||
msg = temp;
|
msg.reset(m);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case BtPortMessage::ID: {
|
case BtPortMessage::ID: {
|
||||||
SharedHandle<BtPortMessage> temp =
|
BtPortMessage* m = BtPortMessage::create(data, dataLength);
|
||||||
BtPortMessage::create(data, dataLength);
|
m->setLocalNode(localNode_);
|
||||||
temp->setLocalNode(localNode_);
|
m->setRoutingTable(routingTable_);
|
||||||
temp->setRoutingTable(routingTable_);
|
m->setTaskQueue(taskQueue_);
|
||||||
temp->setTaskQueue(taskQueue_);
|
m->setTaskFactory(taskFactory_);
|
||||||
temp->setTaskFactory(taskFactory_);
|
msg.reset(m);
|
||||||
msg = temp;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case BtExtendedMessage::ID: {
|
case BtExtendedMessage::ID: {
|
||||||
if(peer_->isExtendedMessagingEnabled()) {
|
if(peer_->isExtendedMessagingEnabled()) {
|
||||||
msg = BtExtendedMessage::create(extensionMessageFactory_,
|
msg.reset(BtExtendedMessage::create(extensionMessageFactory_,
|
||||||
peer_, data, dataLength);
|
peer_, data, dataLength));
|
||||||
} else {
|
} else {
|
||||||
throw DL_ABORT_EX("Received extended message from peer during"
|
throw DL_ABORT_EX("Received extended message from peer during"
|
||||||
" a session with extended messaging disabled.");
|
" a session with extended messaging disabled.");
|
||||||
|
@ -249,12 +240,12 @@ DefaultBtMessageFactory::createBtMessage
|
||||||
throw DL_ABORT_EX(fmt("Invalid message ID. id=%u", id));
|
throw DL_ABORT_EX(fmt("Invalid message ID. id=%u", id));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
setCommonProperty(msg);
|
setCommonProperty(msg.get());
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DefaultBtMessageFactory::setCommonProperty
|
void DefaultBtMessageFactory::setCommonProperty(AbstractBtMessage* msg)
|
||||||
(const AbstractBtMessageHandle& msg) {
|
{
|
||||||
msg->setCuid(cuid_);
|
msg->setCuid(cuid_);
|
||||||
msg->setPeer(peer_);
|
msg->setPeer(peer_);
|
||||||
msg->setPieceStorage(pieceStorage_);
|
msg->setPieceStorage(pieceStorage_);
|
||||||
|
@ -277,7 +268,7 @@ DefaultBtMessageFactory::createHandshakeMessage
|
||||||
(new BtHandshakeMessageValidator
|
(new BtHandshakeMessageValidator
|
||||||
(msg.get(), bittorrent::getInfoHash(downloadContext_)));
|
(msg.get(), bittorrent::getInfoHash(downloadContext_)));
|
||||||
msg->setBtMessageValidator(validator);
|
msg->setBtMessageValidator(validator);
|
||||||
setCommonProperty(msg);
|
setCommonProperty(msg.get());
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -292,181 +283,180 @@ DefaultBtMessageFactory::createHandshakeMessage(const unsigned char* infoHash,
|
||||||
(msg.get(), bittorrent::getInfoHash(downloadContext_)));
|
(msg.get(), bittorrent::getInfoHash(downloadContext_)));
|
||||||
msg->setBtMessageValidator(validator);
|
msg->setBtMessageValidator(validator);
|
||||||
msg->setDHTEnabled(dhtEnabled_);
|
msg->setDHTEnabled(dhtEnabled_);
|
||||||
setCommonProperty(msg);
|
setCommonProperty(msg.get());
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
BtMessageHandle
|
SharedHandle<BtMessage>
|
||||||
DefaultBtMessageFactory::createRequestMessage
|
DefaultBtMessageFactory::createRequestMessage
|
||||||
(const SharedHandle<Piece>& piece, size_t blockIndex)
|
(const SharedHandle<Piece>& piece, size_t blockIndex)
|
||||||
{
|
{
|
||||||
BtRequestMessageHandle msg
|
BtRequestMessage* msg
|
||||||
(new BtRequestMessage(piece->getIndex(),
|
(new BtRequestMessage(piece->getIndex(),
|
||||||
blockIndex*piece->getBlockLength(),
|
blockIndex*piece->getBlockLength(),
|
||||||
piece->getBlockLength(blockIndex),
|
piece->getBlockLength(blockIndex),
|
||||||
blockIndex));
|
blockIndex));
|
||||||
SharedHandle<BtMessageValidator> validator
|
SharedHandle<BtMessageValidator> validator
|
||||||
(new RangeBtMessageValidator
|
(new RangeBtMessageValidator
|
||||||
(msg.get(),
|
(msg,
|
||||||
downloadContext_->getNumPieces(),
|
downloadContext_->getNumPieces(),
|
||||||
pieceStorage_->getPieceLength(msg->getIndex())));
|
pieceStorage_->getPieceLength(msg->getIndex())));
|
||||||
msg->setBtMessageValidator(validator);
|
msg->setBtMessageValidator(validator);
|
||||||
setCommonProperty(msg);
|
setCommonProperty(msg);
|
||||||
return msg;
|
return SharedHandle<BtMessage>(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
BtMessageHandle
|
SharedHandle<BtMessage>
|
||||||
DefaultBtMessageFactory::createCancelMessage
|
DefaultBtMessageFactory::createCancelMessage
|
||||||
(size_t index, int32_t begin, int32_t length)
|
(size_t index, int32_t begin, int32_t length)
|
||||||
{
|
{
|
||||||
BtCancelMessageHandle msg(new BtCancelMessage(index, begin, length));
|
BtCancelMessage* msg(new BtCancelMessage(index, begin, length));
|
||||||
SharedHandle<BtMessageValidator> validator
|
SharedHandle<BtMessageValidator> validator
|
||||||
(new RangeBtMessageValidator
|
(new RangeBtMessageValidator
|
||||||
(msg.get(),
|
(msg,
|
||||||
downloadContext_->getNumPieces(),
|
downloadContext_->getNumPieces(),
|
||||||
pieceStorage_->getPieceLength(index)));
|
pieceStorage_->getPieceLength(index)));
|
||||||
msg->setBtMessageValidator(validator);
|
msg->setBtMessageValidator(validator);
|
||||||
setCommonProperty(msg);
|
setCommonProperty(msg);
|
||||||
return msg;
|
return SharedHandle<BtMessage>(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
BtMessageHandle
|
SharedHandle<BtMessage>
|
||||||
DefaultBtMessageFactory::createPieceMessage
|
DefaultBtMessageFactory::createPieceMessage
|
||||||
(size_t index, int32_t begin, int32_t length)
|
(size_t index, int32_t begin, int32_t length)
|
||||||
{
|
{
|
||||||
BtPieceMessageHandle msg(new BtPieceMessage(index, begin, length));
|
BtPieceMessage* msg(new BtPieceMessage(index, begin, length));
|
||||||
BtMessageValidatorHandle validator
|
BtMessageValidatorHandle validator
|
||||||
(new BtPieceMessageValidator(msg.get(),
|
(new BtPieceMessageValidator(msg,
|
||||||
downloadContext_->getNumPieces(),
|
downloadContext_->getNumPieces(),
|
||||||
pieceStorage_->getPieceLength(index)));
|
pieceStorage_->getPieceLength(index)));
|
||||||
msg->setBtMessageValidator(validator);
|
msg->setBtMessageValidator(validator);
|
||||||
msg->setDownloadContext(downloadContext_);
|
msg->setDownloadContext(downloadContext_);
|
||||||
setCommonProperty(msg);
|
setCommonProperty(msg);
|
||||||
return msg;
|
return SharedHandle<BtMessage>(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
BtMessageHandle
|
SharedHandle<BtMessage>
|
||||||
DefaultBtMessageFactory::createHaveMessage(size_t index)
|
DefaultBtMessageFactory::createHaveMessage(size_t index)
|
||||||
{
|
{
|
||||||
BtHaveMessageHandle msg(new BtHaveMessage(index));
|
BtHaveMessage* msg(new BtHaveMessage(index));
|
||||||
SharedHandle<BtMessageValidator> v
|
SharedHandle<BtMessageValidator> v
|
||||||
(new IndexBtMessageValidator(msg.get(), downloadContext_->getNumPieces()));
|
(new IndexBtMessageValidator(msg, downloadContext_->getNumPieces()));
|
||||||
msg->setBtMessageValidator(v);
|
msg->setBtMessageValidator(v);
|
||||||
setCommonProperty(msg);
|
setCommonProperty(msg);
|
||||||
return msg;
|
return SharedHandle<BtMessage>(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
BtMessageHandle
|
SharedHandle<BtMessage>
|
||||||
DefaultBtMessageFactory::createChokeMessage()
|
DefaultBtMessageFactory::createChokeMessage()
|
||||||
{
|
{
|
||||||
BtChokeMessageHandle msg(new BtChokeMessage());
|
BtChokeMessage* msg(new BtChokeMessage());
|
||||||
setCommonProperty(msg);
|
setCommonProperty(msg);
|
||||||
return msg;
|
return SharedHandle<BtMessage>(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
BtMessageHandle
|
SharedHandle<BtMessage>
|
||||||
DefaultBtMessageFactory::createUnchokeMessage()
|
DefaultBtMessageFactory::createUnchokeMessage()
|
||||||
{
|
{
|
||||||
BtUnchokeMessageHandle msg(new BtUnchokeMessage());
|
BtUnchokeMessage* msg(new BtUnchokeMessage());
|
||||||
setCommonProperty(msg);
|
setCommonProperty(msg);
|
||||||
return msg;
|
return SharedHandle<BtMessage>(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
BtMessageHandle
|
SharedHandle<BtMessage>
|
||||||
DefaultBtMessageFactory::createInterestedMessage()
|
DefaultBtMessageFactory::createInterestedMessage()
|
||||||
{
|
{
|
||||||
BtInterestedMessageHandle msg(new BtInterestedMessage());
|
BtInterestedMessage* msg(new BtInterestedMessage());
|
||||||
setCommonProperty(msg);
|
setCommonProperty(msg);
|
||||||
return msg;
|
return SharedHandle<BtMessage>(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
BtMessageHandle
|
SharedHandle<BtMessage>
|
||||||
DefaultBtMessageFactory::createNotInterestedMessage()
|
DefaultBtMessageFactory::createNotInterestedMessage()
|
||||||
{
|
{
|
||||||
BtNotInterestedMessageHandle msg(new BtNotInterestedMessage());
|
BtNotInterestedMessage* msg(new BtNotInterestedMessage());
|
||||||
setCommonProperty(msg);
|
setCommonProperty(msg);
|
||||||
return msg;
|
return SharedHandle<BtMessage>(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
BtMessageHandle
|
SharedHandle<BtMessage>
|
||||||
DefaultBtMessageFactory::createBitfieldMessage()
|
DefaultBtMessageFactory::createBitfieldMessage()
|
||||||
{
|
{
|
||||||
BtBitfieldMessageHandle msg
|
BtBitfieldMessage* msg
|
||||||
(new BtBitfieldMessage(pieceStorage_->getBitfield(),
|
(new BtBitfieldMessage(pieceStorage_->getBitfield(),
|
||||||
pieceStorage_->getBitfieldLength()));
|
pieceStorage_->getBitfieldLength()));
|
||||||
SharedHandle<BtMessageValidator> v
|
SharedHandle<BtMessageValidator> v
|
||||||
(new BtBitfieldMessageValidator(msg.get(),
|
(new BtBitfieldMessageValidator(msg, downloadContext_->getNumPieces()));
|
||||||
downloadContext_->getNumPieces()));
|
|
||||||
msg->setBtMessageValidator(v);
|
msg->setBtMessageValidator(v);
|
||||||
setCommonProperty(msg);
|
setCommonProperty(msg);
|
||||||
return msg;
|
return SharedHandle<BtMessage>(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
BtMessageHandle
|
SharedHandle<BtMessage>
|
||||||
DefaultBtMessageFactory::createKeepAliveMessage()
|
DefaultBtMessageFactory::createKeepAliveMessage()
|
||||||
{
|
{
|
||||||
BtKeepAliveMessageHandle msg(new BtKeepAliveMessage());
|
BtKeepAliveMessage* msg(new BtKeepAliveMessage());
|
||||||
setCommonProperty(msg);
|
setCommonProperty(msg);
|
||||||
return msg;
|
return SharedHandle<BtMessage>(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
BtMessageHandle
|
SharedHandle<BtMessage>
|
||||||
DefaultBtMessageFactory::createHaveAllMessage()
|
DefaultBtMessageFactory::createHaveAllMessage()
|
||||||
{
|
{
|
||||||
BtHaveAllMessageHandle msg(new BtHaveAllMessage());
|
BtHaveAllMessage* msg(new BtHaveAllMessage());
|
||||||
setCommonProperty(msg);
|
setCommonProperty(msg);
|
||||||
return msg;
|
return SharedHandle<BtMessage>(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
BtMessageHandle
|
SharedHandle<BtMessage>
|
||||||
DefaultBtMessageFactory::createHaveNoneMessage()
|
DefaultBtMessageFactory::createHaveNoneMessage()
|
||||||
{
|
{
|
||||||
BtHaveNoneMessageHandle msg(new BtHaveNoneMessage());
|
BtHaveNoneMessage* msg(new BtHaveNoneMessage());
|
||||||
setCommonProperty(msg);
|
setCommonProperty(msg);
|
||||||
return msg;
|
return SharedHandle<BtMessage>(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
BtMessageHandle
|
SharedHandle<BtMessage>
|
||||||
DefaultBtMessageFactory::createRejectMessage
|
DefaultBtMessageFactory::createRejectMessage
|
||||||
(size_t index, int32_t begin, int32_t length)
|
(size_t index, int32_t begin, int32_t length)
|
||||||
{
|
{
|
||||||
BtRejectMessageHandle msg(new BtRejectMessage(index, begin, length));
|
BtRejectMessage* msg(new BtRejectMessage(index, begin, length));
|
||||||
SharedHandle<BtMessageValidator> validator
|
SharedHandle<BtMessageValidator> validator
|
||||||
(new RangeBtMessageValidator
|
(new RangeBtMessageValidator
|
||||||
(msg.get(),
|
(msg,
|
||||||
downloadContext_->getNumPieces(),
|
downloadContext_->getNumPieces(),
|
||||||
pieceStorage_->getPieceLength(index)));
|
pieceStorage_->getPieceLength(index)));
|
||||||
msg->setBtMessageValidator(validator);
|
msg->setBtMessageValidator(validator);
|
||||||
setCommonProperty(msg);
|
setCommonProperty(msg);
|
||||||
return msg;
|
return SharedHandle<BtMessage>(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
BtMessageHandle
|
SharedHandle<BtMessage>
|
||||||
DefaultBtMessageFactory::createAllowedFastMessage(size_t index)
|
DefaultBtMessageFactory::createAllowedFastMessage(size_t index)
|
||||||
{
|
{
|
||||||
BtAllowedFastMessageHandle msg(new BtAllowedFastMessage(index));
|
BtAllowedFastMessage* msg(new BtAllowedFastMessage(index));
|
||||||
SharedHandle<BtMessageValidator> validator
|
SharedHandle<BtMessageValidator> validator
|
||||||
(new IndexBtMessageValidator(msg.get(), downloadContext_->getNumPieces()));
|
(new IndexBtMessageValidator(msg, downloadContext_->getNumPieces()));
|
||||||
msg->setBtMessageValidator(validator);
|
msg->setBtMessageValidator(validator);
|
||||||
setCommonProperty(msg);
|
setCommonProperty(msg);
|
||||||
return msg;
|
return SharedHandle<BtMessage>(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
BtMessageHandle
|
SharedHandle<BtMessage>
|
||||||
DefaultBtMessageFactory::createPortMessage(uint16_t port)
|
DefaultBtMessageFactory::createPortMessage(uint16_t port)
|
||||||
{
|
{
|
||||||
SharedHandle<BtPortMessage> msg(new BtPortMessage(port));
|
BtPortMessage* msg(new BtPortMessage(port));
|
||||||
setCommonProperty(msg);
|
setCommonProperty(msg);
|
||||||
return msg;
|
return SharedHandle<BtMessage>(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
BtMessageHandle
|
SharedHandle<BtMessage>
|
||||||
DefaultBtMessageFactory::createBtExtendedMessage
|
DefaultBtMessageFactory::createBtExtendedMessage
|
||||||
(const ExtensionMessageHandle& msg)
|
(const ExtensionMessageHandle& msg)
|
||||||
{
|
{
|
||||||
BtExtendedMessageHandle m(new BtExtendedMessage(msg));
|
BtExtendedMessage* m(new BtExtendedMessage(msg));
|
||||||
setCommonProperty(m);
|
setCommonProperty(m);
|
||||||
return m;
|
return SharedHandle<BtMessage>(m);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DefaultBtMessageFactory::setTaskQueue(DHTTaskQueue* taskQueue)
|
void DefaultBtMessageFactory::setTaskQueue(DHTTaskQueue* taskQueue)
|
||||||
|
|
|
@ -82,7 +82,7 @@ private:
|
||||||
|
|
||||||
bool metadataGetMode_;
|
bool metadataGetMode_;
|
||||||
|
|
||||||
void setCommonProperty(const SharedHandle<AbstractBtMessage>& msg);
|
void setCommonProperty(AbstractBtMessage* msg);
|
||||||
public:
|
public:
|
||||||
DefaultBtMessageFactory();
|
DefaultBtMessageFactory();
|
||||||
|
|
||||||
|
@ -176,8 +176,6 @@ public:
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef SharedHandle<DefaultBtMessageFactory> DefaultBtMessageFactoryHandle;
|
|
||||||
|
|
||||||
} // namespace aria2
|
} // namespace aria2
|
||||||
|
|
||||||
#endif // D_DEFAULT_BT_MESSAGE_FACTORY_H
|
#endif // D_DEFAULT_BT_MESSAGE_FACTORY_H
|
||||||
|
|
|
@ -47,11 +47,11 @@ private:
|
||||||
static const size_t MESSAGE_LENGTH = 9;
|
static const size_t MESSAGE_LENGTH = 9;
|
||||||
protected:
|
protected:
|
||||||
template<typename T>
|
template<typename T>
|
||||||
static SharedHandle<T> create(const unsigned char* data, size_t dataLength)
|
static T* create(const unsigned char* data, size_t dataLength)
|
||||||
{
|
{
|
||||||
bittorrent::assertPayloadLengthEqual(5, dataLength, T::NAME);
|
bittorrent::assertPayloadLengthEqual(5, dataLength, T::NAME);
|
||||||
bittorrent::assertID(T::ID, data, T::NAME);
|
bittorrent::assertID(T::ID, data, T::NAME);
|
||||||
SharedHandle<T> message(new T());
|
T* message(new T());
|
||||||
message->setIndex(bittorrent::getIntParam(data, 1));
|
message->setIndex(bittorrent::getIntParam(data, 1));
|
||||||
return message;
|
return message;
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,12 +49,11 @@ private:
|
||||||
static const size_t MESSAGE_LENGTH = 17;
|
static const size_t MESSAGE_LENGTH = 17;
|
||||||
protected:
|
protected:
|
||||||
template<typename T>
|
template<typename T>
|
||||||
static SharedHandle<T> create
|
static T* create(const unsigned char* data, size_t dataLength)
|
||||||
(const unsigned char* data, size_t dataLength)
|
|
||||||
{
|
{
|
||||||
bittorrent::assertPayloadLengthEqual(13, dataLength, T::NAME);
|
bittorrent::assertPayloadLengthEqual(13, dataLength, T::NAME);
|
||||||
bittorrent::assertID(T::ID, data, T::NAME);
|
bittorrent::assertID(T::ID, data, T::NAME);
|
||||||
SharedHandle<T> message(new T());
|
T* message(new T());
|
||||||
message->setIndex(bittorrent::getIntParam(data, 1));
|
message->setIndex(bittorrent::getIntParam(data, 1));
|
||||||
message->setBegin(bittorrent::getIntParam(data, 5));
|
message->setBegin(bittorrent::getIntParam(data, 5));
|
||||||
message->setLength(bittorrent::getIntParam(data, 9));
|
message->setLength(bittorrent::getIntParam(data, 9));
|
||||||
|
|
|
@ -45,11 +45,11 @@ private:
|
||||||
static const size_t MESSAGE_LENGTH = 5;
|
static const size_t MESSAGE_LENGTH = 5;
|
||||||
protected:
|
protected:
|
||||||
template<typename T>
|
template<typename T>
|
||||||
static SharedHandle<T> create(const unsigned char* data, size_t dataLength)
|
static T* create(const unsigned char* data, size_t dataLength)
|
||||||
{
|
{
|
||||||
bittorrent::assertPayloadLengthEqual(1, dataLength, T::NAME);
|
bittorrent::assertPayloadLengthEqual(1, dataLength, T::NAME);
|
||||||
bittorrent::assertID(T::ID, data, T::NAME);
|
bittorrent::assertID(T::ID, data, T::NAME);
|
||||||
SharedHandle<T> message(new T());
|
T* message(new T());
|
||||||
return message;
|
return message;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,8 @@ void BtAllowedFastMessageTest::testCreate() {
|
||||||
unsigned char msg[9];
|
unsigned char msg[9];
|
||||||
bittorrent::createPeerMessageString(msg, sizeof(msg), 5, 17);
|
bittorrent::createPeerMessageString(msg, sizeof(msg), 5, 17);
|
||||||
bittorrent::setIntParam(&msg[5], 12345);
|
bittorrent::setIntParam(&msg[5], 12345);
|
||||||
SharedHandle<BtAllowedFastMessage> pm = BtAllowedFastMessage::create(&msg[4], 5);
|
SharedHandle<BtAllowedFastMessage> pm
|
||||||
|
(BtAllowedFastMessage::create(&msg[4], 5));
|
||||||
CPPUNIT_ASSERT_EQUAL((uint8_t)17, pm->getId());
|
CPPUNIT_ASSERT_EQUAL((uint8_t)17, pm->getId());
|
||||||
CPPUNIT_ASSERT_EQUAL((size_t)12345, pm->getIndex());
|
CPPUNIT_ASSERT_EQUAL((size_t)12345, pm->getIndex());
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ void BtBitfieldMessageTest::testCreate() {
|
||||||
unsigned char bitfield[2];
|
unsigned char bitfield[2];
|
||||||
memset(bitfield, 0xff, sizeof(bitfield));
|
memset(bitfield, 0xff, sizeof(bitfield));
|
||||||
memcpy(&msg[5], bitfield, sizeof(bitfield));
|
memcpy(&msg[5], bitfield, sizeof(bitfield));
|
||||||
SharedHandle<BtBitfieldMessage> pm = BtBitfieldMessage::create(&msg[4], 3);
|
SharedHandle<BtBitfieldMessage> pm(BtBitfieldMessage::create(&msg[4], 3));
|
||||||
CPPUNIT_ASSERT_EQUAL((uint8_t)5, pm->getId());
|
CPPUNIT_ASSERT_EQUAL((uint8_t)5, pm->getId());
|
||||||
CPPUNIT_ASSERT(memcmp(bitfield, pm->getBitfield(), sizeof(bitfield)) == 0);
|
CPPUNIT_ASSERT(memcmp(bitfield, pm->getBitfield(), sizeof(bitfield)) == 0);
|
||||||
CPPUNIT_ASSERT_EQUAL((size_t)2, pm->getBitfieldLength());
|
CPPUNIT_ASSERT_EQUAL((size_t)2, pm->getBitfieldLength());
|
||||||
|
|
|
@ -58,7 +58,7 @@ void BtCancelMessageTest::testCreate() {
|
||||||
bittorrent::setIntParam(&msg[5], 12345);
|
bittorrent::setIntParam(&msg[5], 12345);
|
||||||
bittorrent::setIntParam(&msg[9], 256);
|
bittorrent::setIntParam(&msg[9], 256);
|
||||||
bittorrent::setIntParam(&msg[13], 1024);
|
bittorrent::setIntParam(&msg[13], 1024);
|
||||||
SharedHandle<BtCancelMessage> pm = BtCancelMessage::create(&msg[4], 13);
|
SharedHandle<BtCancelMessage> pm(BtCancelMessage::create(&msg[4], 13));
|
||||||
CPPUNIT_ASSERT_EQUAL((uint8_t)8, pm->getId());
|
CPPUNIT_ASSERT_EQUAL((uint8_t)8, pm->getId());
|
||||||
CPPUNIT_ASSERT_EQUAL((size_t)12345, pm->getIndex());
|
CPPUNIT_ASSERT_EQUAL((size_t)12345, pm->getIndex());
|
||||||
CPPUNIT_ASSERT_EQUAL(256, pm->getBegin());
|
CPPUNIT_ASSERT_EQUAL(256, pm->getBegin());
|
||||||
|
|
|
@ -71,7 +71,7 @@ CPPUNIT_TEST_SUITE_REGISTRATION(BtChokeMessageTest);
|
||||||
void BtChokeMessageTest::testCreate() {
|
void BtChokeMessageTest::testCreate() {
|
||||||
unsigned char msg[5];
|
unsigned char msg[5];
|
||||||
bittorrent::createPeerMessageString(msg, sizeof(msg), 1, 0);
|
bittorrent::createPeerMessageString(msg, sizeof(msg), 1, 0);
|
||||||
SharedHandle<BtChokeMessage> pm = BtChokeMessage::create(&msg[4], 1);
|
SharedHandle<BtChokeMessage> pm(BtChokeMessage::create(&msg[4], 1));
|
||||||
CPPUNIT_ASSERT_EQUAL((uint8_t)0, pm->getId());
|
CPPUNIT_ASSERT_EQUAL((uint8_t)0, pm->getId());
|
||||||
|
|
||||||
// case: payload size is wrong
|
// case: payload size is wrong
|
||||||
|
|
|
@ -45,9 +45,9 @@ void BtExtendedMessageTest::testCreate() {
|
||||||
bittorrent::createPeerMessageString((unsigned char*)msg, sizeof(msg), 13, 20);
|
bittorrent::createPeerMessageString((unsigned char*)msg, sizeof(msg), 13, 20);
|
||||||
msg[5] = 1; // Set dummy extended message ID 1
|
msg[5] = 1; // Set dummy extended message ID 1
|
||||||
memcpy(msg+6, payload.c_str(), payload.size());
|
memcpy(msg+6, payload.c_str(), payload.size());
|
||||||
SharedHandle<BtExtendedMessage> pm = BtExtendedMessage::create(exmsgFactory,
|
SharedHandle<BtExtendedMessage> pm(BtExtendedMessage::create(exmsgFactory,
|
||||||
peer,
|
peer,
|
||||||
&msg[4], 13);
|
&msg[4], 13));
|
||||||
CPPUNIT_ASSERT_EQUAL((uint8_t)20, pm->getId());
|
CPPUNIT_ASSERT_EQUAL((uint8_t)20, pm->getId());
|
||||||
|
|
||||||
// case: payload size is wrong
|
// case: payload size is wrong
|
||||||
|
|
|
@ -38,7 +38,7 @@ CPPUNIT_TEST_SUITE_REGISTRATION(BtHaveAllMessageTest);
|
||||||
void BtHaveAllMessageTest::testCreate() {
|
void BtHaveAllMessageTest::testCreate() {
|
||||||
unsigned char msg[5];
|
unsigned char msg[5];
|
||||||
bittorrent::createPeerMessageString(msg, sizeof(msg), 1, 14);
|
bittorrent::createPeerMessageString(msg, sizeof(msg), 1, 14);
|
||||||
SharedHandle<BtHaveAllMessage> pm = BtHaveAllMessage::create(&msg[4], 1);
|
SharedHandle<BtHaveAllMessage> pm(BtHaveAllMessage::create(&msg[4], 1));
|
||||||
CPPUNIT_ASSERT_EQUAL((uint8_t)14, pm->getId());
|
CPPUNIT_ASSERT_EQUAL((uint8_t)14, pm->getId());
|
||||||
|
|
||||||
// case: payload size is wrong
|
// case: payload size is wrong
|
||||||
|
|
|
@ -41,7 +41,7 @@ void BtHaveMessageTest::testCreate() {
|
||||||
unsigned char msg[9];
|
unsigned char msg[9];
|
||||||
bittorrent::createPeerMessageString(msg, sizeof(msg), 5, 4);
|
bittorrent::createPeerMessageString(msg, sizeof(msg), 5, 4);
|
||||||
bittorrent::setIntParam(&msg[5], 12345);
|
bittorrent::setIntParam(&msg[5], 12345);
|
||||||
SharedHandle<BtHaveMessage> pm = BtHaveMessage::create(&msg[4], 5);
|
SharedHandle<BtHaveMessage> pm(BtHaveMessage::create(&msg[4], 5));
|
||||||
CPPUNIT_ASSERT_EQUAL((uint8_t)4, pm->getId());
|
CPPUNIT_ASSERT_EQUAL((uint8_t)4, pm->getId());
|
||||||
CPPUNIT_ASSERT_EQUAL((size_t)12345, pm->getIndex());
|
CPPUNIT_ASSERT_EQUAL((size_t)12345, pm->getIndex());
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ CPPUNIT_TEST_SUITE_REGISTRATION(BtHaveNoneMessageTest);
|
||||||
void BtHaveNoneMessageTest::testCreate() {
|
void BtHaveNoneMessageTest::testCreate() {
|
||||||
unsigned char msg[5];
|
unsigned char msg[5];
|
||||||
bittorrent::createPeerMessageString(msg, sizeof(msg), 1, 15);
|
bittorrent::createPeerMessageString(msg, sizeof(msg), 1, 15);
|
||||||
SharedHandle<BtHaveNoneMessage> pm = BtHaveNoneMessage::create(&msg[4], 1);
|
SharedHandle<BtHaveNoneMessage> pm(BtHaveNoneMessage::create(&msg[4], 1));
|
||||||
CPPUNIT_ASSERT_EQUAL((uint8_t)15, pm->getId());
|
CPPUNIT_ASSERT_EQUAL((uint8_t)15, pm->getId());
|
||||||
|
|
||||||
// case: payload size is wrong
|
// case: payload size is wrong
|
||||||
|
|
|
@ -33,7 +33,8 @@ CPPUNIT_TEST_SUITE_REGISTRATION(BtInterestedMessageTest);
|
||||||
void BtInterestedMessageTest::testCreate() {
|
void BtInterestedMessageTest::testCreate() {
|
||||||
unsigned char msg[5];
|
unsigned char msg[5];
|
||||||
bittorrent::createPeerMessageString(msg, sizeof(msg), 1, 2);
|
bittorrent::createPeerMessageString(msg, sizeof(msg), 1, 2);
|
||||||
BtInterestedMessageHandle pm = BtInterestedMessage::create(&msg[4], 1);
|
SharedHandle<BtInterestedMessage> pm
|
||||||
|
(BtInterestedMessage::create(&msg[4], 1));
|
||||||
CPPUNIT_ASSERT_EQUAL((uint8_t)2, pm->getId());
|
CPPUNIT_ASSERT_EQUAL((uint8_t)2, pm->getId());
|
||||||
|
|
||||||
// case: payload size is wrong
|
// case: payload size is wrong
|
||||||
|
|
|
@ -33,7 +33,8 @@ CPPUNIT_TEST_SUITE_REGISTRATION(BtNotInterestedMessageTest);
|
||||||
void BtNotInterestedMessageTest::testCreate() {
|
void BtNotInterestedMessageTest::testCreate() {
|
||||||
unsigned char msg[5];
|
unsigned char msg[5];
|
||||||
bittorrent::createPeerMessageString(msg, sizeof(msg), 1, 3);
|
bittorrent::createPeerMessageString(msg, sizeof(msg), 1, 3);
|
||||||
BtNotInterestedMessageHandle pm = BtNotInterestedMessage::create(&msg[4], 1);
|
SharedHandle<BtNotInterestedMessage> pm
|
||||||
|
(BtNotInterestedMessage::create(&msg[4], 1));
|
||||||
CPPUNIT_ASSERT_EQUAL((uint8_t)3, pm->getId());
|
CPPUNIT_ASSERT_EQUAL((uint8_t)3, pm->getId());
|
||||||
|
|
||||||
// case: payload size is wrong
|
// case: payload size is wrong
|
||||||
|
|
|
@ -110,7 +110,7 @@ void BtPieceMessageTest::testCreate() {
|
||||||
bittorrent::setIntParam(&msg[5], 12345);
|
bittorrent::setIntParam(&msg[5], 12345);
|
||||||
bittorrent::setIntParam(&msg[9], 256);
|
bittorrent::setIntParam(&msg[9], 256);
|
||||||
memcpy(&msg[13], data, sizeof(data));
|
memcpy(&msg[13], data, sizeof(data));
|
||||||
SharedHandle<BtPieceMessage> pm = BtPieceMessage::create(&msg[4], 11);
|
SharedHandle<BtPieceMessage> pm(BtPieceMessage::create(&msg[4], 11));
|
||||||
CPPUNIT_ASSERT_EQUAL((uint8_t)7, pm->getId());
|
CPPUNIT_ASSERT_EQUAL((uint8_t)7, pm->getId());
|
||||||
CPPUNIT_ASSERT_EQUAL((size_t)12345, pm->getIndex());
|
CPPUNIT_ASSERT_EQUAL((size_t)12345, pm->getIndex());
|
||||||
CPPUNIT_ASSERT_EQUAL(256, pm->getBegin());
|
CPPUNIT_ASSERT_EQUAL(256, pm->getBegin());
|
||||||
|
|
|
@ -62,7 +62,7 @@ void BtPortMessageTest::testCreate() {
|
||||||
unsigned char msg[7];
|
unsigned char msg[7];
|
||||||
bittorrent::createPeerMessageString(msg, sizeof(msg), 3, 9);
|
bittorrent::createPeerMessageString(msg, sizeof(msg), 3, 9);
|
||||||
bittorrent::setShortIntParam(&msg[5], 12345);
|
bittorrent::setShortIntParam(&msg[5], 12345);
|
||||||
SharedHandle<BtPortMessage> pm = BtPortMessage::create(&msg[4], 3);
|
SharedHandle<BtPortMessage> pm(BtPortMessage::create(&msg[4], 3));
|
||||||
CPPUNIT_ASSERT_EQUAL((uint8_t)9, pm->getId());
|
CPPUNIT_ASSERT_EQUAL((uint8_t)9, pm->getId());
|
||||||
CPPUNIT_ASSERT_EQUAL((uint16_t)12345, pm->getPort());
|
CPPUNIT_ASSERT_EQUAL((uint16_t)12345, pm->getPort());
|
||||||
|
|
||||||
|
|
|
@ -90,7 +90,7 @@ void BtRejectMessageTest::testCreate() {
|
||||||
bittorrent::setIntParam(&msg[5], 12345);
|
bittorrent::setIntParam(&msg[5], 12345);
|
||||||
bittorrent::setIntParam(&msg[9], 256);
|
bittorrent::setIntParam(&msg[9], 256);
|
||||||
bittorrent::setIntParam(&msg[13], 1024);
|
bittorrent::setIntParam(&msg[13], 1024);
|
||||||
SharedHandle<BtRejectMessage> pm = BtRejectMessage::create(&msg[4], 13);
|
SharedHandle<BtRejectMessage> pm(BtRejectMessage::create(&msg[4], 13));
|
||||||
CPPUNIT_ASSERT_EQUAL((uint8_t)16, pm->getId());
|
CPPUNIT_ASSERT_EQUAL((uint8_t)16, pm->getId());
|
||||||
CPPUNIT_ASSERT_EQUAL((size_t)12345, pm->getIndex());
|
CPPUNIT_ASSERT_EQUAL((size_t)12345, pm->getIndex());
|
||||||
CPPUNIT_ASSERT_EQUAL(256, pm->getBegin());
|
CPPUNIT_ASSERT_EQUAL(256, pm->getBegin());
|
||||||
|
|
|
@ -132,7 +132,7 @@ void BtRequestMessageTest::testCreate() {
|
||||||
bittorrent::setIntParam(&msg[5], 12345);
|
bittorrent::setIntParam(&msg[5], 12345);
|
||||||
bittorrent::setIntParam(&msg[9], 256);
|
bittorrent::setIntParam(&msg[9], 256);
|
||||||
bittorrent::setIntParam(&msg[13], 1024);
|
bittorrent::setIntParam(&msg[13], 1024);
|
||||||
SharedHandle<BtRequestMessage> pm = BtRequestMessage::create(&msg[4], 13);
|
SharedHandle<BtRequestMessage> pm(BtRequestMessage::create(&msg[4], 13));
|
||||||
CPPUNIT_ASSERT_EQUAL((uint8_t)6, pm->getId());
|
CPPUNIT_ASSERT_EQUAL((uint8_t)6, pm->getId());
|
||||||
CPPUNIT_ASSERT_EQUAL((size_t)12345, pm->getIndex());
|
CPPUNIT_ASSERT_EQUAL((size_t)12345, pm->getIndex());
|
||||||
CPPUNIT_ASSERT_EQUAL(256, pm->getBegin());
|
CPPUNIT_ASSERT_EQUAL(256, pm->getBegin());
|
||||||
|
|
|
@ -32,7 +32,8 @@ void BtSuggestPieceMessageTest::testCreate() {
|
||||||
unsigned char msg[9];
|
unsigned char msg[9];
|
||||||
bittorrent::createPeerMessageString(msg, sizeof(msg), 5, 13);
|
bittorrent::createPeerMessageString(msg, sizeof(msg), 5, 13);
|
||||||
bittorrent::setIntParam(&msg[5], 12345);
|
bittorrent::setIntParam(&msg[5], 12345);
|
||||||
SharedHandle<BtSuggestPieceMessage> pm = BtSuggestPieceMessage::create(&msg[4], 5);
|
SharedHandle<BtSuggestPieceMessage> pm
|
||||||
|
(BtSuggestPieceMessage::create(&msg[4], 5));
|
||||||
CPPUNIT_ASSERT_EQUAL((uint8_t)13, pm->getId());
|
CPPUNIT_ASSERT_EQUAL((uint8_t)13, pm->getId());
|
||||||
CPPUNIT_ASSERT_EQUAL((size_t)12345, pm->getIndex());
|
CPPUNIT_ASSERT_EQUAL((size_t)12345, pm->getIndex());
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,7 @@ CPPUNIT_TEST_SUITE_REGISTRATION(BtUnchokeMessageTest);
|
||||||
void BtUnchokeMessageTest::testCreate() {
|
void BtUnchokeMessageTest::testCreate() {
|
||||||
unsigned char msg[5];
|
unsigned char msg[5];
|
||||||
bittorrent::createPeerMessageString(msg, sizeof(msg), 1, 1);
|
bittorrent::createPeerMessageString(msg, sizeof(msg), 1, 1);
|
||||||
SharedHandle<BtUnchokeMessage> pm = BtUnchokeMessage::create(&msg[4], 1);
|
SharedHandle<BtUnchokeMessage> pm(BtUnchokeMessage::create(&msg[4], 1));
|
||||||
CPPUNIT_ASSERT_EQUAL((uint8_t)1, pm->getId());
|
CPPUNIT_ASSERT_EQUAL((uint8_t)1, pm->getId());
|
||||||
|
|
||||||
// case: payload size is wrong
|
// case: payload size is wrong
|
||||||
|
|
Loading…
Reference in New Issue