/* */ #ifndef D_UT_METADATA_REQUEST_FACTORY_H #define D_UT_METADATA_REQUEST_FACTORY_H #include "common.h" #include #include #include "Command.h" namespace aria2 { class PieceStorage; class DownloadContext; class Peer; class BtMessageDispatcher; class BtMessageFactory; class UTMetadataRequestTracker; class BtMessage; class UTMetadataRequestFactory { private: DownloadContext* dctx_; std::shared_ptr peer_; BtMessageDispatcher* dispatcher_; BtMessageFactory* messageFactory_; UTMetadataRequestTracker* tracker_; cuid_t cuid_; public: UTMetadataRequestFactory(); // Creates and returns at most num of ut_metadata request // message. pieceStorage is used to identify missing piece. std::vector> create(size_t num, PieceStorage* pieceStorage); void setDownloadContext(DownloadContext* dctx) { dctx_ = dctx; } void setBtMessageDispatcher(BtMessageDispatcher* disp) { dispatcher_ = disp; } void setBtMessageFactory(BtMessageFactory* factory) { messageFactory_ = factory; } void setPeer(const std::shared_ptr& peer) { peer_ = peer; } void setUTMetadataRequestTracker(UTMetadataRequestTracker* tracker) { tracker_ = tracker; } void setCuid(cuid_t cuid) { cuid_ = cuid; } }; } // namespace aria2 #endif // D_UT_METADATA_REQUEST_FACTORY_H