Storage::ProgMem Class Reference

Storage device to access PROGMEM using flash API. More...

#include <ProgMem.h>

Inheritance diagram for Storage::ProgMem:
[legend]
Collaboration diagram for Storage::ProgMem:
[legend]

Public Member Functions

String getName () const override
 Obtain unique device name. More...
 
size_t getBlockSize () const override
 Obtain smallest allocation unit for erase operations. More...
 
size_t getSize () const override
 Obtain addressable size of this device. More...
 
Type getType () const override
 Obtain device type. More...
 
bool read (uint32_t address, void *dst, size_t size) override
 Read data from the storage device. More...
 
bool write (uint32_t address, const void *src, size_t size) override
 Write data to the storage device. More...
 
bool erase_range (uint32_t address, size_t size) override
 Erase a region of storage in preparation for writing. More...
 
Partition createPartition (const String &name, const void *flashPtr, size_t size, Partition::Type type, uint8_t subtype)
 Create partition for PROGMEM data access. More...
 
template<typename T >
Partition createPartition (const String &name, const void *flashPtr, size_t size, T subType)
 
Partition createPartition (const String &name, const FSTR::ObjectBase &fstr, Partition::Type type, uint8_t subtype)
 Create partition for FlashString data access. More...
 
template<typename T >
Partition createPartition (const String &name, const FSTR::ObjectBase &fstr, T subType)
 
- Public Member Functions inherited from Storage::CustomDevice
Partition createPartition (const Partition::Info &info)
 
Partition createPartition (const String &name, Partition::Type type, uint8_t subtype, uint32_t offset, size_t size, Partition::Flags flags=0)
 
template<typename SubType >
Partition createPartition (const String &name, SubType subtype, uint32_t offset, size_t size, Partition::Flags flags=0)
 
- Public Member Functions inherited from Storage::Device
 Device ()
 
 ~Device ()
 
bool operator== (const String &name) const
 
PartitionTablepartitions ()
 
const PartitionTablepartitions () const
 
bool loadPartitions (uint32_t tableOffset)
 Load partition table entries Location of partition table to read. More...
 
bool loadPartitions (Device &source, uint32_t tableOffset)
 Load partition table entries from another table. More...
 
virtual uint32_t getId () const
 Obtain device ID. More...
 
- Public Member Functions inherited from LinkedObjectTemplate< Device >
Device * getNext () const
 
Iterator begin () const
 
Iterator end () const
 
Iterator cbegin () const
 
Iterator cend () const
 
- Public Member Functions inherited from LinkedObject
virtual ~LinkedObject ()
 
virtual LinkedObjectnext () const
 
LinkedObjectgetNext () const
 
bool operator== (const LinkedObject &other) const
 
bool operator!= (const LinkedObject &other) const
 

Additional Inherited Members

- Public Types inherited from Storage::Device
enum  Type : uint8_t { Type::XX }
 Storage type. More...
 
using List = LinkedObjectListTemplate< Device >
 
using OwnedList = OwnedLinkedObjectListTemplate< Device >
 
- Public Types inherited from LinkedObjectTemplate< Device >
using Iterator = IteratorTemplate< Device, Device *, Device &>
 
using ConstIterator = IteratorTemplate< const Device, const Device *, const Device &>
 
- Protected Attributes inherited from Storage::Device
PartitionTable mPartitions
 

Detailed Description

Storage device to access PROGMEM using flash API.

Member Function Documentation

◆ createPartition() [1/4]

Partition Storage::ProgMem::createPartition ( const String name,
const void *  flashPtr,
size_t  size,
Partition::Type  type,
uint8_t  subtype 
)

Create partition for PROGMEM data access.

Parameters
nameName for partition
flashPtrPROGMEM pointer
sizeSize of PROGMEM data
typePartition type
subtypePartition sub-type
Return values
PartitionInvalid if data is not progmem

◆ createPartition() [2/4]

template<typename T >
Partition Storage::ProgMem::createPartition ( const String name,
const void *  flashPtr,
size_t  size,
subType 
)
inline

◆ createPartition() [3/4]

Partition Storage::ProgMem::createPartition ( const String name,
const FSTR::ObjectBase fstr,
Partition::Type  type,
uint8_t  subtype 
)
inline

Create partition for FlashString data access.

◆ createPartition() [4/4]

template<typename T >
Partition Storage::ProgMem::createPartition ( const String name,
const FSTR::ObjectBase fstr,
subType 
)
inline

◆ erase_range()

bool Storage::ProgMem::erase_range ( uint32_t  address,
size_t  size 
)
inlineoverridevirtual

Erase a region of storage in preparation for writing.

Parameters
addressWhere to start erasing
sizeSize of region to erase, in bytes
Return values
booltrue on success, false on error

Implements Storage::Device.

◆ getBlockSize()

size_t Storage::ProgMem::getBlockSize ( ) const
inlineoverridevirtual

Obtain smallest allocation unit for erase operations.

Implements Storage::Device.

◆ getName()

String Storage::ProgMem::getName ( ) const
inlineoverridevirtual

Obtain unique device name.

Implements Storage::Device.

◆ getSize()

size_t Storage::ProgMem::getSize ( ) const
inlineoverridevirtual

Obtain addressable size of this device.

Return values
size_tMust be at least as large as the value declared in the partition table

Implements Storage::Device.

◆ getType()

Type Storage::ProgMem::getType ( ) const
inlineoverridevirtual

Obtain device type.

Implements Storage::Device.

◆ read()

bool Storage::ProgMem::read ( uint32_t  address,
void *  dst,
size_t  size 
)
overridevirtual

Read data from the storage device.

Parameters
addressWhere to start reading
dstBuffer to store data
sizeSize of data to be read, in bytes.
Return values
booltrue on success, false on error

Implements Storage::Device.

◆ write()

bool Storage::ProgMem::write ( uint32_t  address,
const void *  src,
size_t  size 
)
inlineoverridevirtual

Write data to the storage device.

Parameters
addressWhere to start writing
srcData to write
sizeSize of data to be written, in bytes.
Return values
booltrue on success, false on error

Implements Storage::Device.


The documentation for this class was generated from the following file: