FSTR::Map< KeyType, ContentType, Pair > Class Template Reference

Class template to access an associative map. More...

#include <Map.hpp>

Inheritance diagram for FSTR::Map< KeyType, ContentType, Pair >:
Collaboration diagram for FSTR::Map< KeyType, ContentType, Pair >:

Public Member Functions

const Pair valueAt (unsigned index) const
 Get a map entry by index, if it exists. More...
 
template<typename TRefKey , typename T = KeyType>
std::enable_if<!std::is_class< T >::value, int >::type indexOf (const TRefKey &key) const
 Lookup an integral key and return the index. More...
 
template<typename TRefKey , typename T = KeyType>
std::enable_if< std::is_same< T, String >::value, int >::type indexOf (const TRefKey &key, bool ignoreCase=true) const
 Lookup a String key and return the index. More...
 
template<typename TRefKey >
const Pair operator[] (const TRefKey &key) const
 Lookup a key and return the entry, if found. More...
 
MapPrinter< Mapprinter () const
 Returns a printer object for this array. More...
 
size_t printTo (Print &p) const
 
- Public Member Functions inherited from FSTR::Object< Map< KeyType, ContentType >, MapPair< KeyType, ContentType > >
 Object ()
 Creates a null object. More...
 
 Object (const Object &obj)
 Copy constructor. More...
 
Iterator begin () const
 
Iterator end () const
 
size_t length () const
 Get the length of the content in elements. More...
 
int indexOf (const ValueType &value) const
 
MapPair< KeyType, ContentType > valueAt (unsigned index) const
 
MapPair< KeyType, ContentType > operator[] (unsigned index) const
 Array operator[]. More...
 
size_t elementSize () const
 
const MapPair< KeyType, ContentType > * data () const
 
size_t read (size_t index, MapPair< KeyType, ContentType > *buffer, size_t count) const
 Read content into RAM. More...
 
size_t readFlash (size_t index, MapPair< KeyType, ContentType > *buffer, size_t count) const
 Read content into RAM,using flashmem_read() More...
 
- Public Member Functions inherited from FSTR::ObjectBase
size_t length () const
 Get the length of the object data in bytes. More...
 
size_t size () const
 Get the object data size in bytes. More...
 
template<class ObjectType >
constexpr const ObjectType & as () const
 Cast to a different object type. More...
 
const uint8_tdata () 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...
 
bool isCopy () const
 
bool isNull () const
 Indicates an invalid String, used for return value from lookups, etc. More...
 

Additional Inherited Members

- Public Types inherited from FSTR::Object< Map< KeyType, ContentType >, MapPair< KeyType, ContentType > >
using Iterator = ObjectIterator< Map< KeyType, ContentType >, MapPair< KeyType, ContentType > >
 
- Static Public Member Functions inherited from FSTR::Object< Map< KeyType, ContentType >, MapPair< KeyType, ContentType > >
static const Map< KeyType, ContentType > & empty ()
 Return an empty object which evaluates to null. More...
 
- Public Attributes inherited from FSTR::ObjectBase
uint32_t flashLength_
 
- Protected Member Functions inherited from FSTR::ObjectBase
void invalidate ()
 
void copy (const ObjectBase &obj)
 
- Static Protected Attributes inherited from FSTR::ObjectBase
static const ObjectBase empty_
 

Detailed Description

template<typename KeyType, class ContentType, class Pair = MapPair<KeyType, ContentType>>
class FSTR::Map< KeyType, ContentType, Pair >

Class template to access an associative map.

Template Parameters
KeyType
ContentType

Member Function Documentation

◆ indexOf() [1/2]

template<typename KeyType , class ContentType , class Pair = MapPair<KeyType, ContentType>>
template<typename TRefKey , typename T = KeyType>
std::enable_if<!std::is_class<T>::value, int>::type FSTR::Map< KeyType, ContentType, Pair >::indexOf ( const TRefKey &  key) const
inline

Lookup an integral key and return the index.

Parameters
keyKey to locate, must be compatible with KeyType for equality comparison
Return values
intIf key isn't found, return -1

◆ indexOf() [2/2]

template<typename KeyType , class ContentType , class Pair = MapPair<KeyType, ContentType>>
template<typename TRefKey , typename T = KeyType>
std::enable_if<std::is_same<T, String>::value, int>::type FSTR::Map< KeyType, ContentType, Pair >::indexOf ( const TRefKey &  key,
bool  ignoreCase = true 
) const
inline

Lookup a String key and return the index.

Parameters
key
ignoreCaseWhether search is case-sensitive (default: true)
Return values
intIf key isn't found, return -1

◆ operator[]()

template<typename KeyType , class ContentType , class Pair = MapPair<KeyType, ContentType>>
template<typename TRefKey >
const Pair FSTR::Map< KeyType, ContentType, Pair >::operator[] ( const TRefKey &  key) const
inline

Lookup a key and return the entry, if found.

Parameters
key
Note
Result validity can be checked using if()

◆ printer()

template<typename KeyType , class ContentType , class Pair = MapPair<KeyType, ContentType>>
MapPrinter<Map> FSTR::Map< KeyType, ContentType, Pair >::printer ( ) const
inline

Returns a printer object for this array.

Note
ElementType must be supported by Print

◆ printTo()

template<typename KeyType , class ContentType , class Pair = MapPair<KeyType, ContentType>>
size_t FSTR::Map< KeyType, ContentType, Pair >::printTo ( Print p) const
inline

◆ valueAt()

template<typename KeyType , class ContentType , class Pair = MapPair<KeyType, ContentType>>
const Pair FSTR::Map< KeyType, ContentType, Pair >::valueAt ( unsigned  index) const
inline

Get a map entry by index, if it exists.

Note
Result validity can be checked using if()

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