/* */ #ifndef _D_DISK_ADAPTOR_H_ #define _D_DISK_ADAPTOR_H_ #include "common.h" #include "FileEntry.h" #include "Logger.h" #ifdef ENABLE_MESSAGE_DIGEST #include "messageDigest.h" #endif // ENABLE_MESSAGE_DIGEST class DiskAdaptor { protected: string storeDir; FileEntries fileEntries; const Logger* logger; public: DiskAdaptor(); virtual ~DiskAdaptor(); virtual void openFile() = 0; virtual void closeFile() = 0; virtual void openExistingFile() = 0; virtual void initAndOpenFile() = 0; virtual void writeData(const unsigned char* data, int32_t len, int64_t offset) = 0; virtual int32_t readData(unsigned char* data, int32_t len, int64_t offset) = 0; #ifdef ENABLE_MESSAGE_DIGEST virtual string messageDigest(int64_t offset, int64_t length, const MessageDigestContext::DigestAlgo& algo) = 0; #endif // ENABLE_MESSAGE_DIGEST virtual void onDownloadComplete() = 0; virtual bool fileExists() = 0; virtual string getFilePath() = 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; } const string& getStoreDir() const { return this->storeDir; } }; typedef SharedHandle DiskAdaptorHandle; #endif // _D_DISK_ADAPTOR_H_