/* */ #ifndef D_BYTE_ARRAY_DISK_WRITER_H #define D_BYTE_ARRAY_DISK_WRITER_H #include "DiskWriter.h" #include #include "a2functional.h" namespace aria2 { class ByteArrayDiskWriter : public DiskWriter { private: std::stringstream buf_; size_t maxLength_; void clear(); public: ByteArrayDiskWriter(size_t maxLength = 5_m); virtual ~ByteArrayDiskWriter(); virtual void initAndOpenFile(int64_t totalLength = 0) CXX11_OVERRIDE; virtual void openFile(int64_t totalLength = 0) CXX11_OVERRIDE; virtual void closeFile() CXX11_OVERRIDE; virtual void openExistingFile(int64_t totalLength = 0) CXX11_OVERRIDE; virtual void writeData(const unsigned char* data, size_t len, int64_t offset) CXX11_OVERRIDE; virtual ssize_t readData(unsigned char* data, size_t len, int64_t offset) CXX11_OVERRIDE; virtual int64_t size() CXX11_OVERRIDE; void setString(const std::string& s); std::string getString() const; }; } // namespace aria2 #endif // D_BYTE_ARRAY_DISK_WRITER_H