|
CX Framework
Cross-platform C utility framework
|
Data Structures | |
| struct | STypeInfoExt |
Macros | |
| #define | stExt(name) (&_stie_##name) |
Typedefs | |
| typedef struct STypeInfoExt | STypeInfoExt |
Enumerations | |
| enum | STypeInfoExtFlagsEnum { STIE_TypeSet = (1 << 0) } |
Flags for STypeInfoExt::flags. More... | |
Variables | |
| const STypeInfoExt | _stie_none |
| const STypeInfoExt | _stie_bool |
| const STypeInfoExt | _stie_int8 |
| const STypeInfoExt | _stie_int16 |
| const STypeInfoExt | _stie_int32 |
| const STypeInfoExt | _stie_int64 |
| const STypeInfoExt | _stie_uint8 |
| const STypeInfoExt | _stie_uint16 |
| const STypeInfoExt | _stie_uint32 |
| const STypeInfoExt | _stie_uint64 |
| const STypeInfoExt | _stie_float32 |
| const STypeInfoExt | _stie_float64 |
| const STypeInfoExt | _stie_string |
| const STypeInfoExt | _stie_suid |
| const STypeInfoExt | _stie_object |
| const STypeInfoExt | _stie_buffer |
| const STypeInfoExt | _stie_stvar |
| const STypeInfoExt | _stie_sarray |
| const STypeInfoExt | _stie_hashtable |
STypeInfoExt layers structural, declaration-level information on top of an stype. Where STypeInfo answers how do I operate on this value at runtime, STypeInfoExt answers what is this value declared to be. It exists for consumers that need more than the runtime system is willing to remember, such as struct member initialization or serialization.
A few rules set it apart from STypeInfo:
stype: type is never anything but a valid, canonical stype, never a shape of its own.stype, where identity is pointer identity. The same logical extended type can legitimately have more than one descriptor.name is filled in only when the type can be serialized; otherwise it is NULL, equivalent to an empty string. | #define stExt | ( | name | ) | (&_stie_##name) |
STypeInfoExt* stExt(name)
The canonical STypeInfoExt for a built-in type, or one declared in scope – the STypeInfoExt counterpart of stType(name). Resolves to &_stie_##name.
| name | Type name, unquoted (e.g. int32, MyStruct, MyClass, MyStructSet) |
Example:
| typedef struct STypeInfoExt STypeInfoExt |
Structural, declaration-level information about a type, layered on top of an stype. See the stype_ext group overview for how this differs from STypeInfo.
cxautogen generates one of these for every serializable struct member, and a canonical STypeInfoExt – reached through the stExt(name) macro – for every serializable struct, class, structset, or classset. Built-in types have one too, e.g. stExt(int32). Pass the matching descriptor alongside a value so a consumer such as the serializer can agree on what it is – including element types for arrays and hashtables, and the concrete type for a value that could be one of several (see STIE_TypeSet).
Flags for STypeInfoExt::flags.
| Enumerator | |
|---|---|
| STIE_TypeSet | The exact type isn't fixed here – it's one of several types listed in the |
|
extern |
One shared descriptor per built-in type, reached through stExt(name), e.g. stExt(int32).
stExt(sarray) and stExt(hashtable) describe a plain, untyped container. A struct member declared with specific element types (e.g. sarray[int32]) gets its own descriptor, generated by cxautogen, instead.
|
extern |
One shared descriptor per built-in type, reached through stExt(name), e.g. stExt(int32).
stExt(sarray) and stExt(hashtable) describe a plain, untyped container. A struct member declared with specific element types (e.g. sarray[int32]) gets its own descriptor, generated by cxautogen, instead.
|
extern |
One shared descriptor per built-in type, reached through stExt(name), e.g. stExt(int32).
stExt(sarray) and stExt(hashtable) describe a plain, untyped container. A struct member declared with specific element types (e.g. sarray[int32]) gets its own descriptor, generated by cxautogen, instead.
|
extern |
One shared descriptor per built-in type, reached through stExt(name), e.g. stExt(int32).
stExt(sarray) and stExt(hashtable) describe a plain, untyped container. A struct member declared with specific element types (e.g. sarray[int32]) gets its own descriptor, generated by cxautogen, instead.
|
extern |
One shared descriptor per built-in type, reached through stExt(name), e.g. stExt(int32).
stExt(sarray) and stExt(hashtable) describe a plain, untyped container. A struct member declared with specific element types (e.g. sarray[int32]) gets its own descriptor, generated by cxautogen, instead.
|
extern |
One shared descriptor per built-in type, reached through stExt(name), e.g. stExt(int32).
stExt(sarray) and stExt(hashtable) describe a plain, untyped container. A struct member declared with specific element types (e.g. sarray[int32]) gets its own descriptor, generated by cxautogen, instead.
|
extern |
One shared descriptor per built-in type, reached through stExt(name), e.g. stExt(int32).
stExt(sarray) and stExt(hashtable) describe a plain, untyped container. A struct member declared with specific element types (e.g. sarray[int32]) gets its own descriptor, generated by cxautogen, instead.
|
extern |
One shared descriptor per built-in type, reached through stExt(name), e.g. stExt(int32).
stExt(sarray) and stExt(hashtable) describe a plain, untyped container. A struct member declared with specific element types (e.g. sarray[int32]) gets its own descriptor, generated by cxautogen, instead.
|
extern |
One shared descriptor per built-in type, reached through stExt(name), e.g. stExt(int32).
stExt(sarray) and stExt(hashtable) describe a plain, untyped container. A struct member declared with specific element types (e.g. sarray[int32]) gets its own descriptor, generated by cxautogen, instead.
|
extern |
One shared descriptor per built-in type, reached through stExt(name), e.g. stExt(int32).
stExt(sarray) and stExt(hashtable) describe a plain, untyped container. A struct member declared with specific element types (e.g. sarray[int32]) gets its own descriptor, generated by cxautogen, instead.
|
extern |
One shared descriptor per built-in type, reached through stExt(name), e.g. stExt(int32).
stExt(sarray) and stExt(hashtable) describe a plain, untyped container. A struct member declared with specific element types (e.g. sarray[int32]) gets its own descriptor, generated by cxautogen, instead.
|
extern |
One shared descriptor per built-in type, reached through stExt(name), e.g. stExt(int32).
stExt(sarray) and stExt(hashtable) describe a plain, untyped container. A struct member declared with specific element types (e.g. sarray[int32]) gets its own descriptor, generated by cxautogen, instead.
|
extern |
One shared descriptor per built-in type, reached through stExt(name), e.g. stExt(int32).
stExt(sarray) and stExt(hashtable) describe a plain, untyped container. A struct member declared with specific element types (e.g. sarray[int32]) gets its own descriptor, generated by cxautogen, instead.
|
extern |
One shared descriptor per built-in type, reached through stExt(name), e.g. stExt(int32).
stExt(sarray) and stExt(hashtable) describe a plain, untyped container. A struct member declared with specific element types (e.g. sarray[int32]) gets its own descriptor, generated by cxautogen, instead.
|
extern |
One shared descriptor per built-in type, reached through stExt(name), e.g. stExt(int32).
stExt(sarray) and stExt(hashtable) describe a plain, untyped container. A struct member declared with specific element types (e.g. sarray[int32]) gets its own descriptor, generated by cxautogen, instead.
|
extern |
One shared descriptor per built-in type, reached through stExt(name), e.g. stExt(int32).
stExt(sarray) and stExt(hashtable) describe a plain, untyped container. A struct member declared with specific element types (e.g. sarray[int32]) gets its own descriptor, generated by cxautogen, instead.
|
extern |
One shared descriptor per built-in type, reached through stExt(name), e.g. stExt(int32).
stExt(sarray) and stExt(hashtable) describe a plain, untyped container. A struct member declared with specific element types (e.g. sarray[int32]) gets its own descriptor, generated by cxautogen, instead.
|
extern |
One shared descriptor per built-in type, reached through stExt(name), e.g. stExt(int32).
stExt(sarray) and stExt(hashtable) describe a plain, untyped container. A struct member declared with specific element types (e.g. sarray[int32]) gets its own descriptor, generated by cxautogen, instead.
|
extern |
One shared descriptor per built-in type, reached through stExt(name), e.g. stExt(int32).
stExt(sarray) and stExt(hashtable) describe a plain, untyped container. A struct member declared with specific element types (e.g. sarray[int32]) gets its own descriptor, generated by cxautogen, instead.