/* */ #ifndef D_BT_REQUEST_FACTORY_H #define D_BT_REQUEST_FACTORY_H #include "common.h" #include #include namespace aria2 { class Piece; class BtRequestMessage; class BtRequestFactory { public: virtual ~BtRequestFactory() {} virtual void addTargetPiece(const std::shared_ptr& piece) = 0; virtual void removeTargetPiece(const std::shared_ptr& piece) = 0; virtual void removeAllTargetPiece() = 0; virtual size_t countTargetPiece() = 0; virtual size_t countMissingBlock() = 0; virtual void removeCompletedPiece() = 0; virtual void doChokedAction() = 0; /** * Creates RequestMessage objects associated to the pieces added by * addTargetPiece() and returns them. The number of objects * returned is capped by max. If |endGame| is true, returns * requests in end game mode. */ virtual std::vector> createRequestMessages(size_t max, bool endGame) = 0; /** * Returns the list of index of pieces added using addTargetPiece() * into indexes. */ virtual std::vector getTargetPieceIndexes() const = 0; }; } // namespace aria2 #endif // D_BT_REQUEST_FACTORY_H