52 lines
1.6 KiB
C++
52 lines
1.6 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_ */
|