Amazon Kinesis Webrtc C SDK
NullableDefs.h
Go to the documentation of this file.
1 /*
2  * Header file to define nullable values for common data types
3  */
4 
5 #ifndef __KINESIS_VIDEO_WEBRTC_CLIENT_NULLABLEDEFS__
6 #define __KINESIS_VIDEO_WEBRTC_CLIENT_NULLABLEDEFS__
7 
8 #pragma once
9 
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13 
15 // Public headers
17 #if defined(__clang__)
18 #pragma clang diagnostic push
19 #pragma clang diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
20 #pragma clang diagnostic pop
21 #endif
22 
26 
31 #define NULLABLE_SET_EMPTY(a) \
32  do { \
33  (a).isNull = TRUE; \
34  } while (FALSE)
35 
39 #define NULLABLE_CHECK_EMPTY(a) ((a).isNull == TRUE)
40 
44 #define NULLABLE_SET_VALUE(a, val) \
45  do { \
46  (a).isNull = FALSE; \
47  (a).value = val; \
48  } while (FALSE)
54 
60 typedef struct {
61  BOOL isNull;
62  BOOL value;
63 } NullableBool;
64 
69 typedef struct {
70  BOOL isNull;
71  UINT8 value;
73 
78 typedef struct {
79  BOOL isNull;
80  INT8 value;
81 } NullableInt8;
82 
87 typedef struct {
88  BOOL isNull;
89  UINT16 value;
91 
96 typedef struct {
97  BOOL isNull;
98  INT16 value;
100 
105 typedef struct {
106  BOOL isNull;
107  UINT32 value;
109 
114 typedef struct {
115  BOOL isNull;
116  INT32 value;
117 } NullableInt32;
118 
123 typedef struct {
124  BOOL isNull;
125  UINT64 value;
127 
132 typedef struct {
133  BOOL isNull;
134  INT64 value;
135 } NullableInt64;
136 
141 typedef struct {
142  BOOL isNull;
143  FLOAT value;
144 } NullableFloat;
145 
150 typedef struct {
151  BOOL isNull;
152  DOUBLE value;
154 
159 typedef struct {
160  BOOL isNull;
161  LDOUBLE value;
165 #ifdef __cplusplus
166 }
167 #endif
168 #endif /* __KINESIS_VIDEO_WEBRTC_CLIENT_NULLABLEDEFS__ */
Definition: NullableDefs.h:60
BOOL isNull
If this value is set, the value field will be ignored.
Definition: NullableDefs.h:61
BOOL value
This value is used only if isNull is not set. Can be set to TRUE/FALSE.
Definition: NullableDefs.h:62
Custom data type to allow setting DOUBLE data type to NULL since C does not support setting basic dat...
Definition: NullableDefs.h:150
BOOL isNull
If this value is set, the value field will be ignored.
Definition: NullableDefs.h:151
DOUBLE value
This value is used only if isNull is not set. Can be set to a double value.
Definition: NullableDefs.h:152
Custom data type to allow setting FLOAT data type to NULL since C does not support setting basic data...
Definition: NullableDefs.h:141
BOOL isNull
If this value is set, the value field will be ignored.
Definition: NullableDefs.h:142
FLOAT value
This value is used only if isNull is not set. Can be set to a float value.
Definition: NullableDefs.h:143
Custom data type to allow setting INT16 data type to NULL since C does not support setting basic data...
Definition: NullableDefs.h:96
INT16 value
This value is used only if isNull is not set. Can be set to a signed 16 bit value.
Definition: NullableDefs.h:98
BOOL isNull
If this value is set, the value field will be ignored.
Definition: NullableDefs.h:97
Custom data type to allow setting INT32 data type to NULL since C does not support setting basic data...
Definition: NullableDefs.h:114
BOOL isNull
If this value is set, the value field will be ignored.
Definition: NullableDefs.h:115
INT32 value
This value is used only if isNull is not set. Can be set to a signed 32 bit value.
Definition: NullableDefs.h:116
Custom data type to allow setting INT64 data type to NULL since C does not support setting basic data...
Definition: NullableDefs.h:132
INT64 value
This value is used only if isNull is not set. Can be set to a signed 64 bit value.
Definition: NullableDefs.h:134
BOOL isNull
If this value is set, the value field will be ignored.
Definition: NullableDefs.h:133
Custom data type to allow setting INT8 data type to NULL since C does not support setting basic data ...
Definition: NullableDefs.h:78
INT8 value
This value is used only if isNull is not set. Can be set to a signed 8 bit value.
Definition: NullableDefs.h:80
BOOL isNull
If this value is set, the value field will be ignored.
Definition: NullableDefs.h:79
Custom data type to allow setting LONG DOUBLE data type to NULL since C does not support setting basi...
Definition: NullableDefs.h:159
BOOL isNull
If this value is set, the value field will be ignored.
Definition: NullableDefs.h:160
LDOUBLE value
This value is used only if isNull is not set. Can be set to a long double value.
Definition: NullableDefs.h:161
Custom data type to allow setting UINT16 data type to NULL since C does not support setting basic dat...
Definition: NullableDefs.h:87
UINT16 value
This value is used only if isNull is not set. Can be set to a unsigned 16 bit value.
Definition: NullableDefs.h:89
BOOL isNull
If this value is set, the value field will be ignored.
Definition: NullableDefs.h:88
Custom data type to allow setting UINT32 data type to NULL since C does not support setting basic dat...
Definition: NullableDefs.h:105
UINT32 value
This value is used only if isNull is not set. Can be set to a unsigned 32 bit value.
Definition: NullableDefs.h:107
BOOL isNull
If this value is set, the value field will be ignored.
Definition: NullableDefs.h:106
Custom data type to allow setting UINT64 data type to NULL since C does not support setting basic dat...
Definition: NullableDefs.h:123
UINT64 value
This value is used only if isNull is not set. Can be set to a unsigned 64 bit value.
Definition: NullableDefs.h:125
BOOL isNull
If this value is set, the value field will be ignored.
Definition: NullableDefs.h:124
Custom data type to allow setting UINT8 data type to NULL since C does not support setting basic data...
Definition: NullableDefs.h:69
UINT8 value
This value is used only if isNull is not set. Can be set to a unsigned 8 bit value.
Definition: NullableDefs.h:71
BOOL isNull
If this value is set, the value field will be ignored.
Definition: NullableDefs.h:70