File: flat.c

package info (click to toggle)
qbs 3.1.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 30,968 kB
  • sloc: cpp: 120,478; ansic: 72,055; javascript: 14,887; python: 5,882; asm: 1,742; sh: 1,059; java: 693; objc: 409; lex: 194; xml: 141; perl: 137; yacc: 86; makefile: 55; cs: 41
file content (36 lines) | stat: -rw-r--r-- 851 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include "foo_builder.h"

#include <stdio.h>

#undef ns
#define ns(x) FLATBUFFERS_WRAP_NAMESPACE(QbsTest, x) // Specified in the schema.

#define test_assert(x) do { if (!(x)) { assert(0); return -1; }} while (0)

int main()
{
    void *buffer = NULL;
    size_t size = 0;

    flatcc_builder_t builder;
    flatcc_builder_init(&builder);

    flatbuffers_string_ref_t name = flatbuffers_string_create_str(&builder, "John Doe");

    ns(Foo_create_as_root(&builder, name, 42));

    buffer = flatcc_builder_finalize_aligned_buffer(&builder, &size);

    ns(Foo_table_t) foo = ns(Foo_as_root(buffer));

    test_assert(strcmp(ns(Foo_name(foo)), "John Doe") == 0);
    test_assert(ns(Foo_count(foo)) == 42);

    free(buffer);

    flatcc_builder_clear(&builder);

    printf("The FlatBuffer was successfully created and accessed!\n");

    return 0;
}