Collaboration diagram for Vectors:

Macros

#define DECLARE_FSTR_VECTOR(name, ObjectType)   DECLARE_FSTR_OBJECT(name, FSTR::Vector<ObjectType>)
 Declare a global Vector& reference. More...
 
#define DEFINE_FSTR_VECTOR(name, ObjectType, ...)
 Define a Vector Object with global reference. More...
 
#define DEFINE_FSTR_VECTOR_LOCAL(name, ObjectType, ...)
 Like DEFINE_FSTR_VECTOR except reference is declared static constexpr. More...
 
#define DEFINE_FSTR_VECTOR_SIZED(name, ObjectType, size, ...)
 Define a Vector Object with global reference, specifying the number of elements. More...
 
#define DEFINE_FSTR_VECTOR_SIZED_LOCAL(name, ObjectType, size, ...)
 Like DEFINE_FSTR_VECTOR_SIZED except reference is declared static constexpr. More...
 
#define DEFINE_FSTR_VECTOR_DATA(name, ObjectType, ...)    DEFINE_FSTR_VECTOR_DATA_SIZED(name, ObjectType, sizeof((const void*[]){__VA_ARGS__}) / sizeof(void*), __VA_ARGS__)
 Define a Vector data structure. More...
 
#define DEFINE_FSTR_VECTOR_DATA_SIZED(name, ObjectType, size, ...)
 Define a Vector data structure and specify the number of elements. More...
 

Detailed Description

Macro Definition Documentation

◆ DECLARE_FSTR_VECTOR

#define DECLARE_FSTR_VECTOR (   name,
  ObjectType 
)    DECLARE_FSTR_OBJECT(name, FSTR::Vector<ObjectType>)

Declare a global Vector& reference.

Parameters
name
ObjectType
Note
Use DEFINE_VECTOR to instantiate the global Object

◆ DEFINE_FSTR_VECTOR

#define DEFINE_FSTR_VECTOR (   name,
  ObjectType,
  ... 
)
Value:
static DEFINE_FSTR_VECTOR_DATA(FSTR_DATA_NAME(name), ObjectType, __VA_ARGS__); \
DEFINE_FSTR_REF_NAMED(name, FSTR::Vector<ObjectType>);
Class to access a Vector of objects stored in flash.
Definition: Vector.hpp:110
#define FSTR_DATA_NAME(name)
Provide internal name for generated flash string structures.
Definition: Object.hpp:56
#define DEFINE_FSTR_VECTOR_DATA(name, ObjectType,...)
Define a Vector data structure.
Definition: Vector.hpp:85
ObjectType
Definition: Libraries/jerryscript/src/include/Jerryscript/Types.h:34

Define a Vector Object with global reference.

Parameters
nameName of Vector& reference to define
ObjectType
...List of ObjectType* pointers
Note
Size will be calculated

◆ DEFINE_FSTR_VECTOR_DATA

#define DEFINE_FSTR_VECTOR_DATA (   name,
  ObjectType,
  ... 
)     DEFINE_FSTR_VECTOR_DATA_SIZED(name, ObjectType, sizeof((const void*[]){__VA_ARGS__}) / sizeof(void*), __VA_ARGS__)

Define a Vector data structure.

Parameters
nameName of data structure
ObjectType
...List of ObjectType* pointers
Note
Size will be calculated

◆ DEFINE_FSTR_VECTOR_DATA_SIZED

#define DEFINE_FSTR_VECTOR_DATA_SIZED (   name,
  ObjectType,
  size,
  ... 
)
Value:
constexpr const struct { \
FSTR::ObjectBase object; \
const ObjectType* data[size]; \
} name PROGMEM = {{sizeof(name.data)}, __VA_ARGS__}; \
FSTR_CHECK_STRUCT(name);
#define PROGMEM
Definition: Arch/Esp32/Components/libc/src/include/sys/pgmspace.h:26

Define a Vector data structure and specify the number of elements.

Parameters
nameName of data structure
ObjectType
sizeNumber of elements
...List of ObjectType* pointers
Note
Use in situations where the array size cannot be automatically calculated

◆ DEFINE_FSTR_VECTOR_LOCAL

#define DEFINE_FSTR_VECTOR_LOCAL (   name,
  ObjectType,
  ... 
)
Value:
static DEFINE_FSTR_VECTOR_DATA(FSTR_DATA_NAME(name), ObjectType, __VA_ARGS__); \
#define DEFINE_FSTR_REF_NAMED(name, ObjectType)
Definition: Object.hpp:51

Like DEFINE_FSTR_VECTOR except reference is declared static constexpr.

◆ DEFINE_FSTR_VECTOR_SIZED

#define DEFINE_FSTR_VECTOR_SIZED (   name,
  ObjectType,
  size,
  ... 
)
Value:
static DEFINE_FSTR_VECTOR_DATA_SIZED(FSTR_DATA_NAME(name), ObjectType, size, __VA_ARGS__); \
DEFINE_FSTR_REF_NAMED(name, FSTR::Vector<ObjectType>);
#define DEFINE_FSTR_VECTOR_DATA_SIZED(name, ObjectType, size,...)
Define a Vector data structure and specify the number of elements.
Definition: Vector.hpp:96

Define a Vector Object with global reference, specifying the number of elements.

Parameters
nameName of Vector& reference to define
ObjectType
sizeNumber of elements
...List of ObjectType* pointers
Note
Use in situations where the array size cannot be automatically calculated

◆ DEFINE_FSTR_VECTOR_SIZED_LOCAL

#define DEFINE_FSTR_VECTOR_SIZED_LOCAL (   name,
  ObjectType,
  size,
  ... 
)
Value:
static DEFINE_FSTR_VECTOR_DATA_SIZED(FSTR_DATA_NAME(name), ObjectType, size, __VA_ARGS__); \

Like DEFINE_FSTR_VECTOR_SIZED except reference is declared static constexpr.