syslog-ng source
logproto-server.h File Reference
Include dependency graph for logproto-server.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  LogProtoServerOptions
 
union  LogProtoServerOptionsStorage
 
struct  LogProtoServerWakeupCallback
 
struct  LogProtoServer
 
struct  LogProtoServerFactory
 

Macros

#define LOG_PROTO_SERVER_OPTIONS_SIZE   160
 
#define DEFINE_LOG_PROTO_SERVER(prefix, options...)
 
#define LOG_PROTO_SERVER_PLUGIN(prefix, __name)
 
#define LOG_PROTO_SERVER_PLUGIN_WITH_GRAMMAR(__parser, __name)
 

Typedefs

typedef char static_assert_size_check_LogProtoServerOptions[LOG_PROTO_SERVER_OPTIONS_SIZE >=sizeof(LogProtoServerOptions) ? 1 :-1]
 
typedef void(* LogProtoServerWakeupFunc) (gpointer user_data)
 

Enumerations

enum  LogProtoPrepareAction { LPPA_POLL_IO , LPPA_FORCE_SCHEDULE_FETCH , LPPA_SUSPEND }
 

Functions

gboolean log_proto_server_options_set_encoding (LogProtoServerOptionsStorage *s, const gchar *encoding)
 
void log_proto_server_options_set_ack_tracker_factory (LogProtoServerOptionsStorage *s, AckTrackerFactory *factory)
 
void log_proto_server_options_defaults (LogProtoServerOptionsStorage *options)
 
void log_proto_server_options_init (LogProtoServerOptionsStorage *options, GlobalConfig *cfg)
 
gboolean log_proto_server_options_validate (LogProtoServerOptionsStorage *options)
 
void log_proto_server_options_destroy (LogProtoServerOptionsStorage *options)
 
AckTrackerFactory * log_proto_server_get_ack_tracker_factory (LogProtoServer *s)
 
gboolean log_proto_server_is_position_tracked (LogProtoServer *s)
 
gboolean log_proto_server_validate_options_method (LogProtoServer *s)
 
void log_proto_server_init (LogProtoServer *s, LogTransport *transport, const LogProtoServerOptionsStorage *options)
 
void log_proto_server_free_method (LogProtoServer *s)
 
void log_proto_server_free (LogProtoServer *s)
 
LogProtoServerFactory * log_proto_server_get_factory (PluginContext *context, const gchar *name)
 
const guchar * find_eom (const guchar *s, gsize n)
 

Macro Definition Documentation

◆ DEFINE_LOG_PROTO_SERVER

#define DEFINE_LOG_PROTO_SERVER (   prefix,
  options... 
)
Value:
static gpointer \
prefix ## _server_plugin_construct(Plugin *self) \
{ \
static LogProtoServerFactory proto = { \
.construct = prefix ## _server_new, \
##options \
}; \
return &proto; \
}

◆ LOG_PROTO_SERVER_OPTIONS_SIZE

#define LOG_PROTO_SERVER_OPTIONS_SIZE   160

◆ LOG_PROTO_SERVER_PLUGIN

#define LOG_PROTO_SERVER_PLUGIN (   prefix,
  __name 
)
Value:
{ \
.type = LL_CONTEXT_SERVER_PROTO, \
.name = __name, \
.construct = prefix ## _server_plugin_construct, \
}

◆ LOG_PROTO_SERVER_PLUGIN_WITH_GRAMMAR

#define LOG_PROTO_SERVER_PLUGIN_WITH_GRAMMAR (   __parser,
  __name 
)
Value:
{ \
.type = LL_CONTEXT_SERVER_PROTO, \
.name = __name, \
.parser = &__parser, \
}

Typedef Documentation

◆ LogProtoServerWakeupFunc

typedef void(* LogProtoServerWakeupFunc) (gpointer user_data)

◆ static_assert_size_check_LogProtoServerOptions

typedef char static_assert_size_check_LogProtoServerOptions[ LOG_PROTO_SERVER_OPTIONS_SIZE >=sizeof(LogProtoServerOptions) ? 1 :-1]

Enumeration Type Documentation

◆ LogProtoPrepareAction

Enumerator
LPPA_POLL_IO 
LPPA_FORCE_SCHEDULE_FETCH 
LPPA_SUSPEND 

Function Documentation

◆ find_eom()

const guchar* find_eom ( const guchar *  s,
gsize  n 
)

Find the character terminating the buffer.

NOTE: when looking for the end-of-message here, it either needs to be terminated via NUL or via NL, when terminating via NL we have to make sure that there's no NUL left in the message. This function iterates over the input data and returns a pointer to the first occurrence of NL or NUL.

It uses an algorithm similar to what there's in libc memchr/strchr.

NOTE: find_eom is not static as it is used by a unit test program.

◆ log_proto_server_free()

void log_proto_server_free ( LogProtoServer *  s)

◆ log_proto_server_free_method()

void log_proto_server_free_method ( LogProtoServer *  s)

◆ log_proto_server_get_ack_tracker_factory()

AckTrackerFactory* log_proto_server_get_ack_tracker_factory ( LogProtoServer *  s)

◆ log_proto_server_get_factory()

LogProtoServerFactory* log_proto_server_get_factory ( PluginContext *  context,
const gchar *  name 
)

◆ log_proto_server_init()

void log_proto_server_init ( LogProtoServer *  s,
LogTransport *  transport,
const LogProtoServerOptionsStorage *  options 
)

◆ log_proto_server_is_position_tracked()

gboolean log_proto_server_is_position_tracked ( LogProtoServer *  s)

◆ log_proto_server_options_defaults()

void log_proto_server_options_defaults ( LogProtoServerOptionsStorage *  options)

◆ log_proto_server_options_destroy()

void log_proto_server_options_destroy ( LogProtoServerOptionsStorage *  options)

◆ log_proto_server_options_init()

void log_proto_server_options_init ( LogProtoServerOptionsStorage *  options,
GlobalConfig *  cfg 
)

◆ log_proto_server_options_set_ack_tracker_factory()

void log_proto_server_options_set_ack_tracker_factory ( LogProtoServerOptionsStorage *  s,
AckTrackerFactory *  factory 
)

◆ log_proto_server_options_set_encoding()

gboolean log_proto_server_options_set_encoding ( LogProtoServerOptionsStorage *  s,
const gchar *  encoding 
)

◆ log_proto_server_options_validate()

gboolean log_proto_server_options_validate ( LogProtoServerOptionsStorage *  options)

◆ log_proto_server_validate_options_method()

gboolean log_proto_server_validate_options_method ( LogProtoServer *  s)