From 78db84cbe73cb9a023ac9518d53e34232eab9d1a Mon Sep 17 00:00:00 2001 From: Victor Grishchenko Date: Fri, 21 May 2010 11:04:49 +0200 Subject: [PATCH] Hooks for Guillem --- ext/seq_picker.cpp | 9 +++++++-- hashtree.cpp | 2 +- swift.h | 3 +++ tests/transfertest.cpp | 1 + transfer.cpp | 8 ++++++++ 5 files changed, 20 insertions(+), 3 deletions(-) diff --git a/ext/seq_picker.cpp b/ext/seq_picker.cpp index 05bde2f..48f1fe3 100644 --- a/ext/seq_picker.cpp +++ b/ext/seq_picker.cpp @@ -20,10 +20,11 @@ class SeqPiecePicker : public PiecePicker { tbqueue hint_out_; FileTransfer* transfer_; uint64_t twist_; + bin64_t range_; public: - SeqPiecePicker (FileTransfer* file_to_pick_from) : + SeqPiecePicker (FileTransfer* file_to_pick_from) : range_(bin64_t::ALL), transfer_(file_to_pick_from), ack_hint_out_(), twist_(0) { ack_hint_out_.range_copy(file().ack_out(),bin64_t::ALL); } @@ -36,6 +37,10 @@ public: virtual void Randomize (uint64_t twist) { twist_ = twist; } + + virtual void LimitRange (bin64_t range) { + range_ = range; + } virtual bin64_t Pick (binmap_t& offer, uint64_t max_width, tint expires) { while (hint_out_.size() && hint_out_.front().timeOfferData(next, (char*)buf, len)); + fprintf(stderr,"kidding\n"); *buf = memo; EXPECT_TRUE(leech->OfferData(next, (char*)buf, len)); } diff --git a/transfer.cpp b/transfer.cpp index 296f743..2f1cb91 100644 --- a/transfer.cpp +++ b/transfer.cpp @@ -48,6 +48,14 @@ void swift::AddProgressCallback (int transfer, TransferProgressCallback cb) { } +void swift::ExternallyRetrieved (int transfer,bin64_t piece) { + FileTransfer* trans = FileTransfer::file(transfer); + if (!trans) + return; + trans->ack_out().set(piece); // that easy +} + + void swift::RemoveProgressCallback (int transfer, TransferProgressCallback cb) { FileTransfer* trans = FileTransfer::file(transfer); if (!trans) -- 2.20.1