52 lines
2.1 KiB
C++
52 lines
2.1 KiB
C++
|
|
/*
|
|||
|
|
* IMemoryAccess.h
|
|||
|
|
*
|
|||
|
|
* Created on: 2 нояб. 2016 г.
|
|||
|
|
* Author: Gorbunov_DV
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
#ifndef SOURCE_PERIPHERAL_IMEMORYACCESS_H_
|
|||
|
|
#define SOURCE_PERIPHERAL_IMEMORYACCESS_H_
|
|||
|
|
|
|||
|
|
#include <cstddef>
|
|||
|
|
|
|||
|
|
namespace peripheral {
|
|||
|
|
|
|||
|
|
/// \brief Интерфейс для работы с памятью
|
|||
|
|
struct IMemoryAccess {
|
|||
|
|
//! Функция чтения данных из памяти
|
|||
|
|
/*! Функция чтения данных из памяти
|
|||
|
|
*
|
|||
|
|
* @param data указатель на буфер, куда считывать данные из памяти
|
|||
|
|
* @param begin адрес в памяти окуда начинать считывать данные
|
|||
|
|
* @param size размер считываемых данных, в байтах
|
|||
|
|
* @return признак
|
|||
|
|
*/
|
|||
|
|
virtual bool read( char * data, std::size_t begin, std::size_t size ) = 0;
|
|||
|
|
|
|||
|
|
|
|||
|
|
//!Функция записи данных в память
|
|||
|
|
/*!Функция записи данных в память
|
|||
|
|
*
|
|||
|
|
* @param data указатель данные, которые записываем в память
|
|||
|
|
* @param begin адрес в памяти, с которого начинаем запись данных
|
|||
|
|
* @param size размер записываемых данных, в байтах
|
|||
|
|
* @return признак
|
|||
|
|
*/
|
|||
|
|
virtual bool write( const char * data, std::size_t begin, std::size_t size ) = 0;
|
|||
|
|
|
|||
|
|
//!Функция возвращает признак завершения чтения данных.
|
|||
|
|
virtual bool isReadComplete() const { return true; }
|
|||
|
|
//!Функция возвращает признак завершения записи данных.
|
|||
|
|
virtual bool isWriteComplete() const { return true; }
|
|||
|
|
//!Функция возвращает количество выделенной памяти в char'ах.
|
|||
|
|
virtual std::size_t getCapacity() const { return 0; }
|
|||
|
|
|
|||
|
|
virtual ~IMemoryAccess() = default;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
|
|||
|
|
} // namespace peripheral
|
|||
|
|
|
|||
|
|
#endif /* SOURCE_PERIPHERAL_IMEMORYACCESS_H_ */
|