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