/* */ #ifndef _D_ABSTRACT_SINGLE_DISK_ADAPTOR_H_ #define _D_ABSTRACT_SINGLE_DISK_ADAPTOR_H_ #include "DiskAdaptor.h" #include "DiskWriter.h" class AbstractSingleDiskAdaptor : public DiskAdaptor { protected: DiskWriterHandle diskWriter; int64_t totalLength; public: AbstractSingleDiskAdaptor():diskWriter(0), totalLength(0) {} virtual ~AbstractSingleDiskAdaptor() {} virtual void initAndOpenFile(); virtual void openFile(); virtual void closeFile(); virtual void openExistingFile(); virtual void writeData(const unsigned char* data, int32_t len, int64_t offset); virtual int32_t readData(unsigned char* data, int32_t len, int64_t offset); virtual bool fileExists(); virtual int64_t size() const { return diskWriter->size(); } virtual void truncate(int64_t length) { diskWriter->truncate(length); } virtual FileAllocationIteratorHandle fileAllocationIterator(); virtual void enableDirectIO(); virtual void disableDirectIO(); virtual bool directIOAllowed() const { return diskWriter->directIOAllowed(); } 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_