#ifndef _INTERFACES_HH_ #define _INTERFACES_HH_ #include class ICharacterDevice { public: virtual void write(char const* data, int const& len) = 0; virtual int read(char *buf, int const& len) = 0; }; class IBlockDevice { public: // Get the (logical) block size of the device virtual unsigned getBlockSize() const = 0; // Write getBlockSize()*'count' bytes of data from 'data' to the device starting at block 'pos' /* Throw an Error on error, containing the errno describing the error. The contents of the block device from 'pos' to 'pos'+'count' are undefined after an exception */ virtual void write(unsigned pos, char const* data, unsigned count) = 0; // Read getBlockSize()*'count' bytes of data from the device starting at block 'pos' to 'data' /* Throw an Error on error, containing the errno describing the error. The contents of 'data' are undefined after an exception */ virtual void read(unsigned pos, char *data, unsigned count) = 0; }; class II2C { public: virtual void reg_write(uint8_t slaveid, uint8_t reg, uint8_t value) = 0; virtual uint8_t reg_read(uint8_t slaveid, uint8_t reg) = 0; virtual void reg_write16(uint8_t slaveid, uint8_t reg, uint16_t value) = 0; virtual uint16_t reg_read16(uint8_t slaveid, uint8_t reg) = 0; }; #endif