/* */ #ifndef _D_DISK_ADAPTOR_H_ #define _D_DISK_ADAPTOR_H_ #include "common.h" #include "FileEntry.h" #include "Directory.h" #include "DiskWriter.h" #include "Logger.h" #include "FileEntry.h" class DiskAdaptor { protected: DiskWriter* diskWriter; string storeDir; FileEntries fileEntries; const Logger* logger; virtual string getFilePath() const = 0; public: DiskAdaptor(DiskWriter* diskWriter); virtual ~DiskAdaptor(); virtual void openFile(); virtual void closeFile(); virtual void openExistingFile(); virtual void initAndOpenFile(); void writeData(const char* data, int len, long long int position); int readData(char* data, int len, long long int position); string sha1Sum(long long int offset, long long int length); virtual void onDownloadComplete() = 0; void setFileEntries(const FileEntries& fileEntries) { this->fileEntries = fileEntries; } FileEntryHandle getFileEntryFromPath(const string& fileEntryPath) const; const FileEntries& getFileEntries() const { return fileEntries; } bool addDownloadEntry(const string& fileEntryPath); bool addDownloadEntry(int index); void addAllDownloadEntry(); void removeAllDownloadEntry(); void setStoreDir(const string& storeDir) { this->storeDir = storeDir; } string getStoreDir() const { return this->storeDir; } }; #endif // _D_DISK_ADAPTOR_H_