/* */ #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 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 std::deque > createRequestMessages(size_t max) = 0; /** * Use this method in end game mode. * */ virtual std::deque > createRequestMessagesOnEndGame(size_t max) = 0; }; typedef SharedHandle BtRequestFactoryHandle; typedef WeakHandle BtRequestFactoryWeakHandle; } // namespace aria2 #endif // _D_BT_REQUEST_FACTORY_H_