OpenV2G
Data Structures | Macros | Typedefs | Enumerations
EXITypes.h File Reference

Basic type definitions and structs. More...

#include <stdint.h>
#include <stdio.h>
#include "EXIConfig.h"

Go to the source code of this file.

Data Structures

struct  bitstream_t
 Bit stream container. More...
 
struct  exi_string_t
 Universal Character Set (UCS) strings. More...
 
struct  exi_string_value_t
 String value. More...
 
struct  exi_rcs_t
 Restricted Characeter Set. More...
 
struct  exi_bytes_t
 Byte value container. More...
 
struct  exi_integer_t
 Integer value container. More...
 
struct  exi_float_me_t
 Float value container. More...
 
struct  exi_decimal_t
 Decimal value container. More...
 
struct  exi_datetime_t
 Datetime value container. More...
 
struct  exi_list_t
 List value container. More...
 
struct  exi_eqname_t
 Efficient qname. More...
 
struct  exi_name_entry_t
 Name entry. More...
 
struct  exi_qname_t
 Qualified name. More...
 
struct  exiNameTablePrepopulated
 
struct  exi_uri_partition_t
 
struct  exi_localname_partition_t
 
struct  exi_name_partition_t
 
struct  exiNameTableRuntime
 
struct  exi_runtime_element_t
 
struct  exiValueStringTableEntry
 
struct  exiValueStringTable
 
struct  exi_state_t
 
struct  exi_value_t
 

Macros

#define BITS_IN_BYTE   8
 
#define DATETIME_YEAR_OFFSET   2000
 
#define DATETIME_NUMBER_BITS_MONTHDAY   9
 
#define DATETIME_NUMBER_BITS_TIME   17
 
#define DATETIME_NUMBER_BITS_TIMEZONE   11
 
#define DATETIME_MONTH_MULTIPLICATOR   32
 
#define DATETIME_TIMEZONE_OFFSET_IN_MINUTES   896
 
#define UINT_MAX_VALUE   65535
 
#define FLOAT_EXPONENT_SPECIAL_VALUES   -16384
 
#define FLOAT_MANTISSA_INFINITY   1
 
#define FLOAT_MANTISSA_MINUS_INFINITY   -1
 
#define FLOAT_MANTISSA_NOT_A_NUMBER   0
 
#define EXI_MAXIMUM_NUMBER_OF_NAME_PARTITION_ENTRIES   25
 
#define MAX_NUMBER_OF_RUNTIME_ELEMENTS   80
 

Typedefs

typedef uint32_t exi_string_character_t
 EXI string character. More...
 
typedef struct exiNameTablePrepopulated exi_name_table_prepopulated_t
 
typedef struct exiNameTableRuntime exi_name_table_runtime_t
 
typedef struct exiValueStringTableEntry exi_value_string_table_entry_t
 
typedef struct exiValueStringTable exi_value_string_table_t
 

Enumerations

enum  exi_event_t {
  EXI_EVENT_START_DOCUMENT, EXI_EVENT_END_DOCUMENT, EXI_EVENT_START_ELEMENT, EXI_EVENT_START_ELEMENT_NS,
  EXI_EVENT_START_ELEMENT_GENERIC, EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED, EXI_EVENT_END_ELEMENT, EXI_EVENT_END_ELEMENT_UNDECLARED,
  EXI_EVENT_CHARACTERS, EXI_EVENT_CHARACTERS_GENERIC, EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED, EXI_EVENT_ATTRIBUTE_XSI_TYPE,
  EXI_EVENT_ATTRIBUTE_XSI_NIL, EXI_EVENT_ATTRIBUTE, EXI_EVENT_ATTRIBUTE_NS, EXI_EVENT_ATTRIBUTE_GENERIC,
  EXI_EVENT_ATTRIBUTE_INVALID_VALUE, EXI_EVENT_ATTRIBUTE_ANY_INVALID_VALUE, EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED, EXI_EVENT_ERROR
}
 EXI Events. More...
 
enum  exi_datatype_t {
  EXI_DATATYPE_BINARY_BASE64, EXI_DATATYPE_BINARY_HEX, EXI_DATATYPE_BOOLEAN, EXI_DATATYPE_BOOLEAN_FACET,
  EXI_DATATYPE_DECIMAL, EXI_DATATYPE_FLOAT, EXI_DATATYPE_NBIT_UNSIGNED_INTEGER, EXI_DATATYPE_UNSIGNED_INTEGER,
  EXI_DATATYPE_INTEGER, EXI_DATATYPE_DATETIME, EXI_DATATYPE_STRING, EXI_DATATYPE_RCS_STRING,
  EXI_DATATYPE_ENUMERATION, EXI_DATATYPE_LIST, EXI_DATATYPE_QNAME
}
 EXI Value Datatypes. More...
 
