/* */ #ifndef _D_BYTE_ARRAY_DISK_WRITER_H_ #define _D_BYTE_ARRAY_DISK_WRITER_H_ #include "DiskWriter.h" #include namespace aria2 { class ByteArrayDiskWriter : public DiskWriter { private: std::stringstream buf; void clear(); public: ByteArrayDiskWriter(); virtual ~ByteArrayDiskWriter(); virtual void initAndOpenFile(uint64_t totalLength = 0); virtual void openFile(uint64_t totalLength = 0); virtual void closeFile(); virtual void openExistingFile(uint64_t totalLength = 0); virtual void writeData(const unsigned char* data, size_t len, off_t position); virtual ssize_t readData(unsigned char* data, size_t len, off_t position); virtual uint64_t size(); virtual void enableDirectIO() {} virtual void disableDirectIO() {} void setString(const std::string& s) { buf.str(s); } std::string getString() const { return buf.str(); } }; typedef SharedHandle ByteArrayDiskWriterHandle; } // namespace aria2 #endif // _D_BYTE_ARRAY_DISK_WRITER_H_