slow_blink 0.0.7 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/ext/slow_blink/ext_schema_parser/extconf.rb +1 -0
  3. data/ext/slow_blink/ext_schema_parser/lexer.c +6 -8
  4. data/ext/slow_blink/ext_schema_parser/lexer.h +1 -1
  5. data/ext/slow_blink/ext_schema_parser/parser.c +3 -1
  6. data/ext/slow_blink/message/ext_compact_encoder/ext_compact_encoder.c +46 -24
  7. data/ext/slow_blink/message/ext_compact_encoder/extconf.rb +9 -2
  8. data/lib/slow_blink/enum.rb +4 -1
  9. data/lib/slow_blink/field.rb +1 -1
  10. data/lib/slow_blink/generate_c/model.rb +119 -12
  11. data/lib/slow_blink/message/binary.rb +9 -1
  12. data/lib/slow_blink/message/boolean.rb +12 -3
  13. data/lib/slow_blink/message/date.rb +9 -1
  14. data/lib/slow_blink/message/decimal.rb +9 -1
  15. data/lib/slow_blink/message/dynamic_group.rb +132 -0
  16. data/lib/slow_blink/message/enum.rb +6 -2
  17. data/lib/slow_blink/message/field.rb +67 -43
  18. data/lib/slow_blink/message/fixed.rb +5 -1
  19. data/lib/slow_blink/message/floating_point.rb +9 -1
  20. data/lib/slow_blink/message/group.rb +54 -197
  21. data/lib/slow_blink/message/integer.rb +16 -8
  22. data/lib/slow_blink/message/model.rb +20 -18
  23. data/lib/slow_blink/message/static_group.rb +63 -0
  24. data/lib/slow_blink/message/string.rb +9 -1
  25. data/lib/slow_blink/message/test_data.rb +126 -0
  26. data/lib/slow_blink/message/time.rb +10 -2
  27. data/lib/slow_blink/message/time_of_day.rb +18 -2
  28. data/lib/slow_blink/schema.rb +2 -2
  29. data/lib/slow_blink/type.rb +3 -3
  30. data/lib/slow_blink/version.rb +1 -1
  31. data/test/tc_inputs.rb +34 -25
  32. data/test/tc_model_enum.rb +47 -0
  33. data/test/tc_model_inputs.rb +47 -0
  34. metadata +9 -7
  35. data/ext/slow_blink/message/ext_compact_encoder/blink_compact.c +0 -642
  36. data/ext/slow_blink/message/ext_compact_encoder/blink_compact.h +0 -411
  37. data/ext/slow_blink/message/ext_compact_encoder/blink_debug.h +0 -46
  38. data/ext/slow_blink/message/ext_compact_encoder/blink_stream.c +0 -314
  39. data/ext/slow_blink/message/ext_compact_encoder/blink_stream.h +0 -185
