diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-02-09 17:14:40 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2008-02-09 17:14:40 +0000 |
| commit | c064a2cd9e9034d6cd77bfdd70948cbef193d2cc (patch) | |
| tree | 692e9d54e8032af919514f0d8608286ce47b74b9 /src/PeerInteractionCommand.cc | |
| parent | 04a70520139efcfb287e329ae97e51ddf77605c6 (diff) | |
2008-02-10 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Extract the Peer class's member variables, which are only needed
after
PeerInteractionCommand, into PeerSessionResource class.
This class is instantiated in PeerInteractionCommand class's
ctor and
released in its dtor.
This will make Peer class lightweight and uses less memory for
peers
which are not connected and wait in the queue.
* src/PeerChokeCommand.cc
* src/PeerSessionResource.{h, cc}
* src/PeerInteractionCommand.cc
* src/PeerAbstractCommand.cc: Note: 0 is given to onAbort()
function.
* src/DefaultBtInteractive.cc
* src/BtPieceMessage.cc
* src/BtInterestedMessage.cc
* src/BtUnchokeMessage.cc
* src/DefaultPeerStorage.{h, cc}
* src/PeerInitiateConnectionCommand.cc
* src/ActivePeerConnectionCommand.cc
* src/BtNotInterestedMessage.cc
* src/DefaultBtMessageDispatcher.cc
* src/BtChokeMessage.cc
* src/BtRequestMessage.cc
* src/Peer.{h, cc}
* src/BtRegistry.h
* src/TrackerWatcherCommand.cc
* src/PeerReceiveHandshakeCommand.cc
* test/BtExtendedMessageTest.cc
* test/BtAllowedFastMessageTest.cc
* test/BtCancelMessageTest.cc
* test/DefaultPieceStorageTest.cc
* test/BtBitfieldMessageTest.cc
* test/BtHaveMessageTest.cc
* test/BtNotInterestedMessageTest.cc
* test/BtRequestMessageTest.cc
* test/PeerSessionResourceTest.cc
* test/DefaultBtMessageDispatcherTest.cc
* test/PeerTest.cc
* test/BtInterestedMessageTest.cc
* test/BtRejectMessageTest.cc
* test/BtChokeMessageTest.cc
* test/DefaultPeerStorageTest.cc
* test/BtHaveNoneMessageTest.cc
* test/BtHaveAllMessageTest.cc
* test/DefaultExtensionMessageFactoryTest.cc
* test/BtUnchokeMessageTest.cc
* test/DefaultBtMessageFactoryTest.cc
* test/HandshakeExtensionMessageTest.cc
* test/UTPexExtensionMessageTest.cc
* test/DefaultBtRequestFactoryTest.cc
* test/BtPieceMessageTest.cc
Removed typedef PeerStats.
* src/PeerStat.h
* src/SegmentMan.cc
Diffstat (limited to 'src/PeerInteractionCommand.cc')
| -rw-r--r-- | src/PeerInteractionCommand.cc | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/src/PeerInteractionCommand.cc b/src/PeerInteractionCommand.cc index 87e6bf52..4152b619 100644 --- a/src/PeerInteractionCommand.cc +++ b/src/PeerInteractionCommand.cc @@ -152,11 +152,10 @@ PeerInteractionCommand::PeerInteractionCommand(int32_t cuid, peerObject->btRequestFactory = reqFactory; peerObject->peerConnection = peerConnection; - PEER_OBJECT_CLUSTER(btContext)->registerHandle(peer->getId(), peerObject); + PEER_OBJECT_CLUSTER(btContext)->registerHandle(peer->getID(), peerObject); setUploadLimit(e->option->getAsInt(PREF_MAX_UPLOAD_LIMIT)); - peer->activate(); - peer->allocateBitfield(btContext->getPieceLength(), btContext->getTotalLength()); + peer->allocateSessionResource(btContext->getPieceLength(), btContext->getTotalLength()); maxDownloadSpeedLimit = e->option->getAsInt(PREF_MAX_DOWNLOAD_LIMIT); @@ -164,9 +163,8 @@ PeerInteractionCommand::PeerInteractionCommand(int32_t cuid, } PeerInteractionCommand::~PeerInteractionCommand() { - peer->deallocateBitfield(); - peer->deactivate(); - PEER_OBJECT_CLUSTER(btContext)->unregisterHandle(peer->getId()); + peer->releaseSessionResource(); + PEER_OBJECT_CLUSTER(btContext)->unregisterHandle(peer->getID()); btRuntime->decreaseConnections(); //logger->debug("CUID#%d - unregistered message factory using ID:%s", @@ -217,8 +215,8 @@ bool PeerInteractionCommand::executeInternal() { if(btInteractive->countReceivedMessageInIteration() > 0) { updateKeepAlive(); } - if(peer->amInterested && !peer->peerChoking || - peer->peerInterested && !peer->amChoking) { + if(peer->amInterested() && !peer->peerChoking() || + peer->peerInterested() && !peer->amChoking()) { if(maxDownloadSpeedLimit > 0) { TransferStat stat = peerStorage->calculateStat(); if(maxDownloadSpeedLimit < stat.downloadSpeed) { @@ -246,9 +244,9 @@ bool PeerInteractionCommand::executeInternal() { bool PeerInteractionCommand::prepareForNextPeer(int32_t wait) { if(peerStorage->isPeerAvailable() && btRuntime->lessThanEqMinPeer()) { PeerHandle peer = peerStorage->getUnusedPeer(); - peer->cuid = CUIDCounterSingletonHolder::instance()->newID(); + peer->usedBy(CUIDCounterSingletonHolder::instance()->newID()); PeerInitiateConnectionCommand* command = - new PeerInitiateConnectionCommand(peer->cuid, + new PeerInitiateConnectionCommand(peer->usedBy(), _requestGroup, peer, e, |
