24#ifndef KEYRING_LOG_BUILTINS_DEFINITION_INCLUDED
25#define KEYRING_LOG_BUILTINS_DEFINITION_INCLUDED
33namespace service_definition {
94 (
const char *,
size_t)) {
99 (
const char *,
void **)) {
103 (
void *,
const char *,
size_t)) {
111 (
const char *,
void **)) {
127 (
const char *,
const char *,
size_t,
bool)) {
131 (
char *,
size_t,
const char *, ...)) {
163 (
char *to,
size_t n,
const char *fmt, va_list ap))
164 MY_ATTRIBUTE((format(printf, 3, 0)));
170#define KEYRING_LOG_BUILTINS_IMPLEMENTOR(component_name) \
171 BEGIN_SERVICE_IMPLEMENTATION(component_name, log_builtins) \
172 keyring_common::service_definition::Log_builtins_keyring::wellknown_by_type, \
173 keyring_common::service_definition::Log_builtins_keyring:: \
175 keyring_common::service_definition::Log_builtins_keyring:: \
176 wellknown_get_type, \
177 keyring_common::service_definition::Log_builtins_keyring:: \
178 wellknown_get_name, \
179 keyring_common::service_definition::Log_builtins_keyring:: \
181 keyring_common::service_definition::Log_builtins_keyring:: \
183 keyring_common::service_definition::Log_builtins_keyring:: \
185 keyring_common::service_definition::Log_builtins_keyring:: \
186 item_numeric_class, \
187 keyring_common::service_definition::Log_builtins_keyring::item_set_int, \
188 keyring_common::service_definition::Log_builtins_keyring:: \
190 keyring_common::service_definition::Log_builtins_keyring:: \
191 item_set_lexstring, \
192 keyring_common::service_definition::Log_builtins_keyring:: \
194 keyring_common::service_definition::Log_builtins_keyring::line_set_flag, \
195 keyring_common::service_definition::Log_builtins_keyring:: \
197 keyring_common::service_definition::Log_builtins_keyring::item_set, \
198 keyring_common::service_definition::Log_builtins_keyring:: \
199 line_item_set_with_key, \
200 keyring_common::service_definition::Log_builtins_keyring::line_item_set, \
201 keyring_common::service_definition::Log_builtins_keyring::line_init, \
202 keyring_common::service_definition::Log_builtins_keyring::line_exit, \
203 keyring_common::service_definition::Log_builtins_keyring:: \
205 keyring_common::service_definition::Log_builtins_keyring:: \
206 line_item_types_seen, \
207 keyring_common::service_definition::Log_builtins_keyring:: \
208 line_get_output_buffer, \
209 keyring_common::service_definition::Log_builtins_keyring:: \
210 line_item_iter_acquire, \
211 keyring_common::service_definition::Log_builtins_keyring:: \
212 line_item_iter_release, \
213 keyring_common::service_definition::Log_builtins_keyring:: \
214 line_item_iter_first, \
215 keyring_common::service_definition::Log_builtins_keyring:: \
216 line_item_iter_next, \
217 keyring_common::service_definition::Log_builtins_keyring:: \
218 line_item_iter_current, \
219 keyring_common::service_definition::Log_builtins_keyring::line_submit, \
220 keyring_common::service_definition::Log_builtins_keyring::message, \
221 keyring_common::service_definition::Log_builtins_keyring::sanitize, \
222 keyring_common::service_definition::Log_builtins_keyring:: \
224 keyring_common::service_definition::Log_builtins_keyring:: \
225 errcode_by_errsymbol, \
226 keyring_common::service_definition::Log_builtins_keyring:: \
228 keyring_common::service_definition::Log_builtins_keyring:: \
229 parse_iso8601_timestamp, \
230 keyring_common::service_definition::Log_builtins_keyring:: \
232 keyring_common::service_definition::Log_builtins_keyring:: \
234 keyring_common::service_definition::Log_builtins_keyring:: \
235 dedicated_errstream, \
236 keyring_common::service_definition::Log_builtins_keyring:: \
238 keyring_common::service_definition::Log_builtins_keyring:: \
240 END_SERVICE_IMPLEMENTATION()
242#define KEYRING_LOG_BUILTINS_STRING_IMPLEMENTOR(component_name) \
243 BEGIN_SERVICE_IMPLEMENTATION(component_name, log_builtins_string) \
244 keyring_common::service_definition::Log_builtins_keyring::malloc, \
245 keyring_common::service_definition::Log_builtins_keyring::strndup, \
246 keyring_common::service_definition::Log_builtins_keyring::free, \
247 keyring_common::service_definition::Log_builtins_keyring::length, \
248 keyring_common::service_definition::Log_builtins_keyring::find_first, \
249 keyring_common::service_definition::Log_builtins_keyring::find_last, \
250 keyring_common::service_definition::Log_builtins_keyring::compare, \
251 keyring_common::service_definition::Log_builtins_keyring::substitutev, \
252 keyring_common::service_definition::Log_builtins_keyring::substitute \
253 END_SERVICE_IMPLEMENTATION()
Definition: keyring_log_builtins_definition.h:35
static bool item_set_int(log_item_data *lid, longlong i) noexcept
Definition: keyring_log_builtins_definition.cc:221
static char * find_first(const char *, int) noexcept
Definition: keyring_log_builtins_definition.h:120
static size_t substitutev(char *to, size_t n, const char *fmt, va_list ap) noexcept
Definition: keyring_log_builtins_definition.cc:375
static log_item * line_item_iter_next(log_item_iter *) noexcept
Definition: keyring_log_builtins_definition.h:86
static void * malloc(size_t len) noexcept
Definition: keyring_log_builtins_definition.cc:349
static const char * errmsg_by_errcode(int mysql_errcode) noexcept
Definition: keyring_log_builtins_definition.cc:332
static log_item * line_item_iter_first(log_item_iter *) noexcept
Definition: keyring_log_builtins_definition.h:83
static void line_exit(log_line *ll) noexcept
Definition: keyring_log_builtins_definition.cc:211
static bool item_numeric_class(log_item_class) noexcept
Definition: keyring_log_builtins_definition.h:58
static log_item_data * item_set(log_item *, log_item_type) noexcept
Definition: keyring_log_builtins_definition.h:66
static log_line * line_init() noexcept
Definition: keyring_log_builtins_definition.cc:205
static int sanitize(log_item *) noexcept
Definition: keyring_log_builtins_definition.h:92
static void line_item_iter_release(log_item_iter *) noexcept
Definition: keyring_log_builtins_definition.h:80
static size_t substitute(char *, size_t, const char *,...) noexcept
Definition: keyring_log_builtins_definition.h:131
static char * find_last(const char *, int) noexcept
Definition: keyring_log_builtins_definition.h:123
static log_service_error reopen_errstream(const char *, void **) noexcept
Definition: keyring_log_builtins_definition.h:111
static longlong errcode_by_errsymbol(const char *) noexcept
Definition: keyring_log_builtins_definition.h:134
static bool item_set_cstring(log_item_data *lid, const char *s) noexcept
Definition: keyring_log_builtins_definition.cc:240
static log_item_type_mask line_item_types_seen(log_line *ll, log_item_type_mask m) noexcept
Definition: keyring_log_builtins_definition.cc:216
static log_item * line_get_output_buffer(log_line *) noexcept
Definition: keyring_log_builtins_definition.h:74
static ulonglong parse_iso8601_timestamp(const char *, size_t) noexcept
Definition: keyring_log_builtins_definition.h:94
static void line_set_flag(log_line *, log_line_flags_mask, log_line_flags_mask) noexcept
Definition: keyring_log_builtins_definition.h:116
static int line_submit(log_line *ll) noexcept
Definition: keyring_log_builtins_definition.cc:249
static int wellknown_by_type(log_item_type) noexcept
Definition: keyring_log_builtins_definition.h:39
static bool item_set_float(log_item_data *, double) noexcept
Definition: keyring_log_builtins_definition.h:69
static int wellknown_by_name(const char *, size_t) noexcept
Definition: keyring_log_builtins_definition.h:42
static int compare(const char *, const char *, size_t, bool) noexcept
Definition: keyring_log_builtins_definition.h:127
static log_item_data * line_item_set(log_line *ll, log_item_type t) noexcept
Definition: keyring_log_builtins_definition.cc:201
static log_service_error close_errstream(void **) noexcept
Definition: keyring_log_builtins_definition.h:107
static log_service_error open_errstream(const char *, void **) noexcept
Definition: keyring_log_builtins_definition.h:99
static log_item_iter * line_item_iter_acquire(log_line *) noexcept
Definition: keyring_log_builtins_definition.h:77
static bool item_generic_type(log_item_type) noexcept
Definition: keyring_log_builtins_definition.h:52
static const char * wellknown_get_name(uint) noexcept
Definition: keyring_log_builtins_definition.h:48
static size_t length(const char *s) noexcept
Definition: keyring_log_builtins_definition.cc:370
static void free(void *ptr) noexcept
Definition: keyring_log_builtins_definition.cc:363
static log_item_data * line_item_set_with_key(log_line *ll, log_item_type t, const char *key, uint32 alloc) noexcept
Definition: keyring_log_builtins_definition.cc:196
static int line_item_count(log_line *) noexcept
Definition: keyring_log_builtins_definition.h:73
static char * strndup(const char *fm, size_t len) noexcept
Definition: keyring_log_builtins_definition.cc:354
static log_service_error write_errstream(void *, const char *, size_t) noexcept
Definition: keyring_log_builtins_definition.h:103
static const char * label_from_prio(int) noexcept
Definition: keyring_log_builtins_definition.h:97
static int dedicated_errstream(void *) noexcept
Definition: keyring_log_builtins_definition.h:106
static int message(int,...) noexcept
Definition: keyring_log_builtins_definition.h:114
static log_item * line_item_iter_current(log_item_iter *) noexcept
Definition: keyring_log_builtins_definition.h:89
static bool item_set_lexstring(log_item_data *lid, const char *s, size_t s_len) noexcept
Definition: keyring_log_builtins_definition.cc:230
static bool item_string_class(log_item_class) noexcept
Definition: keyring_log_builtins_definition.h:55
static int item_inconsistent(log_item *) noexcept
Definition: keyring_log_builtins_definition.h:51
static log_item_type wellknown_get_type(uint) noexcept
Definition: keyring_log_builtins_definition.h:45
static log_item_data * item_set_with_key(log_item *, log_item_type, const char *, uint32) noexcept
Definition: keyring_log_builtins_definition.h:63
Specifies macros to define Components.
enum enum_log_service_error log_service_error
Error codes.
@ LOG_SERVICE_COULD_NOT_MAKE_LOG_NAME
could not make log name
Definition: log_service.h:138
@ LOG_SERVICE_NOTHING_DONE
no error, but no effect either
Definition: log_service.h:102
@ LOG_ITEM_TYPE_NOT_FOUND
Definition: log_shared.h:212
uint64 log_line_flags_mask
a bit mask with flags describing a log line
Definition: log_shared.h:230
enum enum_log_item_class log_item_class
@ LOG_ITEM_END
end of list, see above
Definition: log_shared.h:125
enum enum_log_item_type log_item_type
item_type – what to log
uint64 log_item_type_mask
a bit mask of log_types.
Definition: log_shared.h:221
unsigned long long int ulonglong
Definition: my_inttypes.h:56
long long int longlong
Definition: my_inttypes.h:55
uint32_t uint32
Definition: my_inttypes.h:67
Definition: keyring_encryption_service_definition.h:32
required string key
Definition: replication_asynchronous_connection_failover.proto:60
Specifies macros to define Service Implementations.
#define DEFINE_METHOD(retval, name, args)
A macro to ensure method implementation has required properties, that is it does not throw exceptions...
Definition: service_implementation.h:79
Iterator over the key/value pairs of a log_line.
Definition: keyring_log_builtins_definition.cc:64
Definition: log_shared.h:201
log_line ("log event")
Definition: keyring_log_builtins_definition.cc:72
Definition: log_shared.h:190
int n
Definition: xcom_base.cc:509