@@ -1,411 +0,0 @@
1
- /* Copyright (c) 2016 Cameron Harper
2
- *
3
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
4
- * this software and associated documentation files (the "Software"), to deal in
5
- * the Software without restriction, including without limitation the rights to
6
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
7
- * the Software, and to permit persons to whom the Software is furnished to do so,
8
- * subject to the following conditions:
9
- *
10
- * The above copyright notice and this permission notice shall be included in all
11
- * copies or substantial portions of the Software.
12
- *
13
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
15
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
16
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
17
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
18
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
19
- *
20
- *
21
- * */
22
-
23
- #ifndef BLINK_COMPACT_H
24
- #define BLINK_COMPACT_H
25
-
26
- /**
27
- * @defgroup blink_compact blink_compact
28
- * @ingroup ublink
29
- *
30
- * Compact form encode/decode functions
31
- *
32
- * @{
33
- * */
34
-
35
- #ifdef __cplusplus
36
- extern "C" {
37
- #endif
38
-
39
- /* includes ***********************************************************/
40
-
41
- #include <stdint.h>
42
- #include <stdbool.h>
43
-
44
- /* typedefs ***********************************************************/
45
-
46
- struct blink_stream;
47
-
48
- typedef struct blink_stream * blink_stream_t;
49
-
50
- /* functions **********************************************************/
51
-
52
- /**
53
- * Encode a null
54
- *
55
- * @param[in] out output stream
56
- *
57
- * @return null was encoded
58
- * @retval true
59
- * @retval false
60
- *
61
- * */
62
- bool BLINK_Compact_encodeNull(blink_stream_t out);
63
-
64
- /**
65
- * Encode a present symbol
66
- *
67
- * @param[in] out output stream
68
- *
69
- * @return present was encoded
70
- * @retval true
71
- * @retval false
72
- *
73
- * */
74
- bool BLINK_Compact_encodePresent(blink_stream_t out);
75
-
76
- /**
77
- * Decode `bool`
78
- *
79
- * @param[in] in input stream
80
- * @param[out] out decoded value
81
- * @param[out] isNull set to `true` if `in` decodes to NULL
82
- *
83
- * @return value was decoded
84
- * @retval true
85
- * @retval false
86
- *
87
- * */
88
- bool BLINK_Compact_decodeBool(blink_stream_t in, bool *out, bool *isNull);
89
-
90
- /**
91
- * Decode `u8`
92
- *
93
- * @param[in] in input stream
94
- * @param[out] out decoded value
95
- * @param[out] isNull set to `true` if `in` decodes to NULL
96
- *
97
- * @return value was decoded
98
- * @retval true
99
- * @retval false
100
- *
101
- * */
102
- bool BLINK_Compact_decodeU8(blink_stream_t in, uint8_t *out, bool *isNull);
103
-
104
- /**
105
- * Decode `u16`
106
- *
107
- * @param[in] in input stream
108
- * @param[out] out decoded value
109
- * @param[out] isNull set to `true` if `in` decodes to NULL
110
- *
111
- * @return value was decoded
112
- * @retval true
113
- * @retval false
114
- *
115
- * */
116
- bool BLINK_Compact_decodeU16(blink_stream_t in, uint16_t *out, bool *isNull);
117
-
118
- /**
119
- * Decode `u32`
120
- *
121
- * @param[in] in input stream
122
- * @param[out] out decoded value
123
- * @param[out] isNull set to `true` if `in` decodes to NULL
124
- *
125
- * @return value was decoded
126
- * @retval true
127
- * @retval false
128
- *
129
- * */
130
- bool BLINK_Compact_decodeU32(blink_stream_t in, uint32_t *out, bool *isNull);
131
-
132
- /**
133
- * Decode `u64`
134
- *
135
- * @param[in] in input stream
136
- * @param[out] out decoded value
137
- * @param[out] isNull set to `true` if `in` decodes to NULL
138
- *
139
- * @return value was decoded
140
- * @retval true
141
- * @retval false
142
- *
143
- * */
144
- bool BLINK_Compact_decodeU64(blink_stream_t in, uint64_t *out, bool *isNull);
145
-
146
- /**
147
- * Decode `i8`
148
- *
149
- * @param[in] in input stream
150
- * @param[out] out decoded value
151
- * @param[out] isNull set to `true` if `in` decodes to NULL
152
- *
153
- * @return value was decoded
154
- * @retval true
155
- * @retval false
156
- *
157
- * */
158
- bool BLINK_Compact_decodeI8(blink_stream_t in, int8_t *out, bool *isNull);
159
-
160
- /**
161
- * Decode `i16`
162
- *
163
- * @param[in] in input stream
164
- * @param[out] out decoded value
165
- * @param[out] isNull set to `true` if `in` decodes to NULL
166
- *
167
- * @return value was decoded
168
- * @retval true
169
- * @retval false
170
- *
171
- * */
172
- bool BLINK_Compact_decodeI16(blink_stream_t in, int16_t *out, bool *isNull);
173
-
174
- /**
175
- * Decode `i32`
176
- *
177
- * @param[in] in input stream
178
- * @param[out] out decoded value
179
- * @param[out] isNull set to `true` if `in` decodes to NULL
180
- *
181
- * @return value was decoded
182
- * @retval true
183
- * @retval false
184
- *
185
- * */
186
- bool BLINK_Compact_decodeI32(blink_stream_t in, int32_t *out, bool *isNull);
187
-
188
- /**
189
- * Decode `i64`
190
- *
191
- * @param[in] in input stream
192
- * @param[out] out decoded value
193
- * @param[out] isNull set to `true` if `in` decodes to NULL
194
- *
195
- * @return value was decoded
196
- * @retval true
197
- * @retval false
198
- *
199
- * */
200
- bool BLINK_Compact_decodeI64(blink_stream_t in, int64_t *out, bool *isNull);
201
-
202
- /**
203
- * Decode `decimal`
204
- *
205
- * @param[in] in input stream
206
- * @param[out] mantissa decoded mantissa
207
- * @param[out] exponent decoded exponent
208
- * @param[out] isNull set to `true` if `in` decodes to NULL
209
- *
210
- * @return value was decoded
211
- * @retval true
212
- * @retval false
213
- *
214
- * */
215
- bool BLINK_Compact_decodeDecimal(blink_stream_t in, int64_t *mantissa, int8_t *exponent, bool *isNull);
216
-
217
- /**
218
- * Decode `f64`
219
- *
220
- * @param[in] in input stream
221
- * @param[out] out value
222
- * @param[out] isNull set to `true` if `in` decodes to NULL
223
- *
224
- * @return value was decoded
225
- * @retval true
226
- * @retval false
227
- *
228
- * */
229
- bool BLINK_Compact_decodeF64(blink_stream_t in, double *out, bool *isNull);
230
-
231
- /**
232
- * Decode a present field
233
- *
234
- * @param[in] in input stream
235
- * @param[out] out set to `true` if present
236
- *
237
- * @return value was decoded
238
- * @retval true
239
- * @retval false
240
- *
241
- * */
242
- bool BLINK_Compact_decodePresent(blink_stream_t in, bool *out);
243
-
244
- /**
245
- * Encode `bool`
246
- *
247
- * @param[in] in input value
248
- * @param[in] out output stream
249
- *
250
- * @return value was encoded
251
- * @retval true
252
- * @retval false
253
- *
254
- * */
255
- bool BLINK_Compact_encodeBool(bool in, blink_stream_t out);
256
-
257
- /**
258
- * Encode `u8`
259
- *
260
- * @param[in] in input value
261
- * @param[in] out output stream
262
- *
263
- * @return value was encoded
264
- * @retval true
265
- * @retval false
266
- *
267
- * */
268
- bool BLINK_Compact_encodeU8(uint8_t in, blink_stream_t out);
269
-
270
- /**
271
- * Encode `u16`
272
- *
273
- * @param[in] in input value
274
- * @param[in] out output stream
275
- *
276
- * @return value was encoded
277
- * @retval true
278
- * @retval false
279
- *
280
- * */
281
- bool BLINK_Compact_encodeU16(uint16_t in, blink_stream_t out);
282
-
283
- /**
284
- * Encode `u32`
285
- *
286
- * @param[in] in input value
287
- * @param[in] out output stream
288
- *
289
- * @return value was encoded
290
- * @retval true
291
- * @retval false
292
- *
293
- * */
294
- bool BLINK_Compact_encodeU32(uint32_t in, blink_stream_t out);
295
-
296
- /**
297
- * Encode `u64`
298
- *
299
- * @param[in] in input value
300
- * @param[in] out output stream
301
- *
302
- * @return value was encoded
303
- * @retval true
304
- * @retval false
305
- *
306
- * */
307
- bool BLINK_Compact_encodeU64(uint64_t in, blink_stream_t out);
308
-
309
- /**
310
- * Encode `i8`
311
- *
312
- * @param[in] in input value
313
- * @param[in] out output stream
314
- *
315
- * @return value was encoded
316
- * @retval true
317
- * @retval false
318
- *
319
- * */
320
- bool BLINK_Compact_encodeI8(int8_t in, blink_stream_t out);
321
-
322
- /**
323
- * Encode `i16`
324
- *
325
- * @param[in] in input value
326
- * @param[in] out output stream
327
- *
328
- * @return value was encoded
329
- * @retval true
330
- * @retval false
331
- *
332
- * */
333
- bool BLINK_Compact_encodeI16(int16_t in, blink_stream_t out);
334
-
335
- /**
336
- * Encode `i32`
337
- *
338
- * @param[in] in input value
339
- * @param[in] out output stream
340
- *
341
- * @return value was encoded
342
- * @retval true
343
- * @retval false
344
- *
345
- * */
346
- bool BLINK_Compact_encodeI32(int32_t in, blink_stream_t out);
347
-
348
- /**
349
- * Encode `i64`
350
- *
351
- * @param[in] in input value
352
- * @param[in] out output stream
353
- *
354
- * @return value was encoded
355
- * @retval true
356
- * @retval false
357
- *
358
- * */
359
- bool BLINK_Compact_encodeI64(int64_t in, blink_stream_t out);
360
-
361
- /**
362
- * Encode `f64`
363
- *
364
- * @param[in] in input value
365
- * @param[in] out output stream
366
- *
367
- * @return value was encoded
368
- * @retval true
369
- * @retval false
370
- *
371
- * */
372
- bool BLINK_Compact_encodeF64(double in, blink_stream_t out);
373
-
374
- /**
375
- * Encode `decimal`
376
- *
377
- * @param[in] mantissa
378
- * @param[in] exponent
379
- * @param[in] out output stream
380
- *
381
- * @return value was encoded
382
- * @retval true
383
- * @retval false
384
- *
385
- * */
386
- bool BLINK_Compact_encodeDecimal(int64_t mantissa, int8_t exponent, blink_stream_t out);
387
-
388
- /**
389
- * Calculate encoded size of unsigned integer
390
- *
391
- * @param[in] value unsigned integer
392
- * @return encoded size in bytes
393
- *
394
- * */
395
- uint8_t BLINK_Compact_sizeofUnsigned(uint64_t value);
396
-
397
- /**
398
- * Calculate encoded size of signed integer
399
- *
400
- * @param[in] value signed integer
401
- * @return encoded size in bytes
402
- *
403
- * */
404
- uint8_t BLINK_Compact_sizeofSigned(int64_t value);
405
-
406
- #ifdef __cplusplus
407
- }
408
- #endif
409
-
410
- /** @} */
411
- #endif
@@ -1,46 +0,0 @@
1
- /* Copyright (c) 2016 Cameron Harper
2
- *
3
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
4
- * this software and associated documentation files (the "Software"), to deal in
5
- * the Software without restriction, including without limitation the rights to
6
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
7
- * the Software, and to permit persons to whom the Software is furnished to do so,
8
- * subject to the following conditions:
9
- *
10
- * The above copyright notice and this permission notice shall be included in all
11
- * copies or substantial portions of the Software.
12
- *
13
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
15
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
16
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
17
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
18
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
19
- *
20
- *
21
- * */
22
- #ifndef BLINK_DEBUG_H
23
- #define BLINK_DEBUG_H
24
-
25
- #ifdef NDEBUG
26
-
27
- #define BLINK_ERROR(...) /* BLINK_ERROR(...) */
28
-
29
- #define BLINK_DEBUG(...) /* BLINK_DEBUG(...) */
30
-
31
- #define BLINK_ASSERT(X) /* BLINK_ASSERT(X) */
32
-
33
- #else
34
-
35
- #include <assert.h>
36
- #include <stdio.h>
37
-
38
- #define BLINK_ERROR(...) do{fprintf(stderr, __VA_ARGS__);fprintf(stderr, "\n");}while(0);
39
-
40
- #define BLINK_DEBUG(...) do{fprintf(stdout, "%s: ", __FUNCTION__);fprintf(stdout, __VA_ARGS__);fprintf(stdout, "\n");}while(0);
41
-
42
- #define BLINK_ASSERT(X) assert((X));
43
-
44
- #endif
45
-
46
- #endif