enum  exi_integer_type_t {
  EXI_UNSIGNED_INTEGER_8, EXI_UNSIGNED_INTEGER_16, EXI_UNSIGNED_INTEGER_32, EXI_UNSIGNED_INTEGER_64,
  EXI_INTEGER_8, EXI_INTEGER_16, EXI_INTEGER_32, EXI_INTEGER_64
}
 EXI Integer Value types. More...
 
enum  exi_datetime_type_t {
  EXI_DATETIME_GYEAR, EXI_DATETIME_GYEARMONTH, EXI_DATETIME_DATE, EXI_DATETIME_DATETIME,
  EXI_DATETIME_GMONTH, EXI_DATETIME_GMONTHDAY, EXI_DATETIME_GDAY, EXI_DATETIME_TIME
}
 EXI Datetime types. More...
 
enum  exi_string_value_type_t { EXI_STRING_VALUE_MISS, EXI_STRING_VALUE_LOCAL_HIT, EXI_STRING_VALUE_GLOBAL_HIT }
 String value type. More...
 
enum  exi_name_entry_type_t { EXI_NAME_ENTRY_TYPE_ID, EXI_NAME_ENTRY_TYPE_STRING_AND_ID }
 Name entry type. More...
 
enum  exi_name_partition_type_t { EXI_NAME_PARTITION_URI, EXI_NAME_PARTITION_LOCALNAME }
 

Detailed Description

Basic type definitions and structs.

Macro Definition Documentation

◆ BITS_IN_BYTE

#define BITS_IN_BYTE   8

Number of bits for each byte

◆ DATETIME_MONTH_MULTIPLICATOR

#define DATETIME_MONTH_MULTIPLICATOR   32

EXI Date-Time month multiplicator

◆ DATETIME_NUMBER_BITS_MONTHDAY

#define DATETIME_NUMBER_BITS_MONTHDAY   9

EXI Date-Time number of bits for monthDay

◆ DATETIME_NUMBER_BITS_TIME

#define DATETIME_NUMBER_BITS_TIME   17

EXI Date-Time number of bits for time

◆ DATETIME_NUMBER_BITS_TIMEZONE

#define DATETIME_NUMBER_BITS_TIMEZONE   11

EXI Date-Time number of bits for timezone

◆ DATETIME_TIMEZONE_OFFSET_IN_MINUTES

#define DATETIME_TIMEZONE_OFFSET_IN_MINUTES   896

EXI Date-Time offset for timzone minutes

◆ DATETIME_YEAR_OFFSET

#define DATETIME_YEAR_OFFSET   2000

EXI Date-Time offset for year

◆ EXI_MAXIMUM_NUMBER_OF_NAME_PARTITION_ENTRIES

#define EXI_MAXIMUM_NUMBER_OF_NAME_PARTITION_ENTRIES   25

◆ FLOAT_EXPONENT_SPECIAL_VALUES

#define FLOAT_EXPONENT_SPECIAL_VALUES   -16384

EXI Float exponent special values

◆ FLOAT_MANTISSA_INFINITY

#define FLOAT_MANTISSA_INFINITY   1

EXI Float mantissa infinity

◆ FLOAT_MANTISSA_MINUS_INFINITY

#define FLOAT_MANTISSA_MINUS_INFINITY   -1

EXI Float minus mantissa infinity

◆ FLOAT_MANTISSA_NOT_A_NUMBER

#define FLOAT_MANTISSA_NOT_A_NUMBER   0

EXI Float not a number

◆ MAX_NUMBER_OF_RUNTIME_ELEMENTS

#define MAX_NUMBER_OF_RUNTIME_ELEMENTS   80

◆ UINT_MAX_VALUE

#define UINT_MAX_VALUE   65535

Maximum integer value for uint

Typedef Documentation

◆ exi_name_table_prepopulated_t

◆ exi_name_table_runtime_t

◆ exi_string_character_t

typedef uint32_t exi_string_character_t

EXI string character.

◆ exi_value_string_table_entry_t

◆ exi_value_string_table_t

Enumeration Type Documentation

◆ exi_datatype_t

EXI Value Datatypes.

Enumerator
EXI_DATATYPE_BINARY_BASE64 

