syslog-ng source
cfg-block-generator.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2002-2017 Balabit
3  * Copyright (c) 1998-2017 Balázs Scheidler
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18  *
19  * As an additional exemption you are allowed to compile & link against the
20  * OpenSSL libraries as published by the OpenSSL project. See the file
21  * COPYING for details.
22  *
23  */
24 
25 #ifndef CFG_BLOCK_GENERATOR_H_INCLUDED
26 #define CFG_BLOCK_GENERATOR_H_INCLUDED 1
27 
28 #include "syslog-ng.h"
29 
40 typedef struct _CfgBlockGenerator CfgBlockGenerator;
42 {
43  gint ref_cnt;
44  gint context;
45  gchar *name;
47  const gchar *(*format_name)(CfgBlockGenerator *self, gchar *buf, gsize buf_len);
48  gboolean (*generate)(CfgBlockGenerator *self, GlobalConfig *cfg, gpointer args, GString *result,
49  const gchar *reference);
50  void (*free_fn)(CfgBlockGenerator *self);
51 };
52 
53 static inline const gchar *
54 cfg_block_generator_format_name(CfgBlockGenerator *self, gchar *buf, gsize buf_len)
55 {
56  return self->format_name(self, buf, buf_len);
57 }
58 
59 gboolean cfg_block_generator_generate(CfgBlockGenerator *self, GlobalConfig *cfg, gpointer args, GString *result,
60  const gchar *reference);
61 void cfg_block_generator_init_instance(CfgBlockGenerator *self, gint context, const gchar *name);
62 void cfg_block_generator_free_instance(CfgBlockGenerator *self);
63 CfgBlockGenerator *cfg_block_generator_ref(CfgBlockGenerator *self);
64 void cfg_block_generator_unref(CfgBlockGenerator *self);
65 
66 
67 #endif
CfgBlockGenerator * cfg_block_generator_ref(CfgBlockGenerator *self)
Definition: cfg-block-generator.c:88
void cfg_block_generator_unref(CfgBlockGenerator *self)
Definition: cfg-block-generator.c:95
void cfg_block_generator_free_instance(CfgBlockGenerator *self)
Definition: cfg-block-generator.c:82
gboolean cfg_block_generator_generate(CfgBlockGenerator *self, GlobalConfig *cfg, gpointer args, GString *result, const gchar *reference)
Definition: cfg-block-generator.c:57
void cfg_block_generator_init_instance(CfgBlockGenerator *self, gint context, const gchar *name)
Definition: cfg-block-generator.c:72
const gchar * name
Definition: debugger.c:265
Definition: cfg-block-generator.h:42
gboolean suppress_backticks
Definition: cfg-block-generator.h:46
gint ref_cnt
Definition: cfg-block-generator.h:43
void(* free_fn)(CfgBlockGenerator *self)
Definition: cfg-block-generator.h:50
gint context
Definition: cfg-block-generator.h:44
gboolean(* generate)(CfgBlockGenerator *self, GlobalConfig *cfg, gpointer args, GString *result, const gchar *reference)
Definition: cfg-block-generator.h:48
gchar * name
Definition: cfg-block-generator.h:45
GlobalConfig * cfg
Definition: test_batched_ack_tracker.c:34
GString * result
Definition: test_lexer_block.c:34