3 #ifndef NETDATA_WEB_BUFFER_H 4 #define NETDATA_WEB_BUFFER_H 1 6 #define WEB_DATA_LENGTH_INCREASE_STEP 1024 19 #define WB_CONTENT_CACHEABLE 1 20 #define WB_CONTENT_NO_CACHEABLE 2 23 #define CT_APPLICATION_JSON 1 24 #define CT_TEXT_PLAIN 2 25 #define CT_TEXT_HTML 3 26 #define CT_APPLICATION_X_JAVASCRIPT 4 29 #define CT_APPLICATION_XML 7 31 #define CT_APPLICATION_OCTET_STREAM 9 32 #define CT_APPLICATION_X_FONT_TRUETYPE 10 33 #define CT_APPLICATION_X_FONT_OPENTYPE 11 34 #define CT_APPLICATION_FONT_WOFF 12 35 #define CT_APPLICATION_FONT_WOFF2 13 36 #define CT_APPLICATION_VND_MS_FONTOBJ 14 37 #define CT_IMAGE_SVG_XML 15 38 #define CT_IMAGE_PNG 16 39 #define CT_IMAGE_JPG 17 40 #define CT_IMAGE_GIF 18 41 #define CT_IMAGE_XICON 19 42 #define CT_IMAGE_ICNS 20 43 #define CT_IMAGE_BMP 21 44 #define CT_PROMETHEUS 22 46 #define buffer_cacheable(wb) do { (wb)->options |= WB_CONTENT_CACHEABLE; if((wb)->options & WB_CONTENT_NO_CACHEABLE) (wb)->options &= ~WB_CONTENT_NO_CACHEABLE; } while(0) 47 #define buffer_no_cacheable(wb) do { (wb)->options |= WB_CONTENT_NO_CACHEABLE; if((wb)->options & WB_CONTENT_CACHEABLE) (wb)->options &= ~WB_CONTENT_CACHEABLE; (wb)->expires = 0; } while(0) 49 #define buffer_strlen(wb) ((wb)->len) 50 extern const char *buffer_tostring(
BUFFER *wb);
52 #define buffer_flush(wb) wb->buffer[(wb)->len = 0] = '\0' 53 extern void buffer_reset(
BUFFER *wb);
55 extern void buffer_strcat(
BUFFER *wb,
const char *txt);
56 extern void buffer_rrd_value(
BUFFER *wb, calculated_number value);
58 extern void buffer_date(
BUFFER *wb,
int year,
int month,
int day,
int hours,
int minutes,
int seconds);
59 extern void buffer_jsdate(
BUFFER *wb,
int year,
int month,
int day,
int hours,
int minutes,
int seconds);
61 extern BUFFER *buffer_create(
size_t size);
62 extern void buffer_free(
BUFFER *b);
63 extern void buffer_increase(
BUFFER *b,
size_t free_size_required);
65 extern void buffer_snprintf(
BUFFER *wb,
size_t len,
const char *fmt, ...) PRINTFLIKE(3, 4);
66 extern void buffer_vsprintf(
BUFFER *wb,
const char *fmt, va_list args);
67 extern void buffer_sprintf(
BUFFER *wb,
const char *fmt, ...) PRINTFLIKE(2,3);
68 extern void buffer_strcat_htmlescape(
BUFFER *wb,
const char *txt);
70 extern void buffer_char_replace(
BUFFER *wb,
char from,
char to);
72 extern char *print_number_lu_r(
char *str,
unsigned long uvalue);
73 extern char *print_number_llu_r(
char *str,
unsigned long long uvalue);
74 extern char *print_number_llu_r_smart(
char *str,
unsigned long long uvalue);
76 extern void buffer_print_llu(
BUFFER *wb,
unsigned long long uvalue);
78 static inline void buffer_need_bytes(
BUFFER *buffer,
size_t needed_free_size) {
79 if(unlikely(buffer->size - buffer->len < needed_free_size))
80 buffer_increase(buffer, needed_free_size);
Definition: web_buffer.h:8