1 /*
2  * Carla REST API Server
3  * Copyright (C) 2018 Filipe Coelho <falktx@falktx.com>
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License as
7  * published by the Free Software Foundation; either version 2 of
8  * the License, or any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * For a full copy of the GNU General Public License see the doc/GPL.txt file.
16  */
17 
18 #ifndef REST_BUFFERS_HPP_INCLUDED
19 #define REST_BUFFERS_HPP_INCLUDED
20 
21 #include "CarlaDefines.h"
22 
23 #ifdef CARLA_PROPER_CPP11_SUPPORT
24 # include <cstdint>
25 #else
26 # include <stdint.h>
27 #endif
28 
29 // size buf
30 const char* size_buf(const char* const buf);
31 
32 // base types
33 const char* str_buf_bool(const bool value);
34 const char* str_buf_float(const double value);
35 const char* str_buf_float_array(const double* const values, const char sep = '\n');
36 const char* str_buf_string(const char* const string);
37 const char* str_buf_string_array(const char* const* const array);
38 const char* str_buf_string_quoted(const char* const string);
39 const char* str_buf_int(const int value);
40 const char* str_buf_int64(const int64_t value);
41 const char* str_buf_uint(const uint value);
42 const char* str_buf_uint64(const uint64_t value);
43 const char* str_buf_uint_array(const uint* const values, const char sep = '\n');
44 
45 // json
46 char* json_buf_start();
47 char* json_buf_add_bool(char* jsonBufPtr, const char* const key, const bool value);
48 char* json_buf_add_float(char* jsonBufPtr, const char* const key, const double value);
49 char* json_buf_add_float_array(char* jsonBufPtr, const char* const key, const double* const values);
50 char* json_buf_add_string(char* jsonBufPtr, const char* const key, const char* const value);
51 char* json_buf_add_int(char* jsonBufPtr, const char* const key, const int value);
52 char* json_buf_add_int64(char* jsonBufPtr, const char* const key, const int64_t value);
53 char* json_buf_add_uint(char* jsonBufPtr, const char* const key, const uint value);
54 char* json_buf_add_uint64(char* jsonBufPtr, const char* const key, const uint64_t value);
55 char* json_buf_add_uint_array(char* jsonBufPtr, const char* const key, const uint* const values);
56 const char* json_buf_end(char* jsonBufPtr);
57 
58 #endif // REST_BUFFERS_HPP_INCLUDED
59