mirror of https://github.com/aria2/aria2
2009-04-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Removed ExtendedMessagingAware. Instead of using inheritance, added ExtensionMessageRegistry and it is passed to DefaultExtensionMessageFactory. * src/DefaultBtInteractive.cc * src/DefaultBtInteractive.h * src/DefaultExtensionMessageFactory.cc * src/DefaultExtensionMessageFactory.h * src/ExtendedMessagingAware.h: Removed. * src/ExtensionMessageFactory.h * src/ExtensionMessageRegistry.h: Added. * src/Makefile.am * src/PeerInteractionCommand.cc * test/DefaultExtensionMessageFactoryTest.ccpull/1/head
parent
3908d86213
commit
e385c68f52
16
ChangeLog
16
ChangeLog
|
@ -1,3 +1,19 @@
|
||||||
|
2009-04-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||||
|
|
||||||
|
Removed ExtendedMessagingAware. Instead of using inheritance,
|
||||||
|
added ExtensionMessageRegistry and it is passed to
|
||||||
|
DefaultExtensionMessageFactory.
|
||||||
|
* src/DefaultBtInteractive.cc
|
||||||
|
* src/DefaultBtInteractive.h
|
||||||
|
* src/DefaultExtensionMessageFactory.cc
|
||||||
|
* src/DefaultExtensionMessageFactory.h
|
||||||
|
* src/ExtendedMessagingAware.h: Removed.
|
||||||
|
* src/ExtensionMessageFactory.h
|
||||||
|
* src/ExtensionMessageRegistry.h: Added.
|
||||||
|
* src/Makefile.am
|
||||||
|
* src/PeerInteractionCommand.cc
|
||||||
|
* test/DefaultExtensionMessageFactoryTest.cc
|
||||||
|
|
||||||
2009-04-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
2009-04-25 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||||
|
|
||||||
Fixed typo in log messages
|
Fixed typo in log messages
|
||||||
|
|
|
@ -50,6 +50,7 @@
|
||||||
#include "HandshakeExtensionMessage.h"
|
#include "HandshakeExtensionMessage.h"
|
||||||
#include "UTPexExtensionMessage.h"
|
#include "UTPexExtensionMessage.h"
|
||||||
#include "DefaultExtensionMessageFactory.h"
|
#include "DefaultExtensionMessageFactory.h"
|
||||||
|
#include "ExtensionMessageRegistry.h"
|
||||||
#include "DHTNode.h"
|
#include "DHTNode.h"
|
||||||
#include "Peer.h"
|
#include "Peer.h"
|
||||||
#include "Piece.h"
|
#include "Piece.h"
|
||||||
|
@ -115,7 +116,7 @@ BtMessageHandle DefaultBtInteractive::receiveHandshake(bool quickReply) {
|
||||||
if(message->isExtendedMessagingEnabled()) {
|
if(message->isExtendedMessagingEnabled()) {
|
||||||
peer->setExtendedMessagingEnabled(true);
|
peer->setExtendedMessagingEnabled(true);
|
||||||
if(!_utPexEnabled) {
|
if(!_utPexEnabled) {
|
||||||
_extensionMessageFactory->removeExtension("ut_pex");
|
_extensionMessageRegistry->removeExtension("ut_pex");
|
||||||
}
|
}
|
||||||
logger->info(MSG_EXTENDED_MESSAGING_ENABLED, cuid);
|
logger->info(MSG_EXTENDED_MESSAGING_ENABLED, cuid);
|
||||||
}
|
}
|
||||||
|
@ -162,7 +163,7 @@ void DefaultBtInteractive::addHandshakeExtendedMessageToQueue()
|
||||||
HandshakeExtensionMessageHandle m(new HandshakeExtensionMessage());
|
HandshakeExtensionMessageHandle m(new HandshakeExtensionMessage());
|
||||||
m->setClientVersion(CLIENT_ARIA2);
|
m->setClientVersion(CLIENT_ARIA2);
|
||||||
m->setTCPPort(_btRuntime->getListenPort());
|
m->setTCPPort(_btRuntime->getListenPort());
|
||||||
m->setExtensions(_extensionMessageFactory->getExtensions());
|
m->setExtensions(_extensionMessageRegistry->getExtensions());
|
||||||
|
|
||||||
SharedHandle<BtMessage> msg = messageFactory->createBtExtendedMessage(m);
|
SharedHandle<BtMessage> msg = messageFactory->createBtExtendedMessage(m);
|
||||||
dispatcher->addMessageToQueue(msg);
|
dispatcher->addMessageToQueue(msg);
|
||||||
|
|
|
@ -55,6 +55,7 @@ class BtMessageFactory;
|
||||||
class BtRequestFactory;
|
class BtRequestFactory;
|
||||||
class PeerConnection;
|
class PeerConnection;
|
||||||
class ExtensionMessageFactory;
|
class ExtensionMessageFactory;
|
||||||
|
class ExtensionMessageRegistry;
|
||||||
class DHTNode;
|
class DHTNode;
|
||||||
class Logger;
|
class Logger;
|
||||||
class RequestGroupMan;
|
class RequestGroupMan;
|
||||||
|
@ -112,6 +113,7 @@ private:
|
||||||
SharedHandle<PeerConnection> peerConnection;
|
SharedHandle<PeerConnection> peerConnection;
|
||||||
SharedHandle<BtMessageFactory> messageFactory;
|
SharedHandle<BtMessageFactory> messageFactory;
|
||||||
SharedHandle<ExtensionMessageFactory> _extensionMessageFactory;
|
SharedHandle<ExtensionMessageFactory> _extensionMessageFactory;
|
||||||
|
SharedHandle<ExtensionMessageRegistry> _extensionMessageRegistry;
|
||||||
|
|
||||||
WeakHandle<DHTNode> _localNode;
|
WeakHandle<DHTNode> _localNode;
|
||||||
|
|
||||||
|
@ -203,6 +205,12 @@ public:
|
||||||
void setExtensionMessageFactory
|
void setExtensionMessageFactory
|
||||||
(const SharedHandle<ExtensionMessageFactory>& factory);
|
(const SharedHandle<ExtensionMessageFactory>& factory);
|
||||||
|
|
||||||
|
void setExtensionMessageRegistry
|
||||||
|
(const SharedHandle<ExtensionMessageRegistry>& registry)
|
||||||
|
{
|
||||||
|
_extensionMessageRegistry = registry;
|
||||||
|
}
|
||||||
|
|
||||||
void setKeepAliveInterval(time_t keepAliveInterval) {
|
void setKeepAliveInterval(time_t keepAliveInterval) {
|
||||||
this->keepAliveInterval = keepAliveInterval;
|
this->keepAliveInterval = keepAliveInterval;
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,16 +42,20 @@
|
||||||
#include "Logger.h"
|
#include "Logger.h"
|
||||||
#include "StringFormat.h"
|
#include "StringFormat.h"
|
||||||
#include "PeerStorage.h"
|
#include "PeerStorage.h"
|
||||||
|
#include "ExtensionMessageRegistry.h"
|
||||||
|
|
||||||
namespace aria2 {
|
namespace aria2 {
|
||||||
|
|
||||||
DefaultExtensionMessageFactory::DefaultExtensionMessageFactory():
|
DefaultExtensionMessageFactory::DefaultExtensionMessageFactory():
|
||||||
_logger(LogFactory::getInstance()) {}
|
_logger(LogFactory::getInstance()) {}
|
||||||
|
|
||||||
DefaultExtensionMessageFactory::DefaultExtensionMessageFactory(const BtContextHandle& btContext,
|
DefaultExtensionMessageFactory::DefaultExtensionMessageFactory
|
||||||
const PeerHandle& peer):
|
(const BtContextHandle& btContext,
|
||||||
|
const PeerHandle& peer,
|
||||||
|
const SharedHandle<ExtensionMessageRegistry>& registry):
|
||||||
_btContext(btContext),
|
_btContext(btContext),
|
||||||
_peer(peer),
|
_peer(peer),
|
||||||
|
_registry(registry),
|
||||||
_logger(LogFactory::getInstance()) {}
|
_logger(LogFactory::getInstance()) {}
|
||||||
|
|
||||||
DefaultExtensionMessageFactory::~DefaultExtensionMessageFactory() {}
|
DefaultExtensionMessageFactory::~DefaultExtensionMessageFactory() {}
|
||||||
|
@ -67,7 +71,7 @@ DefaultExtensionMessageFactory::createMessage(const unsigned char* data, size_t
|
||||||
m->setPeer(_peer);
|
m->setPeer(_peer);
|
||||||
return m;
|
return m;
|
||||||
} else {
|
} else {
|
||||||
std::string extensionName = getExtensionName(extensionMessageID);
|
std::string extensionName = _registry->getExtensionName(extensionMessageID);
|
||||||
if(extensionName.empty()) {
|
if(extensionName.empty()) {
|
||||||
throw DlAbortEx
|
throw DlAbortEx
|
||||||
(StringFormat("No extension registered for extended message ID %u",
|
(StringFormat("No extension registered for extended message ID %u",
|
||||||
|
|
|
@ -43,6 +43,7 @@ class BtContext;
|
||||||
class PeerStorage;
|
class PeerStorage;
|
||||||
class Peer;
|
class Peer;
|
||||||
class Logger;
|
class Logger;
|
||||||
|
class ExtensionMessageRegistry;
|
||||||
|
|
||||||
class DefaultExtensionMessageFactory:public ExtensionMessageFactory {
|
class DefaultExtensionMessageFactory:public ExtensionMessageFactory {
|
||||||
private:
|
private:
|
||||||
|
@ -52,13 +53,17 @@ private:
|
||||||
|
|
||||||
SharedHandle<Peer> _peer;
|
SharedHandle<Peer> _peer;
|
||||||
|
|
||||||
|
SharedHandle<ExtensionMessageRegistry> _registry;
|
||||||
|
|
||||||
Logger* _logger;
|
Logger* _logger;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
DefaultExtensionMessageFactory();
|
DefaultExtensionMessageFactory();
|
||||||
|
|
||||||
DefaultExtensionMessageFactory(const SharedHandle<BtContext>& btContext,
|
DefaultExtensionMessageFactory
|
||||||
const SharedHandle<Peer>& peer);
|
(const SharedHandle<BtContext>& btContext,
|
||||||
|
const SharedHandle<Peer>& peer,
|
||||||
|
const SharedHandle<ExtensionMessageRegistry>& registry);
|
||||||
|
|
||||||
virtual ~DefaultExtensionMessageFactory();
|
virtual ~DefaultExtensionMessageFactory();
|
||||||
|
|
||||||
|
@ -70,6 +75,12 @@ public:
|
||||||
void setPeerStorage(const SharedHandle<PeerStorage>& peerStorage);
|
void setPeerStorage(const SharedHandle<PeerStorage>& peerStorage);
|
||||||
|
|
||||||
void setPeer(const SharedHandle<Peer>& peer);
|
void setPeer(const SharedHandle<Peer>& peer);
|
||||||
|
|
||||||
|
void setExtensionMessageRegistry
|
||||||
|
(const SharedHandle<ExtensionMessageRegistry>& registry)
|
||||||
|
{
|
||||||
|
_registry = registry;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef SharedHandle<DefaultExtensionMessageFactory> DefaultExtensionMessageFactoryHandle;
|
typedef SharedHandle<DefaultExtensionMessageFactory> DefaultExtensionMessageFactoryHandle;
|
||||||
|
|
|
@ -35,14 +35,14 @@
|
||||||
#ifndef _D_EXTENSION_MESSAGE_FACTORY_H_
|
#ifndef _D_EXTENSION_MESSAGE_FACTORY_H_
|
||||||
#define _D_EXTENSION_MESSAGE_FACTORY_H_
|
#define _D_EXTENSION_MESSAGE_FACTORY_H_
|
||||||
|
|
||||||
#include "ExtendedMessagingAware.h"
|
#include "common.h"
|
||||||
#include "SharedHandle.h"
|
#include "SharedHandle.h"
|
||||||
|
|
||||||
namespace aria2 {
|
namespace aria2 {
|
||||||
|
|
||||||
class ExtensionMessage;
|
class ExtensionMessage;
|
||||||
|
|
||||||
class ExtensionMessageFactory:public ExtendedMessagingAware {
|
class ExtensionMessageFactory {
|
||||||
public:
|
public:
|
||||||
virtual ~ExtensionMessageFactory() {}
|
virtual ~ExtensionMessageFactory() {}
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
/*
|
/*
|
||||||
* aria2 - The high speed download utility
|
* aria2 - The high speed download utility
|
||||||
*
|
*
|
||||||
* Copyright (C) 2006 Tatsuhiro Tsujikawa
|
* Copyright (C) 2009 Tatsuhiro Tsujikawa
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -32,27 +32,27 @@
|
||||||
* files in the program, then also delete it here.
|
* files in the program, then also delete it here.
|
||||||
*/
|
*/
|
||||||
/* copyright --> */
|
/* copyright --> */
|
||||||
#ifndef _D_EXTENDED_MESSAGING_AWARE_H_
|
#ifndef _D_EXTENSION_MESSAGE_REGISTRY_H_
|
||||||
#define _D_EXTENDED_MESSAGING_AWARE_H_
|
#define _D_EXTENSION_MESSAGE_REGISTRY_H_
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
#include "BtConstants.h"
|
#include "BtConstants.h"
|
||||||
#include "A2STR.h"
|
#include "A2STR.h"
|
||||||
#include <string>
|
|
||||||
|
|
||||||
namespace aria2 {
|
namespace aria2 {
|
||||||
|
|
||||||
class ExtendedMessagingAware {
|
class ExtensionMessageRegistry {
|
||||||
private:
|
private:
|
||||||
Extensions _extensions;
|
Extensions _extensions;
|
||||||
public:
|
public:
|
||||||
ExtendedMessagingAware()
|
ExtensionMessageRegistry()
|
||||||
{
|
{
|
||||||
_extensions["ut_pex"] = 8;
|
_extensions["ut_pex"] = 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual ~ExtendedMessagingAware() {}
|
|
||||||
|
|
||||||
const Extensions& getExtensions() const
|
const Extensions& getExtensions() const
|
||||||
{
|
{
|
||||||
return _extensions;
|
return _extensions;
|
||||||
|
@ -68,10 +68,10 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string getExtensionName(uint8_t id) const
|
const std::string& getExtensionName(uint8_t id) const
|
||||||
{
|
{
|
||||||
for(Extensions::const_iterator itr = _extensions.begin();
|
for(Extensions::const_iterator itr = _extensions.begin();
|
||||||
itr != _extensions.end(); ++itr) {
|
itr != _extensions.end(); ++itr) {
|
||||||
const Extensions::value_type& p = *itr;
|
const Extensions::value_type& p = *itr;
|
||||||
if(p.second == id) {
|
if(p.second == id) {
|
||||||
return p.first;
|
return p.first;
|
||||||
|
@ -88,4 +88,4 @@ public:
|
||||||
|
|
||||||
} // namespace aria2
|
} // namespace aria2
|
||||||
|
|
||||||
#endif // _D_EXTENDED_MESSAGING_AWARE_H_
|
#endif // _D_EXTENSION_MESSAGE_REGISTRY_H_
|
|
@ -326,7 +326,6 @@ SRCS += PeerMessageUtil.cc PeerMessageUtil.h\
|
||||||
DefaultExtensionMessageFactory.cc DefaultExtensionMessageFactory.h\
|
DefaultExtensionMessageFactory.cc DefaultExtensionMessageFactory.h\
|
||||||
HandshakeExtensionMessage.cc HandshakeExtensionMessage.h\
|
HandshakeExtensionMessage.cc HandshakeExtensionMessage.h\
|
||||||
UTPexExtensionMessage.cc UTPexExtensionMessage.h\
|
UTPexExtensionMessage.cc UTPexExtensionMessage.h\
|
||||||
ExtendedMessagingAware.h\
|
|
||||||
DHTNode.cc DHTNode.h\
|
DHTNode.cc DHTNode.h\
|
||||||
DHTUtil.cc DHTUtil.h\
|
DHTUtil.cc DHTUtil.h\
|
||||||
DHTBucket.cc DHTBucket.h\
|
DHTBucket.cc DHTBucket.h\
|
||||||
|
@ -410,7 +409,8 @@ SRCS += PeerMessageUtil.cc PeerMessageUtil.h\
|
||||||
IndexBtMessage.cc IndexBtMessage.h\
|
IndexBtMessage.cc IndexBtMessage.h\
|
||||||
ZeroBtMessage.cc ZeroBtMessage.h\
|
ZeroBtMessage.cc ZeroBtMessage.h\
|
||||||
RangeBtMessageValidator.h\
|
RangeBtMessageValidator.h\
|
||||||
IndexBtMessageValidator.h
|
IndexBtMessageValidator.h\
|
||||||
|
ExtensionMessageRegistry.h
|
||||||
endif # ENABLE_BITTORRENT
|
endif # ENABLE_BITTORRENT
|
||||||
|
|
||||||
if ENABLE_METALINK
|
if ENABLE_METALINK
|
||||||
|
|
|
@ -127,7 +127,6 @@ bin_PROGRAMS = aria2c$(EXEEXT)
|
||||||
@ENABLE_BITTORRENT_TRUE@ DefaultExtensionMessageFactory.cc DefaultExtensionMessageFactory.h\
|
@ENABLE_BITTORRENT_TRUE@ DefaultExtensionMessageFactory.cc DefaultExtensionMessageFactory.h\
|
||||||
@ENABLE_BITTORRENT_TRUE@ HandshakeExtensionMessage.cc HandshakeExtensionMessage.h\
|
@ENABLE_BITTORRENT_TRUE@ HandshakeExtensionMessage.cc HandshakeExtensionMessage.h\
|
||||||
@ENABLE_BITTORRENT_TRUE@ UTPexExtensionMessage.cc UTPexExtensionMessage.h\
|
@ENABLE_BITTORRENT_TRUE@ UTPexExtensionMessage.cc UTPexExtensionMessage.h\
|
||||||
@ENABLE_BITTORRENT_TRUE@ ExtendedMessagingAware.h\
|
|
||||||
@ENABLE_BITTORRENT_TRUE@ DHTNode.cc DHTNode.h\
|
@ENABLE_BITTORRENT_TRUE@ DHTNode.cc DHTNode.h\
|
||||||
@ENABLE_BITTORRENT_TRUE@ DHTUtil.cc DHTUtil.h\
|
@ENABLE_BITTORRENT_TRUE@ DHTUtil.cc DHTUtil.h\
|
||||||
@ENABLE_BITTORRENT_TRUE@ DHTBucket.cc DHTBucket.h\
|
@ENABLE_BITTORRENT_TRUE@ DHTBucket.cc DHTBucket.h\
|
||||||
|
@ -211,7 +210,8 @@ bin_PROGRAMS = aria2c$(EXEEXT)
|
||||||
@ENABLE_BITTORRENT_TRUE@ IndexBtMessage.cc IndexBtMessage.h\
|
@ENABLE_BITTORRENT_TRUE@ IndexBtMessage.cc IndexBtMessage.h\
|
||||||
@ENABLE_BITTORRENT_TRUE@ ZeroBtMessage.cc ZeroBtMessage.h\
|
@ENABLE_BITTORRENT_TRUE@ ZeroBtMessage.cc ZeroBtMessage.h\
|
||||||
@ENABLE_BITTORRENT_TRUE@ RangeBtMessageValidator.h\
|
@ENABLE_BITTORRENT_TRUE@ RangeBtMessageValidator.h\
|
||||||
@ENABLE_BITTORRENT_TRUE@ IndexBtMessageValidator.h
|
@ENABLE_BITTORRENT_TRUE@ IndexBtMessageValidator.h\
|
||||||
|
@ENABLE_BITTORRENT_TRUE@ ExtensionMessageRegistry.h
|
||||||
|
|
||||||
@ENABLE_METALINK_TRUE@am__append_11 = Metalinker.cc Metalinker.h\
|
@ENABLE_METALINK_TRUE@am__append_11 = Metalinker.cc Metalinker.h\
|
||||||
@ENABLE_METALINK_TRUE@ MetalinkEntry.cc MetalinkEntry.h\
|
@ENABLE_METALINK_TRUE@ MetalinkEntry.cc MetalinkEntry.h\
|
||||||
|
@ -475,13 +475,12 @@ am__libaria2c_a_SOURCES_DIST = Socket.h SocketCore.cc SocketCore.h \
|
||||||
ExtensionMessageFactory.h DefaultExtensionMessageFactory.cc \
|
ExtensionMessageFactory.h DefaultExtensionMessageFactory.cc \
|
||||||
DefaultExtensionMessageFactory.h HandshakeExtensionMessage.cc \
|
DefaultExtensionMessageFactory.h HandshakeExtensionMessage.cc \
|
||||||
HandshakeExtensionMessage.h UTPexExtensionMessage.cc \
|
HandshakeExtensionMessage.h UTPexExtensionMessage.cc \
|
||||||
UTPexExtensionMessage.h ExtendedMessagingAware.h DHTNode.cc \
|
UTPexExtensionMessage.h DHTNode.cc DHTNode.h DHTUtil.cc \
|
||||||
DHTNode.h DHTUtil.cc DHTUtil.h DHTBucket.cc DHTBucket.h \
|
DHTUtil.h DHTBucket.cc DHTBucket.h DHTRoutingTable.cc \
|
||||||
DHTRoutingTable.cc DHTRoutingTable.h DHTMessageEntry.cc \
|
DHTRoutingTable.h DHTMessageEntry.cc DHTMessageEntry.h \
|
||||||
DHTMessageEntry.h DHTMessageDispatcher.h \
|
DHTMessageDispatcher.h DHTMessageDispatcherImpl.cc \
|
||||||
DHTMessageDispatcherImpl.cc DHTMessageDispatcherImpl.h \
|
DHTMessageDispatcherImpl.h DHTMessageReceiver.cc \
|
||||||
DHTMessageReceiver.cc DHTMessageReceiver.h \
|
DHTMessageReceiver.h DHTMessageTracker.cc DHTMessageTracker.h \
|
||||||
DHTMessageTracker.cc DHTMessageTracker.h \
|
|
||||||
DHTMessageTrackerEntry.cc DHTMessageTrackerEntry.h \
|
DHTMessageTrackerEntry.cc DHTMessageTrackerEntry.h \
|
||||||
DHTMessage.cc DHTMessage.h DHTConnection.h \
|
DHTMessage.cc DHTMessage.h DHTConnection.h \
|
||||||
DHTConnectionImpl.cc DHTConnectionImpl.h DHTAbstractMessage.cc \
|
DHTConnectionImpl.cc DHTConnectionImpl.h DHTAbstractMessage.cc \
|
||||||
|
@ -533,9 +532,9 @@ am__libaria2c_a_SOURCES_DIST = Socket.h SocketCore.cc SocketCore.h \
|
||||||
BtSeederStateChoke.h RangeBtMessage.cc RangeBtMessage.h \
|
BtSeederStateChoke.h RangeBtMessage.cc RangeBtMessage.h \
|
||||||
IndexBtMessage.cc IndexBtMessage.h ZeroBtMessage.cc \
|
IndexBtMessage.cc IndexBtMessage.h ZeroBtMessage.cc \
|
||||||
ZeroBtMessage.h RangeBtMessageValidator.h \
|
ZeroBtMessage.h RangeBtMessageValidator.h \
|
||||||
IndexBtMessageValidator.h Metalinker.cc Metalinker.h \
|
IndexBtMessageValidator.h ExtensionMessageRegistry.h \
|
||||||
MetalinkEntry.cc MetalinkEntry.h MetalinkResource.cc \
|
Metalinker.cc Metalinker.h MetalinkEntry.cc MetalinkEntry.h \
|
||||||
MetalinkResource.h MetalinkProcessor.h \
|
MetalinkResource.cc MetalinkResource.h MetalinkProcessor.h \
|
||||||
MetalinkProcessorFactory.cc MetalinkProcessorFactory.h \
|
MetalinkProcessorFactory.cc MetalinkProcessorFactory.h \
|
||||||
MetalinkParserController.cc MetalinkParserController.h \
|
MetalinkParserController.cc MetalinkParserController.h \
|
||||||
MetalinkParserStateMachine.cc MetalinkParserStateMachine.h \
|
MetalinkParserStateMachine.cc MetalinkParserStateMachine.h \
|
||||||
|
|
|
@ -69,6 +69,7 @@
|
||||||
#include "BtProgressInfoFile.h"
|
#include "BtProgressInfoFile.h"
|
||||||
#include "DefaultExtensionMessageFactory.h"
|
#include "DefaultExtensionMessageFactory.h"
|
||||||
#include "RequestGroupMan.h"
|
#include "RequestGroupMan.h"
|
||||||
|
#include "ExtensionMessageRegistry.h"
|
||||||
|
|
||||||
namespace aria2 {
|
namespace aria2 {
|
||||||
|
|
||||||
|
@ -102,8 +103,11 @@ PeerInteractionCommand::PeerInteractionCommand
|
||||||
SharedHandle<PeerStorage> peerStorage =
|
SharedHandle<PeerStorage> peerStorage =
|
||||||
btRegistry->getPeerStorage(_btContext->getInfoHashAsString());
|
btRegistry->getPeerStorage(_btContext->getInfoHashAsString());
|
||||||
|
|
||||||
|
SharedHandle<ExtensionMessageRegistry> exMsgRegistry
|
||||||
|
(new ExtensionMessageRegistry());
|
||||||
|
|
||||||
SharedHandle<DefaultExtensionMessageFactory> extensionMessageFactory
|
SharedHandle<DefaultExtensionMessageFactory> extensionMessageFactory
|
||||||
(new DefaultExtensionMessageFactory(_btContext, peer));
|
(new DefaultExtensionMessageFactory(_btContext, peer, exMsgRegistry));
|
||||||
extensionMessageFactory->setPeerStorage(peerStorage);
|
extensionMessageFactory->setPeerStorage(peerStorage);
|
||||||
|
|
||||||
SharedHandle<DefaultBtMessageFactory> factory(new DefaultBtMessageFactory());
|
SharedHandle<DefaultBtMessageFactory> factory(new DefaultBtMessageFactory());
|
||||||
|
@ -164,6 +168,7 @@ PeerInteractionCommand::PeerInteractionCommand
|
||||||
btInteractive->setBtRequestFactory(reqFactory);
|
btInteractive->setBtRequestFactory(reqFactory);
|
||||||
btInteractive->setPeerConnection(peerConnection);
|
btInteractive->setPeerConnection(peerConnection);
|
||||||
btInteractive->setExtensionMessageFactory(extensionMessageFactory);
|
btInteractive->setExtensionMessageFactory(extensionMessageFactory);
|
||||||
|
btInteractive->setExtensionMessageRegistry(exMsgRegistry);
|
||||||
btInteractive->setKeepAliveInterval
|
btInteractive->setKeepAliveInterval
|
||||||
(e->option->getAsInt(PREF_BT_KEEP_ALIVE_INTERVAL));
|
(e->option->getAsInt(PREF_BT_KEEP_ALIVE_INTERVAL));
|
||||||
btInteractive->setRequestGroupMan(e->_requestGroupMan);
|
btInteractive->setRequestGroupMan(e->_requestGroupMan);
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
#include "UTPexExtensionMessage.h"
|
#include "UTPexExtensionMessage.h"
|
||||||
#include "Exception.h"
|
#include "Exception.h"
|
||||||
#include "FileEntry.h"
|
#include "FileEntry.h"
|
||||||
|
#include "ExtensionMessageRegistry.h"
|
||||||
|
|
||||||
namespace aria2 {
|
namespace aria2 {
|
||||||
|
|
||||||
|
@ -27,6 +28,7 @@ private:
|
||||||
SharedHandle<MockPeerStorage> _peerStorage;
|
SharedHandle<MockPeerStorage> _peerStorage;
|
||||||
SharedHandle<Peer> _peer;
|
SharedHandle<Peer> _peer;
|
||||||
SharedHandle<DefaultExtensionMessageFactory> _factory;
|
SharedHandle<DefaultExtensionMessageFactory> _factory;
|
||||||
|
SharedHandle<ExtensionMessageRegistry> _registry;
|
||||||
public:
|
public:
|
||||||
void setUp()
|
void setUp()
|
||||||
{
|
{
|
||||||
|
@ -41,10 +43,13 @@ public:
|
||||||
_peer->allocateSessionResource(1024, 1024*1024);
|
_peer->allocateSessionResource(1024, 1024*1024);
|
||||||
_peer->setExtension("ut_pex", 1);
|
_peer->setExtension("ut_pex", 1);
|
||||||
|
|
||||||
|
_registry.reset(new ExtensionMessageRegistry());
|
||||||
|
|
||||||
_factory.reset(new DefaultExtensionMessageFactory());
|
_factory.reset(new DefaultExtensionMessageFactory());
|
||||||
_factory->setBtContext(_btContext);
|
_factory->setBtContext(_btContext);
|
||||||
_factory->setPeerStorage(_peerStorage);
|
_factory->setPeerStorage(_peerStorage);
|
||||||
_factory->setPeer(_peer);
|
_factory->setPeer(_peer);
|
||||||
|
_factory->setExtensionMessageRegistry(_registry);
|
||||||
}
|
}
|
||||||
|
|
||||||
void testCreateMessage_unknown();
|
void testCreateMessage_unknown();
|
||||||
|
@ -95,7 +100,7 @@ void DefaultExtensionMessageFactoryTest::testCreateMessage_UTPex()
|
||||||
PeerMessageUtil::createcompact(c3, "192.168.0.2", 6882);
|
PeerMessageUtil::createcompact(c3, "192.168.0.2", 6882);
|
||||||
PeerMessageUtil::createcompact(c4, "10.1.1.3",10000);
|
PeerMessageUtil::createcompact(c4, "10.1.1.3",10000);
|
||||||
|
|
||||||
char id[1] = { _factory->getExtensionMessageID("ut_pex") };
|
char id[1] = { _registry->getExtensionMessageID("ut_pex") };
|
||||||
|
|
||||||
std::string data = std::string(&id[0], &id[1])+"d5:added12:"+
|
std::string data = std::string(&id[0], &id[1])+"d5:added12:"+
|
||||||
std::string(&c1[0], &c1[6])+std::string(&c2[0], &c2[6])+
|
std::string(&c1[0], &c1[6])+std::string(&c2[0], &c2[6])+
|
||||||
|
@ -107,7 +112,7 @@ void DefaultExtensionMessageFactoryTest::testCreateMessage_UTPex()
|
||||||
(dynamic_pointer_cast<UTPexExtensionMessage>
|
(dynamic_pointer_cast<UTPexExtensionMessage>
|
||||||
(_factory->createMessage
|
(_factory->createMessage
|
||||||
(reinterpret_cast<const unsigned char*>(data.c_str()), data.size())));
|
(reinterpret_cast<const unsigned char*>(data.c_str()), data.size())));
|
||||||
CPPUNIT_ASSERT_EQUAL(_factory->getExtensionMessageID("ut_pex"),
|
CPPUNIT_ASSERT_EQUAL(_registry->getExtensionMessageID("ut_pex"),
|
||||||
m->getExtensionMessageID());
|
m->getExtensionMessageID());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue