From 2044457959313270ecd9822d290fe3e77430465b Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Fri, 24 Jan 2020 15:09:39 +1100 Subject: [PATCH] Fix unimplemented hooks in request strategies one and two --- request_strategy.go | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/request_strategy.go b/request_strategy.go index bcf6ac63..cbc5abf4 100644 --- a/request_strategy.go +++ b/request_strategy.go @@ -36,6 +36,15 @@ type requestStrategyConnection interface { chunksReceivedWhileExpecting() int64 } +type requestStrategyDefaults struct{} + +func (requestStrategyDefaults) hooks() requestStrategyHooks { + return requestStrategyHooks{ + sentRequest: func(request) {}, + deletedRequest: func(request) {}, + } +} + type requestStrategy interface { iterPendingPieces(requestStrategyConnection, func(pieceIndex) bool) bool iterUndirtiedChunks(requestStrategyPiece, func(chunkSpec) bool) bool @@ -56,11 +65,15 @@ type requestStrategyCallbacks interface { // Favour higher priority pieces with some fuzzing to reduce overlaps and wastage across // connections. -type requestStrategyOne struct{} +type requestStrategyOne struct { + requestStrategyDefaults +} // The fastest connection downloads strictly in order of priority, while all others adhere to their // piece inclinations. -type requestStrategyTwo struct{} +type requestStrategyTwo struct { + requestStrategyDefaults +} func (requestStrategyTwo) ShouldRequestWithoutBias(cn requestStrategyConnection) bool { if cn.torrent().numReaders() == 0 { @@ -115,11 +128,3 @@ func (rs requestStrategyThree) hooks() requestStrategyHooks { } } - -func (rs requestStrategyOne) hooks() requestStrategyHooks { - return requestStrategyHooks{} -} - -func (rs requestStrategyTwo) hooks() requestStrategyHooks { - return requestStrategyHooks{} -}