/* */ #ifndef _D_DISK_ADAPTOR_H_ #define _D_DISK_ADAPTOR_H_ #include "BinaryStream.h" #include "FileEntry.h" #include "Logger.h" #include "FileAllocationIterator.h" class DiskAdaptor:public BinaryStream { 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 onDownloadComplete() = 0; virtual bool fileExists() = 0; virtual string getFilePath() = 0; virtual int64_t size() const = 0; // optional behavior virtual void truncate(int64_t length) {} 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; } virtual FileAllocationIteratorHandle fileAllocationIterator() = 0; }; typedef SharedHandle DiskAdaptorHandle; #endif // _D_DISK_ADAPTOR_H_