Collaboration diagram for Objects:

Macros

#define DECLARE_FSTR_OBJECT(name, ObjectType)   extern const ObjectType& name;
 Declare a global Object reference. More...
 
#define FSTR_DATA_NAME(name)   __fstr__##name
 Provide internal name for generated flash string structures. More...
 
#define FSTR_PTR(objref)   (&objref)
 Given an Object& reference, return a pointer to the actual object. More...
 
#define FSTR_CHECK_STRUCT(name)
 Check structure is POD-compliant and correctly aligned. More...
 
#define IMPORT_FSTR_OBJECT(name, ObjectType, file)
 Import an object from an external file with reference. More...
 
#define IMPORT_FSTR_OBJECT_LOCAL(name, ObjectType, file)
 Like IMPORT_FSTR_OBJECT except reference is declared static constexpr. More...
 

Internal macros

#define DEFINE_FSTR_OBJREF(name, object)   const decltype(object)& name PROGMEM = object;
 
#define DEFINE_FSTR_REF(name)   DEFINE_FSTR_OBJREF(name, FSTR_DATA_NAME(name).object)
 
#define DEFINE_FSTR_REF_LOCAL(name)   static constexpr DEFINE_FSTR_REF(name)
 

Detailed Description

Macro Definition Documentation

◆ DECLARE_FSTR_OBJECT

#define DECLARE_FSTR_OBJECT (   name,
  ObjectType 
)    extern const ObjectType& name;

Declare a global Object reference.

Parameters
name
ObjectType

◆ DEFINE_FSTR_OBJREF

#define DEFINE_FSTR_OBJREF (   name,
  object 
)    const decltype(object)& name PROGMEM = object;

◆ DEFINE_FSTR_REF

#define DEFINE_FSTR_REF (   name)    DEFINE_FSTR_OBJREF(name, FSTR_DATA_NAME(name).object)

◆ DEFINE_FSTR_REF_LOCAL

#define DEFINE_FSTR_REF_LOCAL (   name)    static constexpr DEFINE_FSTR_REF(name)

◆ FSTR_CHECK_STRUCT

#define FSTR_CHECK_STRUCT (   name)
Value:
static_assert(std::is_standard_layout<decltype(name)>::value, "FSTR structure not Standard Layout"); \
static_assert(offsetof(decltype(name), data) == sizeof(uint32_t), "FSTR structure alignment error");

Check structure is POD-compliant and correctly aligned.

◆ FSTR_DATA_NAME

#define FSTR_DATA_NAME (   name)    __fstr__##name

Provide internal name for generated flash string structures.

◆ FSTR_PTR

#define FSTR_PTR (   objref)    (&objref)

Given an Object& reference, return a pointer to the actual object.

Parameters
objref
Note
This macro was provided for use with old compilers (e.g. GCC 4.8.5) but is no longer required.

◆ IMPORT_FSTR_OBJECT

#define IMPORT_FSTR_OBJECT (   name,
  ObjectType,
  file 
)
Value:
extern "C" __attribute__((visibility("hidden"))) const ObjectType FSTR_DATA_NAME(name); \
#define FSTR_DATA_NAME(name)
Provide internal name for generated flash string structures.
Definition: Object.hpp:55
#define DEFINE_FSTR_OBJREF(name, object)
Definition: Object.hpp:47
#define IMPORT_FSTR_DATA(name, file)
Link the contents of a file.
Definition: Utility.hpp:115
ObjectType
Definition: Libraries/jerryscript/src/include/Jerryscript/Types.h:34

Import an object from an external file with reference.

Parameters
nameName for the object
ObjectTypeObject type for reference
fileAbsolute path to the file containing the content
See also
See also IMPORT_FSTR_DATA
Note
Can only be used at file scope

◆ IMPORT_FSTR_OBJECT_LOCAL

#define IMPORT_FSTR_OBJECT_LOCAL (   name,
  ObjectType,
  file 
)
Value:
extern "C" __attribute__((visibility("hidden"))) const ObjectType FSTR_DATA_NAME(name); \
static constexpr DEFINE_FSTR_OBJREF(name, FSTR_DATA_NAME(name))

Like IMPORT_FSTR_OBJECT except reference is declared static constexpr.