File: show.h

package info (click to toggle)
libreswan 5.2-2.3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 81,644 kB
  • sloc: ansic: 129,988; sh: 32,018; xml: 20,646; python: 10,303; makefile: 3,022; javascript: 1,506; sed: 574; yacc: 511; perl: 264; awk: 52
file content (104 lines) | stat: -rw-r--r-- 2,657 bytes parent folder | download | duplicates (2)
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
/* show (whack-only) output functions, for libreswan
 *
 * Copyright (C) 2020 Andrew Cagney
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by the
 * Free Software Foundation; either version 2 of the License, or (at your
 * option) any later version.  See <https://www.gnu.org/licenses/gpl2.txt>.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * for more details.
 */

#ifndef SHOW_H
#define SHOW_H

#include "lswcdefs.h"		/* for PRINTF_LIKE() */

struct show;
enum rc_type;
struct logger;

/*
 * Try to deal with the separator (i.e., don't output duplicate blank
 * / spacer lines when combining functions that send output to whack)
 * in show (whack-only) output.
 */

struct show *alloc_show(struct logger *logger);
void free_show(struct show **s);
/* underlying global logger formed by alloc_show() */
struct logger *show_logger(struct show *s);

/*
 * output primitives: access the internal jambuf; show the contents of
 * a jambuf.
 */

struct jambuf *show_jambuf(struct show *s, enum rc_type rc);
void show_to_logger(struct show *s);
#define SHOW_JAMBUF(S, BUF)					\
	for (struct jambuf *BUF = show_jambuf(S, RC_LOG);	\
	     BUF != NULL;					\
	     show_to_logger(S), BUF = NULL)

/*
 * Flag that the next line needs to be preceded by a separator (aka
 * blank line).  For instance:
 *
 * Example 1:
 *
 *    show_separator(s);
 *    show(s, "heading 1");
 *    show_separator(s);
 *    show_separator(s);
 *    show(s, "heading 2");
 *    show_separator(s);
 *
 *    heading 1
 *    <blank>
 *    heading 2
 *    <blank>
 *
 * Example 2:
 *
 *    show_blank(s);
 *    show_separator(s);
 *    show_blank(s);
 *    show(s, "heading 1");
 *
 * will output:
 *
 *    <blank>
 *    line 1
 *
 */
void show_separator(struct show *s);
void show_blank(struct show *s);

/*
 * If necessary show the separator (aka blank line), and then show the
 * message.  Suppress further separation.
 *
 * "comment" comes from RC_LOG, better name?
 */

void show(struct show *s, const char *message, ...) PRINTF_LIKE(2);

/*
 * Whack only logging.
 *
 * None of these functions add a context prefix (such as connection
 * name).  If that's really really needed then use
 * log_*(WHACK_STREAM,...) above.
 *
 * also requires a valid whackfd.  It should only be used by show
 * commands.
 */

void whack_log(enum rc_type rc, struct show *s, const char *message, ...) PRINTF_LIKE(3);

#endif