Update README file
[libprogbuf] / README
1 C library to serialize versioned structured data, performing fast variable-length encoding for integers to reduce message size.
2
3 Examples ================================================
4
5 === Serialize a message with payload containing an integer, an unsigned long long, a float, an integer array and a string with message tag 1 into a buffer ===
6
7 // create a message buffer with tag 1
8
9 int message_tag = 1;
10 progbuf_h buf = progbuf_alloc (message_tag);
11
12 // serialize a long value
13
14 long long_val = 10;
15 int ret = progbuf_set_long (buf, long_val);
16 assert (ret == PROGBUF_SUCCESS);
17
18 // serialize an unsigned long long value
19
20 unsigned long long ulonglong_val = 0xFFFFFFFFFFFFFFFF;
21 ret = progbuf_set_ulonglong (buf, ulonglong_val);
22 assert (ret == PROGBUF_SUCCESS);
23
24 // serialize a float value
25
26 float float_val = 1.123;
27 ret = progbuf_set_float (buf, float_val);
28 assert (ret == PROGBUF_SUCCESS);
29
30 // serialize an integer array
31
32 const int intarr_val[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
33 const size_t intarr_size = sizeof (intarr_val) / sizeof (int);
34 ret = progbuf_set_int_array (buf, intarr_val, intarr_size);
35 assert (ret == PROGBUF_SUCCESS);
36
37 // serialize a string
38
39 const char *string_val = "abcdefghij";
40 ret = progbuf_set_string (buf, string_val);
41 assert (ret == PROGBUF_SUCCESS);
42
43 // get message size and buffer to send over network
44
45 size_t message_size;
46 void *message_buffer;
47 ret = progbuf_own_buffer(buf, &message_buffer, &message_size);
48 assert (ret == PROGBUF_SUCCESS);
49
50 // free the memory 
51
52 ret = progbuf_free (buf);
53 assert (ret == PROGBUF_SUCCESS);
54
55 ========================================================
56
57 See check_progbuf.c file for more code samples.
58