uBlink  0.0.1
TheBlinkProtocol
blink_schema_internal

Description

Definitions required by blink_schema and other modules.

Data Structures

Enumerations

enum  blink_itype_tag {
  BLINK_ITYPE_STRING = 0, BLINK_ITYPE_BINARY, BLINK_ITYPE_FIXED, BLINK_ITYPE_BOOL,
  BLINK_ITYPE_U8, BLINK_ITYPE_U16, BLINK_ITYPE_U32, BLINK_ITYPE_U64,
  BLINK_ITYPE_I8, BLINK_ITYPE_I16, BLINK_ITYPE_I32, BLINK_ITYPE_I64,
  BLINK_ITYPE_F64, BLINK_ITYPE_DATE, BLINK_ITYPE_TIME_OF_DAY_MILLI, BLINK_ITYPE_TIME_OF_DAY_NANO,
  BLINK_ITYPE_NANO_TIME, BLINK_ITYPE_MILLI_TIME, BLINK_ITYPE_DECIMAL, BLINK_ITYPE_OBJECT,
  BLINK_ITYPE_REF
}
 internal field types More...
 
enum  blink_schema_subclass {
  BLINK_SCHEMA = 0, BLINK_SCHEMA_NS, BLINK_SCHEMA_GROUP, BLINK_SCHEMA_FIELD,
  BLINK_SCHEMA_ENUM, BLINK_SCHEMA_SYMBOL, BLINK_SCHEMA_TYPE_DEF, BLINK_SCHEMA_ANNOTE,
  BLINK_SCHEMA_INCR_ANNOTE
}
 

Data Structure Documentation

struct blink_schema
Data Fields
const char * name name of type definition
size_t nameLen byte length of name
struct blink_schema * next
enum blink_schema_subclass type
struct blink_schema_type

type

Data Fields
struct blink_schema * a annotations
bool isDynamic reference is dynamic (applicable to BLINK_ITYPE_REF)
bool isSequence this is a SEQUENCE of type
const char * name name of reference (applicable to BLINK_ITYPE_REF)
size_t nameLen byte length of name
struct blink_schema * resolved
uint32_t size size attribute (applicable to #BLINK_ITYPE_BINARY, #BLINK_ITYPE_FIXED, and #BLINK_ITYPE_STRING)
enum blink_itype_tag tag what type is this?
struct blink_schema_field

field

Data Fields
struct blink_schema * a annotations
bool isOptional field is optional
struct blink_schema super
struct blink_schema_type type field type information
struct blink_schema_namespace

namespace

Data Fields
struct blink_schema * a schema <- <annotes>
struct blink_schema * defs list of groups, enums, and types in this namespace
struct blink_schema super
struct blink_schema_group

group

Data Fields
struct blink_schema * a
struct blink_schema * f fields belonging to group
bool hasID group has an ID
uint64_t id group ID
struct blink_schema_namespace * ns link back to namespace
struct blink_schema * s optional supergroup
struct blink_schema super
const char * superGroup name of super group
size_t superGroupLen byte length of supergroup name
struct blink_schema_symbol

enumeration symbol

Data Fields
struct blink_schema * a
bool implicitValue true if value is not explicitly defined
struct blink_schema super
int32_t value integer value
struct blink_schema_enum

enumeration

Data Fields
struct blink_schema * a
struct blink_schema * s symbols belonging to enumeration
struct blink_schema super
struct blink_schema_type_def

type definition

Data Fields
struct blink_schema * a
struct blink_schema super
struct blink_schema_type type type information
struct blink_schema_annote
Data Fields
uint64_t number
struct blink_schema super
const char * value annotation value
size_t valueLen byte length of value
struct blink_schema_incr_annote
Data Fields
struct blink_schema * a annotations
const char * fieldName
size_t fieldNameLen
struct blink_schema super
bool type
struct blink_schema_base
Data Fields
struct blink_allocator alloc
struct blink_schema * ns a schema has zero or more namespace definitions
struct blink_schema super

Enumeration Type Documentation

internal field types

Enumerator
BLINK_ITYPE_REF 

reference to a typedef, enum, or group