/* */ #ifndef _UT_METADATA_REQUEST_FACTORY_H_ #define _UT_METADATA_REQUEST_FACTORY_H_ #include "common.h" #include #include "SharedHandle.h" namespace aria2 { class PieceStorage; class DownloadContext; class Peer; class BtMessageDispatcher; class BtMessageFactory; class UTMetadataRequestTracker; class BtMessage; class Logger; class UTMetadataRequestFactory { private: SharedHandle dctx_; SharedHandle peer_; WeakHandle dispatcher_; WeakHandle messageFactory_; WeakHandle tracker_; Logger* logger_; 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(const WeakHandle& disp) { dispatcher_ = disp; } void setBtMessageFactory(const WeakHandle& factory) { messageFactory_ = factory; } void setPeer(const SharedHandle& peer) { peer_ = peer; } void setUTMetadataRequestTracker (const WeakHandle& tracker) { tracker_ = tracker; } }; } // namespace aria2 #endif // _UT_METADATA_REQUEST_FACTORY_H_