/* */ #ifndef _D_BT_REQUEST_FACTORY_H_ #define _D_BT_REQUEST_FACTORY_H_ #include "common.h" #include "SharedHandle.h" #include namespace aria2 { class Piece; class BtMessage; class BtRequestFactory { public: virtual ~BtRequestFactory() {} virtual void addTargetPiece(const SharedHandle& piece) = 0; virtual void removeTargetPiece(const SharedHandle& 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. */ virtual void createRequestMessages (std::deque >& requests, size_t max) = 0; /** * Use this method in end game mode. * */ virtual void createRequestMessagesOnEndGame (std::deque >& requests, size_t max) = 0; /** * Stores the list of index of pieces added using addTargetPiece() into * indexes. */ virtual void getTargetPieceIndexes(std::deque& indexes) const = 0; }; typedef SharedHandle BtRequestFactoryHandle; typedef WeakHandle BtRequestFactoryWeakHandle; } // namespace aria2 #endif // _D_BT_REQUEST_FACTORY_H_