Binary Base64

EXI_DATATYPE_BINARY_HEX 

Binary Hex

EXI_DATATYPE_BOOLEAN 

Boolean

EXI_DATATYPE_BOOLEAN_FACET 

Boolean with Facets

EXI_DATATYPE_DECIMAL 

Decimal

EXI_DATATYPE_FLOAT 

Float & Double

EXI_DATATYPE_NBIT_UNSIGNED_INTEGER 

N-Bit Unsigned Integer

EXI_DATATYPE_UNSIGNED_INTEGER 

Unsigned Integer

EXI_DATATYPE_INTEGER 

(Signed) Integer

EXI_DATATYPE_DATETIME 

Datetime

EXI_DATATYPE_STRING 

String

EXI_DATATYPE_RCS_STRING 

Restricted Character Set String

EXI_DATATYPE_ENUMERATION 

Enumeration

EXI_DATATYPE_LIST 

List

EXI_DATATYPE_QNAME 

QName (e.g. xsi:type)

◆ exi_datetime_type_t

EXI Datetime types.

Enumerator
EXI_DATETIME_GYEAR 

gYear

EXI_DATETIME_GYEARMONTH 

gYearMonth

EXI_DATETIME_DATE 

date

EXI_DATETIME_DATETIME 

datetime

EXI_DATETIME_GMONTH 

gMonth

EXI_DATETIME_GMONTHDAY 

gMonthDay

EXI_DATETIME_GDAY 

gDay

EXI_DATETIME_TIME 

time

◆ exi_event_t

EXI Events.

Enumerator
EXI_EVENT_START_DOCUMENT 

Start Document SD

EXI_EVENT_END_DOCUMENT 

End Document ED

EXI_EVENT_START_ELEMENT 

Start Element SE(qname)

EXI_EVENT_START_ELEMENT_NS 

Start Element SE(uri:*)

EXI_EVENT_START_ELEMENT_GENERIC 

Start Element SE(*) generic

EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED 

Start Element SE(*) generic undeclared

EXI_EVENT_END_ELEMENT 

End Element EE

EXI_EVENT_END_ELEMENT_UNDECLARED 

End Element EE undeclared

EXI_EVENT_CHARACTERS 

Characters CH

EXI_EVENT_CHARACTERS_GENERIC 

Characters CH generic

EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED 

Characters CH generic undeclared

EXI_EVENT_ATTRIBUTE_XSI_TYPE 

Attribute AT(xsi:type)

EXI_EVENT_ATTRIBUTE_XSI_NIL 

Attribute AT(xsi:nil)

EXI_EVENT_ATTRIBUTE 

Attribute AT(qname)

EXI_EVENT_ATTRIBUTE_NS 

Attribute AT(uri:*)

EXI_EVENT_ATTRIBUTE_GENERIC 

Attribute AT(*) generic

EXI_EVENT_ATTRIBUTE_INVALID_VALUE 

Attribute AT(*) invalid value

EXI_EVENT_ATTRIBUTE_ANY_INVALID_VALUE 

Attribute AT(*) any invalid value

EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED 

Attribute AT(*) generic undeclared

EXI_EVENT_ERROR 

◆ exi_integer_type_t

EXI Integer Value types.

Enumerator
EXI_UNSIGNED_INTEGER_8 

Unsigned Integer 8 bits

EXI_UNSIGNED_INTEGER_16 

Unsigned Integer 16 bits

EXI_UNSIGNED_INTEGER_32 

Unsigned Integer 32 bits

EXI_UNSIGNED_INTEGER_64 

Unsigned Integer 64 bits

EXI_INTEGER_8 

(Signed) Integer 8 bits

EXI_INTEGER_16 

(Signed) Integer 16 bits

EXI_INTEGER_32 

(Signed) Integer 32 bits

EXI_INTEGER_64 

(Signed) Integer 64 bits

◆ exi_name_entry_type_t

Name entry type.

Enumerator
EXI_NAME_ENTRY_TYPE_ID 

As known IDs

EXI_NAME_ENTRY_TYPE_STRING_AND_ID 

As String

◆ exi_name_partition_type_t

Enumerator
EXI_NAME_PARTITION_URI 
EXI_NAME_PARTITION_LOCALNAME 

◆ exi_string_value_type_t

String value type.

Enumerator
EXI_STRING_VALUE_MISS 

value miss

EXI_STRING_VALUE_LOCAL_HIT 

value local-hit

EXI_STRING_VALUE_GLOBAL_HIT 

value global-hit