version 1.1.2.1, 2022/01/24 16:01:49
|
version 1.2.2.1, 2022/01/24 17:21:15
|
Line 1
|
Line 1
|
#include <stdio.h> |
#include <stdio.h> |
#include <stdlib.h> |
#include <stdlib.h> |
#include <string.h> |
#include <string.h> |
|
#include <unistd.h> |
|
#include <fcntl.h> |
#include <elwix.h> |
#include <elwix.h> |
|
|
|
|
|
static void |
|
display(array_t *arr) |
|
{ |
|
register int i; |
|
|
|
for (i = 0; i < array_Size(arr); i++) { |
|
if (AIT_TYPE(array(arr, i, ait_val_t*)) == string) |
|
printf("arr[%d]=%s (%d) type=%d\n", i, AIT_ADDR(array(arr, i, ait_val_t*)), |
|
AIT_LEN(array(arr, i, ait_val_t*)), |
|
AIT_TYPE(array(arr, i, ait_val_t*))); |
|
else if (AIT_TYPE(array(arr, i, ait_val_t*)) == f32) |
|
printf("arr[%d]#%f (%d) type=%d\n", i, AIT_GET_F32(array(arr, i, ait_val_t*)), |
|
AIT_LEN(array(arr, i, ait_val_t*)), |
|
AIT_TYPE(array(arr, i, ait_val_t*))); |
|
else if (AIT_TYPE(array(arr, i, ait_val_t*)) == f64) |
|
printf("arr[%d]#%lf (%d) type=%d\n", i, AIT_GET_F64(array(arr, i, ait_val_t*)), |
|
AIT_LEN(array(arr, i, ait_val_t*)), |
|
AIT_TYPE(array(arr, i, ait_val_t*))); |
|
else |
|
printf("arr[%d]#%ld (%d) type=%d\n", i, AIT_RAW(array(arr, i, ait_val_t*)), |
|
AIT_LEN(array(arr, i, ait_val_t*)), |
|
AIT_TYPE(array(arr, i, ait_val_t*))); |
|
} |
|
} |
|
|
int |
int |
main(int argc, char **argv) |
main(int argc, char **argv) |
{ |
{ |
array_t *arr; |
array_t *arr; |
register int i; | u_char buf[BUFSIZ]; |
| int f, len, ret = 0; |
|
|
arr = ait_array2vars((const char**) argv, 42); |
arr = ait_array2vars((const char**) argv, 42); |
if (!arr) |
if (!arr) |
return 1; |
return 1; |
|
|
for (i = 0; i < array_Size(arr); i++) { | display(arr); |
if (AIT_TYPE(array(arr, i, ait_val_t*)) == string) | |
printf("arr[%d]=%s\n", i, AIT_ADDR(array(arr, i, ait_val_t*))); | printf("\nNeeded buffer size = %d\n", ait_vars2tlv(NULL, 0, arr)); |
else | printf("Serialized data to buffer = %d\n", (len = ait_vars2tlv(buf, sizeof buf, arr))); |
printf("arr[%d]#%ld\n", i, AIT_RAW(array(arr, i, ait_val_t*))); | |
| f = open("test_tlv.bin", O_CREAT | O_WRONLY, 0644); |
| if (f == -1) { |
| ret = 2; |
| goto err; |
} |
} |
|
if ((len = write(f, buf, len)) == -1) { |
|
ret = 3; |
|
goto err; |
|
} else |
|
printf("Wrote %d bytes to file test_tlv.bin\n", len); |
|
|
ait_freeVars(&arr); |
ait_freeVars(&arr); |
return 0; | |
| arr = ait_tlv2vars(buf, len); |
| if (!arr) { |
| ret = 4; |
| goto err; |
| } |
| printf("\n>>> Built vars array from TLV buffer\n\n"); |
| display(arr); |
| |
| arr = ait_tlv2vars(buf, sizeof buf); |
| if (!arr) { |
| ret = 5; |
| goto err; |
| } |
| printf("\n>>> Built vars array from TLV buffer with zeros at the end\n\n"); |
| display(arr); |
| err: |
| if (f > 2) |
| close(f); |
| ait_freeVars(&arr); |
| return ret; |
} |
} |