/* */ #ifndef D_UT_METADATA_DATA_EXTENSION_MESSAGE_H #define D_UT_METADATA_DATA_EXTENSION_MESSAGE_H #include "UTMetadataExtensionMessage.h" #include namespace aria2 { class DownloadContext; class PieceStorage; class UTMetadataRequestTracker; class UTMetadataDataExtensionMessage:public UTMetadataExtensionMessage { private: size_t totalSize_; std::string data_; DownloadContext* dctx_; PieceStorage* pieceStorage_; UTMetadataRequestTracker* tracker_; public: UTMetadataDataExtensionMessage(uint8_t extensionMessageID); virtual std::string getPayload(); virtual std::string toString() const; virtual void doReceivedAction(); void setTotalSize(size_t totalSize); size_t getTotalSize() const; void setData(const std::string& data); template void setData(InputIterator first, InputIterator last) { data_.assign(first, last); } const std::string& getData() const; void setPieceStorage(PieceStorage* pieceStorage); void setUTMetadataRequestTracker(UTMetadataRequestTracker* tracker); void setDownloadContext(DownloadContext* dctx); }; } // namespace aria2 #endif // D_UT_METADATA_DATA_EXTENSION_MESSAGE_H