pacemaker 3.0.1-16e74fc4da
Scalable High-Availability cluster resource manager
Loading...
Searching...
No Matches
output_none.c
Go to the documentation of this file.
1/*
2 * Copyright 2019-2024 the Pacemaker project contributors
3 *
4 * The version control history for this file may have further details.
5 *
6 * This source code is licensed under the GNU Lesser General Public License
7 * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY.
8 */
9
10#include <crm_internal.h>
11
12#include <stdlib.h>
13#include <glib.h>
14
15#include <crm/crm.h>
17
18static void
19none_free_priv(pcmk__output_t *out) {
20 /* This function intentionally left blank */
21}
22
23static bool
24none_init(pcmk__output_t *out) {
25 return true;
26}
27
28static void
29none_finish(pcmk__output_t *out, crm_exit_t exit_status, bool print, void **copy_dest) {
30 /* This function intentionally left blank */
31}
32
33static void
34none_reset(pcmk__output_t *out) {
35 pcmk__assert(out != NULL);
36 none_free_priv(out);
37 none_init(out);
38}
39
40static void
41none_subprocess_output(pcmk__output_t *out, int exit_status,
42 const char *proc_stdout, const char *proc_stderr) {
43 /* This function intentionally left blank */
44}
45
46static void
47none_version(pcmk__output_t *out, bool extended) {
48 /* This function intentionally left blank */
49}
50
51G_GNUC_PRINTF(2, 3)
52static void
53none_err(pcmk__output_t *out, const char *format, ...) {
54 /* This function intentionally left blank */
55}
56
57G_GNUC_PRINTF(2, 3)
58static int
59none_info(pcmk__output_t *out, const char *format, ...) {
60 return pcmk_rc_no_output;
61}
62
63static void
64none_output_xml(pcmk__output_t *out, const char *name, const char *buf) {
65 /* This function intentionally left blank */
66}
67
68G_GNUC_PRINTF(4, 5)
69static void
70none_begin_list(pcmk__output_t *out, const char *singular_noun, const char *plural_noun,
71 const char *format, ...) {
72 /* This function intentionally left blank */
73}
74
75G_GNUC_PRINTF(3, 4)
76static void
77none_list_item(pcmk__output_t *out, const char *id, const char *format, ...) {
78 /* This function intentionally left blank */
79}
80
81static void
82none_increment_list(pcmk__output_t *out) {
83 /* This function intentionally left blank */
84}
85
86static void
87none_end_list(pcmk__output_t *out) {
88 /* This function intentionally left blank */
89}
90
91static bool
92none_is_quiet(pcmk__output_t *out) {
93 return out->quiet;
94}
95
96static void
97none_spacer(pcmk__output_t *out) {
98 /* This function intentionally left blank */
99}
100
101static void
102none_progress(pcmk__output_t *out, bool end) {
103 /* This function intentionally left blank */
104}
105
106static void
107none_prompt(const char *prompt, bool echo, char **dest) {
108 /* This function intentionally left blank */
109}
110
113 pcmk__output_t *retval = calloc(1, sizeof(pcmk__output_t));
114
115 if (retval == NULL) {
116 return NULL;
117 }
118
119 retval->fmt_name = PCMK_VALUE_NONE;
120 retval->request = pcmk__quote_cmdline(argv);
121
122 retval->init = none_init;
123 retval->free_priv = none_free_priv;
124 retval->finish = none_finish;
125 retval->reset = none_reset;
126
128 retval->message = pcmk__call_message;
129
130 retval->subprocess_output = none_subprocess_output;
131 retval->version = none_version;
132 retval->info = none_info;
133 retval->transient = none_info;
134 retval->err = none_err;
135 retval->output_xml = none_output_xml;
136
137 retval->begin_list = none_begin_list;
138 retval->list_item = none_list_item;
139 retval->increment_list = none_increment_list;
140 retval->end_list = none_end_list;
141
142 retval->is_quiet = none_is_quiet;
143 retval->spacer = none_spacer;
144 retval->progress = none_progress;
145 retval->prompt = none_prompt;
146
147 return retval;
148}
const char * name
Definition cib.c:26
gchar * pcmk__quote_cmdline(gchar **argv)
Definition cmdline.c:163
A dumping ground.
#define PCMK_VALUE_NONE
Definition options.h:180
int pcmk__call_message(pcmk__output_t *out, const char *message_id,...)
Definition output.c:176
void pcmk__register_message(pcmk__output_t *out, const char *message_id, pcmk__message_fn_t fn)
Definition output.c:198
pcmk__output_t * pcmk__mk_none_output(char **argv)
@ pcmk_rc_no_output
Definition results.h:128
enum crm_exit_e crm_exit_t
Exit status codes for tools and daemons.
#define pcmk__assert(expr)
This structure contains everything that makes up a single output formatter.
void(* end_list)(pcmk__output_t *out)
void(* version)(pcmk__output_t *out, bool extended)
int(* message)(pcmk__output_t *out, const char *message_id,...)
bool(* is_quiet)(pcmk__output_t *out)
const char * fmt_name
The name of this output formatter.
void void void(* increment_list)(pcmk__output_t *out)
void(* register_message)(pcmk__output_t *out, const char *message_id, pcmk__message_fn_t fn)
int int void void(* output_xml)(pcmk__output_t *out, const char *name, const char *buf)
int int void(* err)(pcmk__output_t *out, const char *format,...) G_GNUC_PRINTF(2
void(* finish)(pcmk__output_t *out, crm_exit_t exit_status, bool print, void **copy_dest)
void(* prompt)(const char *prompt, bool echo, char **dest)
void(* subprocess_output)(pcmk__output_t *out, int exit_status, const char *proc_stdout, const char *proc_stderr)
void(* begin_list)(pcmk__output_t *out, const char *singular_noun, const char *plural_noun, const char *format,...) G_GNUC_PRINTF(4
bool(* init)(pcmk__output_t *out)
void void(* list_item)(pcmk__output_t *out, const char *name, const char *format,...) G_GNUC_PRINTF(3
void(* spacer)(pcmk__output_t *out)
void(* progress)(pcmk__output_t *out, bool end)
bool quiet
Should this formatter supress most output?
void(* reset)(pcmk__output_t *out)
int(* info)(pcmk__output_t *out, const char *format,...) G_GNUC_PRINTF(2
int int(* transient)(pcmk__output_t *out, const char *format,...) G_GNUC_PRINTF(2
void(* free_priv)(pcmk__output_t *out)
gchar * request
A copy of the request that generated this output.