FSTR::Vector< ObjectType > Class Template Reference

Class to access a Vector of objects stored in flash. More...

#include <Vector.hpp>

Inheritance diagram for FSTR::Vector< ObjectType >:
Collaboration diagram for FSTR::Vector< ObjectType >:

Public Types

using DataPtrType = const ObjectType *const *
 
- Public Types inherited from FSTR::Object< Vector< ObjectType >, const ObjectType * >
using DataPtrType = const const ObjectType * *
 
using Iterator = ObjectIterator< Vector< ObjectType >, const ObjectType * >
 

Public Member Functions

template<typename ValueType , typename T = ObjectType>
std::enable_if<!std::is_same< T, String >::value, int >::type indexOf (const ValueType &value) const
 
template<typename T = ObjectType>
std::enable_if< std::is_same< T, String >::value, int >::type indexOf (const char *value, bool ignoreCase=true) const
 
template<typename ValueType , typename T = ObjectType>
std::enable_if< std::is_same< T, String >::value, int >::type indexOf (const ValueType &value, bool ignoreCase=true) const
 
const ObjectType & valueAt (unsigned index) const
 
const ObjectType & operator[] (unsigned index) const
 
ArrayPrinter< Vectorprinter () const
 
size_t printTo (Print &p) const
 
- Public Member Functions inherited from FSTR::Object< Vector< ObjectType >, const ObjectType * >
 Object (const Object &)=delete
 
 Object (const Object &&)=delete
 
Objectoperator= (const Object &)=delete
 
Objectoperator= (const Object &&)=delete
 
Iterator begin () const
 
Iterator end () const
 
constexpr size_t length () const
 Get the length of the content in elements. More...
 
int indexOf (const ValueType &value) const
 
const ObjectType * valueAt (unsigned index) const
 
const ObjectType * operator[] (unsigned index) const
 Array operator[]. More...
 
size_t elementSize () const
 
DataPtrType data () const
 
size_t read (size_t index, const ObjectType * *buffer, size_t count) const
 Read content into RAM. More...
 
size_t readFlash (size_t index, const ObjectType * *buffer, size_t count) const
 Read content into RAM,using flashmem_read() More...
 
const ObjectType * unsafeValueAt (const DataPtrType dataptr, unsigned index) const
 
- Public Member Functions inherited from FSTR::ObjectBase
constexpr size_t length () const
 Get the length of the object data in bytes. More...
 
constexpr size_t size () const
 Get the object data size in bytes. More...
 
bool operator== (const ObjectBase &other) const
 
template<class ObjectType >
constexpr const ObjectType & as () const
 Cast to a different object type. More...
 
const uint8_t * data () const
 Get a pointer to the flash data. More...
 
size_t read (size_t offset, void *buffer, size_t count) const
 Read contents of a String into RAM. More...
 
size_t readFlash (size_t offset, void *buffer, size_t count) const
 Read contents of a String into RAM, using flashread() More...
 
constexpr bool isNull () const
 Indicates an invalid String, used for return value from lookups, etc. More...
 

Static Public Member Functions

static FSTR_ALIGN32 const ObjectType & unsafeValueAt (const DataPtrType dataptr, unsigned index)
 
- Static Public Member Functions inherited from FSTR::Object< Vector< ObjectType >, const ObjectType * >
static constexpr const Vector< ObjectType > & empty ()
 Return an empty object which evaluates to null. More...
 

Additional Inherited Members

- Public Attributes inherited from FSTR::ObjectBase
const uint32_t flashLength_
 
- Static Protected Attributes inherited from FSTR::ObjectBase
static const ObjectBase empty_
 
static constexpr uint32_t lengthInvalid = 0x80000000U
 Indicates null string. More...
 

Detailed Description

template<class ObjectType>
class FSTR::Vector< ObjectType >

Class to access a Vector of objects stored in flash.

Template Parameters
ObjectType

Member Typedef Documentation

◆ DataPtrType

template<class ObjectType >
using FSTR::Vector< ObjectType >::DataPtrType = const ObjectType* const*

Member Function Documentation

◆ indexOf() [1/3]

template<class ObjectType >
template<typename T = ObjectType>
std::enable_if<std::is_same<T, String>::value, int>::type FSTR::Vector< ObjectType >::indexOf ( const char *  value,
bool  ignoreCase = true 
) const
inline

◆ indexOf() [2/3]

template<class ObjectType >
template<typename ValueType , typename T = ObjectType>
std::enable_if<!std::is_same<T, String>::value, int>::type FSTR::Vector< ObjectType >::indexOf ( const ValueType &  value) const
inline

◆ indexOf() [3/3]

template<class ObjectType >
template<typename ValueType , typename T = ObjectType>
std::enable_if<std::is_same<T, String>::value, int>::type FSTR::Vector< ObjectType >::indexOf ( const ValueType &  value,
bool  ignoreCase = true 
) const
inline

◆ operator[]()

template<class ObjectType >
const ObjectType& FSTR::Vector< ObjectType >::operator[] ( unsigned  index) const
inline

◆ printer()

template<class ObjectType >
ArrayPrinter<Vector> FSTR::Vector< ObjectType >::printer ( ) const
inline

◆ printTo()

template<class ObjectType >
size_t FSTR::Vector< ObjectType >::printTo ( Print p) const
inline

◆ unsafeValueAt()

template<class ObjectType >
static FSTR_ALIGN32 const ObjectType& FSTR::Vector< ObjectType >::unsafeValueAt ( const DataPtrType  dataptr,
unsigned  index 
)
inlinestatic

◆ valueAt()

template<class ObjectType >
const ObjectType& FSTR::Vector< ObjectType >::valueAt ( unsigned  index) const
inline

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