/* */ #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(const std::string& filename, uint64_t totalLength = 0); virtual void openFile(const std::string& filename, uint64_t totalLength = 0); virtual void closeFile(); virtual void openExistingFile(const std::string& filename, 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); // Not implemented yet virtual void truncate(uint64_t length) {} virtual uint64_t size() const { return buf.str().size(); } virtual void enableDirectIO() {} virtual void disableDirectIO() {} virtual bool directIOAllowed() const { return false; } void setString(const std::string& s) { buf.str(s); } }; typedef SharedHandle ByteArrayDiskWriterHandle; } // namespace aria2 #endif // _D_BYTE_ARRAY_DISK_WRITER_H_