/* */ #ifndef D_UT_METADATA_REQUEST_FACTORY_H #define D_UT_METADATA_REQUEST_FACTORY_H #include "common.h" #include #include "SharedHandle.h" #include "Command.h" namespace aria2 { class PieceStorage; class DownloadContext; class Peer; class BtMessageDispatcher; class BtMessageFactory; class UTMetadataRequestTracker; class BtMessage; class UTMetadataRequestFactory { private: SharedHandle dctx_; SharedHandle peer_; BtMessageDispatcher* dispatcher_; BtMessageFactory* messageFactory_; UTMetadataRequestTracker* tracker_; cuid_t cuid_; public: UTMetadataRequestFactory(); // Creates at most num of ut_metadata request message and appends // them to msgs. pieceStorage is used to identify missing piece. void create(std::vector >& msgs, size_t num, const SharedHandle& pieceStorage); void setDownloadContext(const SharedHandle& dctx) { dctx_ = dctx; } void setBtMessageDispatcher(BtMessageDispatcher* disp) { dispatcher_ = disp; } void setBtMessageFactory(BtMessageFactory* factory) { messageFactory_ = factory; } void setPeer(const SharedHandle& 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