diff options
Diffstat (limited to '')
-rw-r--r-- | src/doveadm/doveadm-print.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/doveadm/doveadm-print.h b/src/doveadm/doveadm-print.h new file mode 100644 index 0000000..2d610e8 --- /dev/null +++ b/src/doveadm/doveadm-print.h @@ -0,0 +1,48 @@ +#ifndef DOVEADM_PRINT_H +#define DOVEADM_PRINT_H + +#define DOVEADM_PRINT_TYPE_TAB "tab" +#define DOVEADM_PRINT_TYPE_FLOW "flow" +#define DOVEADM_PRINT_TYPE_PAGER "pager" +#define DOVEADM_PRINT_TYPE_TABLE "table" +#define DOVEADM_PRINT_TYPE_SERVER "server" +#define DOVEADM_PRINT_TYPE_JSON "json" +#define DOVEADM_PRINT_TYPE_FORMATTED "formatted" + +enum doveadm_print_header_flags { + DOVEADM_PRINT_HEADER_FLAG_RIGHT_JUSTIFY = 0x01, + DOVEADM_PRINT_HEADER_FLAG_STICKY = 0x02, + DOVEADM_PRINT_HEADER_FLAG_HIDE_TITLE = 0x04, + DOVEADM_PRINT_HEADER_FLAG_EXPAND = 0x08, + DOVEADM_PRINT_HEADER_FLAG_NUMBER = 0x10 +}; + +extern const struct doveadm_print_vfuncs *doveadm_print_vfuncs_all[]; +extern bool doveadm_print_hide_titles; +/* points to either stdout or to doveadm-server's TCP connection */ +extern struct ostream *doveadm_print_ostream; + +bool doveadm_print_is_initialized(void); + +void doveadm_print_header(const char *key, const char *title, + enum doveadm_print_header_flags flags); +void doveadm_print_header_simple(const char *key_title); +unsigned int doveadm_print_get_headers_count(void); + +void doveadm_print(const char *value); +void doveadm_print_num(uintmax_t value); +/* Stream for same field continues until len=0 */ +void doveadm_print_stream(const void *value, size_t size); +/* Print the whole input stream. Returns 0 if ok, -1 if stream read() failed. + The caller must log the error. */ +int doveadm_print_istream(struct istream *input); +void doveadm_print_sticky(const char *key, const char *value); +void doveadm_print_flush(void); +void doveadm_print_unstick_headers(void); + +void doveadm_print_init(const char *name); +void doveadm_print_deinit(void); + +void doveadm_print_formatted_set_format(const char *format); + +#endif |