summaryrefslogtreecommitdiffstats
path: root/pigeonhole/src/lib-sieve/sieve-binary-dumper.h
blob: 43431903efc1e167a04cc774322ce98e0d4c41f2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#ifndef SIEVE_BINARY_DUMPER_H
#define SIEVE_BINARY_DUMPER_H

#include "sieve-common.h"

/*
 * Binary dumper object
 */

struct sieve_binary_dumper;

struct sieve_binary_dumper *
sieve_binary_dumper_create(struct sieve_binary *sbin);
void sieve_binary_dumper_free(struct sieve_binary_dumper **dumper);

pool_t sieve_binary_dumper_pool(struct sieve_binary_dumper *dumper);

/*
 * Formatted output
 */

void sieve_binary_dumpf(const struct sieve_dumptime_env *denv,
			const char *fmt, ...) ATTR_FORMAT(2, 3);
void sieve_binary_dump_sectionf(const struct sieve_dumptime_env *denv,
				const char *fmt, ...) ATTR_FORMAT(2, 3);

/*
 * Dumping the binary
 */

bool sieve_binary_dumper_run(struct sieve_binary_dumper *dumper,
			     struct ostream *stream, bool verbose);

/*
 * Hexdump production
 */

void sieve_binary_dumper_hexdump(struct sieve_binary_dumper *dumper,
				 struct ostream *stream);

#endif