/* */ #ifndef _D_ABSTRACT_SINGLE_DISK_ADAPTOR_H_ #define _D_ABSTRACT_SINGLE_DISK_ADAPTOR_H_ #include "DiskAdaptor.h" #include "DiskWriter.h" #include "DlAbortEx.h" class AbstractSingleDiskAdaptor : public DiskAdaptor { protected: DiskWriterHandle diskWriter; int64_t totalLength; public: AbstractSingleDiskAdaptor():diskWriter(0), totalLength(0) {} virtual ~AbstractSingleDiskAdaptor() {} virtual void initAndOpenFile() throw(DlAbortEx*); virtual void openFile() throw(DlAbortEx*); virtual void closeFile(); virtual void openExistingFile() throw(DlAbortEx*); virtual void writeData(const unsigned char* data, int32_t len, int64_t offset) throw(DlAbortEx*); virtual int32_t readData(unsigned char* data, int32_t len, int64_t offset) throw(DlAbortEx*); virtual bool fileExists(); virtual int64_t size() const throw(DlAbortEx*) { return diskWriter->size(); } virtual void truncate(int64_t length) throw(DlAbortEx*) { diskWriter->truncate(length); } virtual FileAllocationIteratorHandle fileAllocationIterator(); void setDiskWriter(const DiskWriterHandle diskWriter) { this->diskWriter = diskWriter; } DiskWriterHandle getDiskWriter() const { return diskWriter; } void setTotalLength(const int64_t& totalLength) { this->totalLength = totalLength; } int64_t getTotalLength() const { return totalLength; } }; #endif // _D_ABSTRACT_SINGLE_DISK_ADAPTOR_H_