/* */ #ifndef _D_ABSTRACT_DISK_WRITER_H_ #define _D_ABSTRACT_DISK_WRITER_H_ #include "DiskWriter.h" #ifdef ENABLE_SHA1DIGEST #include "messageDigest.h" #endif // ENABLE_SHA1DIGEST class AbstractDiskWriter:public DiskWriter { protected: int fd; #ifdef ENABLE_SHA1DIGEST MessageDigestContext ctx; #endif // ENABLE_SHA1DIGEST void createFile(string filename, int addFlags = 0); void writeDataInternal(const char* data, int len); int readDataInternal(char* data, int len); void seek(long long int offset); public: AbstractDiskWriter(); virtual ~AbstractDiskWriter(); void openFile(const string& filename); void closeFile(); void openExistingFile(string filename); string sha1Sum(long long int offset, long long int length); void writeData(const char* data, int len, long long int offset); int readData(char* data, int len, long long int offset); }; #endif // _D_ABSTRACT_DISK_WRITER_H_