]> arthur.barton.de Git - netdata.git/blobdiff - src/web_buffer.h
dns_query_time plugin: replace "." with "_" in dimensions
[netdata.git] / src / web_buffer.h
index c4cd0563212c0a835baa93b8517081213c68af02..8f0d29cd22546e82cfab46463cce773013f271a2 100644 (file)
@@ -4,12 +4,13 @@
 #define WEB_DATA_LENGTH_INCREASE_STEP 1024
 
 typedef struct web_buffer {
-    size_t size;        // allocation size of buffer
-    size_t len;     // current data length in buffer
-    char *buffer;   // the buffer
-    uint8_t contenttype;
-    uint8_t options;
-    time_t date;    // the date this content has been generated
+    size_t size;               // allocation size of buffer, in bytes
+    size_t len;                // current data length in buffer, in bytes
+    char *buffer;              // the buffer itself
+    uint8_t contenttype;       // the content type of the data in the buffer
+    uint8_t options;           // options related to the content
+    time_t date;               // the timestamp this content has been generated
+    time_t expires;                    // the timestamp this content expires
 } BUFFER;
 
 // options
@@ -38,6 +39,10 @@ typedef struct web_buffer {
 #define CT_IMAGE_XICON                  19
 #define CT_IMAGE_ICNS                   20
 #define CT_IMAGE_BMP                    21
+#define CT_PROMETHEUS                   22
+
+#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)
+#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)
 
 #define buffer_strlen(wb) ((wb)->len)
 extern const char *buffer_tostring(BUFFER *wb);
@@ -57,9 +62,10 @@ extern BUFFER *buffer_create(size_t size);
 extern void buffer_free(BUFFER *b);
 extern void buffer_increase(BUFFER *b, size_t free_size_required);
 
-extern void buffer_snprintf(BUFFER *wb, size_t len, const char *fmt, ...) __attribute__ (( format (printf, 3, 4)));
+extern void buffer_snprintf(BUFFER *wb, size_t len, const char *fmt, ...) PRINTFLIKE(3, 4);
 extern void buffer_vsprintf(BUFFER *wb, const char *fmt, va_list args);
-extern void buffer_sprintf(BUFFER *wb, const char *fmt, ...) __attribute__ (( format (printf, 2, 3)));
+extern void buffer_sprintf(BUFFER *wb, const char *fmt, ...) PRINTFLIKE(2,3);
+extern void buffer_strcat_htmlescape(BUFFER *wb, const char *txt);
 
 extern void buffer_char_replace(BUFFER *wb, char from, char to);