/* */ #ifndef _D_BYTE_ARRAY_DISK_WRITER_H_ #define _D_BYTE_ARRAY_DISK_WRITER_H_ #include "DiskWriter.h" class ByteArrayDiskWriter : public DiskWriter { private: char* buf; int32_t maxBufLength; int32_t bufLength; void init(); void clear(); public: ByteArrayDiskWriter(); virtual ~ByteArrayDiskWriter(); virtual void initAndOpenFile(const string& filename, int64_t totalLength = 0); virtual void openFile(const string& filename, int64_t totalLength = 0); virtual void closeFile(); virtual void openExistingFile(const string& filename, int64_t totalLength = 0); // position is ignored virtual void writeData(const char* data, int32_t len, int64_t position = 0); virtual int readData(char* data, int32_t len, int64_t position); // Not implemented yet virtual void truncate(int64_t length) {} virtual int64_t size() const { return bufLength; } // not implemented yet #ifdef ENABLE_MESSAGE_DIGEST virtual string messageDigest(int64_t offset, int64_t length, const MessageDigestContext::DigestAlgo& algo) { return ""; } #endif // ENABLE_MESSAGE_DIGEST const char* getByteArray() const { return buf; } // can be deleted. Use size() instead. int getByteArrayLength() const { return bufLength; } }; #endif // _D_BYTE_ARRAY_DISK_WRITER_H_