Home | History | Annotate | Line # | Download | only in examples
      1 /*
      2  * Copyright (c) 2014-2019 Pavel Kalvoda <me (at) pavelkalvoda.com>
      3  *
      4  * libcbor is free software; you can redistribute it and/or modify
      5  * it under the terms of the MIT license. See LICENSE for details.
      6  */
      7 
      8 #include <stdio.h>
      9 #include "cbor.h"
     10 
     11 int main(int argc, char* argv[]) {
     12   /* Preallocate the map structure */
     13   cbor_item_t* root = cbor_new_definite_map(2);
     14   /* Add the content */
     15   cbor_map_add(root,
     16                (struct cbor_pair){
     17                    .key = cbor_move(cbor_build_string("Is CBOR awesome?")),
     18                    .value = cbor_move(cbor_build_bool(true))});
     19   cbor_map_add(root,
     20                (struct cbor_pair){
     21                    .key = cbor_move(cbor_build_uint8(42)),
     22                    .value = cbor_move(cbor_build_string("Is the answer"))});
     23   /* Output: `length` bytes of data in the `buffer` */
     24   unsigned char* buffer;
     25   size_t buffer_size,
     26       length = cbor_serialize_alloc(root, &buffer, &buffer_size);
     27 
     28   fwrite(buffer, 1, length, stdout);
     29   free(buffer);
     30 
     31   fflush(stdout);
     32   cbor_decref(&root);
     33 }
     34