/* */ #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::deque >& 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_