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 **)) {
 
  124                       (
const char *, 
const char *, 
size_t, 
bool)) {
 
  128                       (
char *, 
size_t, 
const char *, ...)) {
 
  160                       (
char *to, 
size_t n, 
const char *fmt, va_list ap))
 
  161      MY_ATTRIBUTE((format(printf, 3, 0)));
 
  167#define KEYRING_LOG_BUILTINS_IMPLEMENTOR(component_name)                       \ 
  168  BEGIN_SERVICE_IMPLEMENTATION(component_name, log_builtins)                   \ 
  169  keyring_common::service_definition::Log_builtins_keyring::wellknown_by_type, \ 
  170      keyring_common::service_definition::Log_builtins_keyring::               \ 
  172      keyring_common::service_definition::Log_builtins_keyring::               \ 
  173          wellknown_get_type,                                                  \ 
  174      keyring_common::service_definition::Log_builtins_keyring::               \ 
  175          wellknown_get_name,                                                  \ 
  176      keyring_common::service_definition::Log_builtins_keyring::               \ 
  178      keyring_common::service_definition::Log_builtins_keyring::               \ 
  180      keyring_common::service_definition::Log_builtins_keyring::               \ 
  182      keyring_common::service_definition::Log_builtins_keyring::               \ 
  183          item_numeric_class,                                                  \ 
  184      keyring_common::service_definition::Log_builtins_keyring::item_set_int,  \ 
  185      keyring_common::service_definition::Log_builtins_keyring::               \ 
  187      keyring_common::service_definition::Log_builtins_keyring::               \ 
  188          item_set_lexstring,                                                  \ 
  189      keyring_common::service_definition::Log_builtins_keyring::               \ 
  191      keyring_common::service_definition::Log_builtins_keyring::               \ 
  193      keyring_common::service_definition::Log_builtins_keyring::item_set,      \ 
  194      keyring_common::service_definition::Log_builtins_keyring::               \ 
  195          line_item_set_with_key,                                              \ 
  196      keyring_common::service_definition::Log_builtins_keyring::line_item_set, \ 
  197      keyring_common::service_definition::Log_builtins_keyring::line_init,     \ 
  198      keyring_common::service_definition::Log_builtins_keyring::line_exit,     \ 
  199      keyring_common::service_definition::Log_builtins_keyring::               \ 
  201      keyring_common::service_definition::Log_builtins_keyring::               \ 
  202          line_item_types_seen,                                                \ 
  203      keyring_common::service_definition::Log_builtins_keyring::               \ 
  204          line_get_output_buffer,                                              \ 
  205      keyring_common::service_definition::Log_builtins_keyring::               \ 
  206          line_item_iter_acquire,                                              \ 
  207      keyring_common::service_definition::Log_builtins_keyring::               \ 
  208          line_item_iter_release,                                              \ 
  209      keyring_common::service_definition::Log_builtins_keyring::               \ 
  210          line_item_iter_first,                                                \ 
  211      keyring_common::service_definition::Log_builtins_keyring::               \ 
  212          line_item_iter_next,                                                 \ 
  213      keyring_common::service_definition::Log_builtins_keyring::               \ 
  214          line_item_iter_current,                                              \ 
  215      keyring_common::service_definition::Log_builtins_keyring::line_submit,   \ 
  216      keyring_common::service_definition::Log_builtins_keyring::message,       \ 
  217      keyring_common::service_definition::Log_builtins_keyring::sanitize,      \ 
  218      keyring_common::service_definition::Log_builtins_keyring::               \ 
  220      keyring_common::service_definition::Log_builtins_keyring::               \ 
  221          errcode_by_errsymbol,                                                \ 
  222      keyring_common::service_definition::Log_builtins_keyring::               \ 
  224      keyring_common::service_definition::Log_builtins_keyring::               \ 
  225          parse_iso8601_timestamp,                                             \ 
  226      keyring_common::service_definition::Log_builtins_keyring::               \ 
  228      keyring_common::service_definition::Log_builtins_keyring::               \ 
  230      keyring_common::service_definition::Log_builtins_keyring::               \ 
  231          dedicated_errstream,                                                 \ 
  232      keyring_common::service_definition::Log_builtins_keyring::               \ 
  234      keyring_common::service_definition::Log_builtins_keyring::               \ 
  236          END_SERVICE_IMPLEMENTATION() 
  238#define KEYRING_LOG_BUILTINS_STRING_IMPLEMENTOR(component_name)              \ 
  239  BEGIN_SERVICE_IMPLEMENTATION(component_name, log_builtins_string)          \ 
  240  keyring_common::service_definition::Log_builtins_keyring::malloc,          \ 
  241      keyring_common::service_definition::Log_builtins_keyring::strndup,     \ 
  242      keyring_common::service_definition::Log_builtins_keyring::free,        \ 
  243      keyring_common::service_definition::Log_builtins_keyring::length,      \ 
  244      keyring_common::service_definition::Log_builtins_keyring::find_first,  \ 
  245      keyring_common::service_definition::Log_builtins_keyring::find_last,   \ 
  246      keyring_common::service_definition::Log_builtins_keyring::compare,     \ 
  247      keyring_common::service_definition::Log_builtins_keyring::substitutev, \ 
  248      keyring_common::service_definition::Log_builtins_keyring::substitute   \ 
  249      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:117
 
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:128
 
static char * find_last(const char *, int) noexcept
Definition: keyring_log_builtins_definition.h:120
 
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:131
 
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 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:124
 
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:207
 
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:216
 
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:196
 
log_line ("log event")
Definition: keyring_log_builtins_definition.cc:72
 
unsigned int uint
Definition: uca9-dump.cc:75
 
Definition: log_shared.h:185
 
int n
Definition: xcom_base.cc:509