#pragma once #include #include class DiskDevice : public Retainable { public: virtual ~DiskDevice(); virtual unsigned blockSize() const = 0; virtual bool readBlock(unsigned index, byte*) const = 0; virtual bool writeBlock(unsigned index, const byte*) = 0; virtual const char* className() const = 0; bool read(qword offset, unsigned length, byte*) const; bool write(qword offset, unsigned length, const byte*); protected: DiskDevice(); };