syslog-ng source
nvtable.h File Reference
#include "syslog-ng.h"
#include "nvhandle-descriptors.h"
Include dependency graph for nvtable.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  NVIndexEntry
 
struct  NVRegistry
 
struct  NVReferencedSlice
 
struct  NVEntry
 
struct  NVTable
 

Macros

#define NVHANDLE_MAX_VALUE   ((NVHandle)-1)
 
#define NV_ENTRY_DIRECT_HDR   ((gsize) (&((NVEntry *) NULL)->vdirect.data))
 
#define NV_ENTRY_DIRECT_SIZE(name_len, value_len)   ((value_len) + NV_ENTRY_DIRECT_HDR + (name_len) + 2)
 
#define NV_ENTRY_INDIRECT_HDR   (sizeof(NVEntry))
 
#define NV_ENTRY_INDIRECT_SIZE(name_len)   (NV_ENTRY_INDIRECT_HDR + name_len + 1)
 
#define NV_TABLE_BOUND(x)   (((x) + 0x3) & ~0x3)
 
#define NV_TABLE_ADDR(self, x)   ((gchar *) ((self)) + ((gssize)(x)))
 
#define NV_TABLE_MAX_BYTES   (256*1024*1024)
 
#define NV_TABLE_MIN_BYTES   128
 

Typedefs

typedef guint32 NVHandle
 
typedef guint8 NVType
 
typedef gboolean(* NVTableForeachFunc) (NVHandle handle, const gchar *name, const gchar *value, gssize value_len, NVType type, gpointer user_data)
 
typedef gboolean(* NVTableForeachEntryFunc) (NVHandle handle, NVEntry *entry, NVIndexEntry *index_entry, gpointer user_data)
 

Functions

void nv_registry_add_alias (NVRegistry *self, NVHandle handle, const gchar *alias)
 
void nv_registry_add_predefined (NVRegistry *self, NVHandle handle, const gchar *name)
 
void nv_registry_assert_next_handle (NVRegistry *self, NVHandle handle)
 
NVHandle nv_registry_get_handle (NVRegistry *self, const gchar *name)
 
NVHandle nv_registry_alloc_handle (NVRegistry *self, const gchar *name)
 
void nv_registry_set_handle_flags (NVRegistry *self, NVHandle handle, guint16 flags)
 
void nv_registry_foreach (NVRegistry *self, GHFunc callback, gpointer user_data)
 
NVRegistry * nv_registry_new (const gchar **static_names, guint32 nvhandle_max_value)
 
void nv_registry_free (NVRegistry *self)
 
gboolean nv_table_add_value (NVTable *self, NVHandle handle, const gchar *name, gsize name_len, const gchar *value, gsize value_len, NVType type, gboolean *new_entry)
 
gboolean nv_table_unset_value (NVTable *self, NVHandle handle)
 
gboolean nv_table_add_value_indirect (NVTable *self, NVHandle handle, const gchar *name, gsize name_len, NVReferencedSlice *referenced_slice, NVType type, gboolean *new_entry)
 
gboolean nv_table_foreach (NVTable *self, NVRegistry *registry, NVTableForeachFunc func, gpointer user_data)
 
gboolean nv_table_foreach_entry (NVTable *self, NVTableForeachEntryFunc func, gpointer user_data)
 
NVTable * nv_table_new (gint num_static_values, gint index_size_hint, gint init_length)
 
NVTable * nv_table_init_borrowed (gpointer space, gsize space_len, gint num_static_entries)
 
gboolean nv_table_realloc (NVTable *self, NVTable **new_nv_table)
 
NVTable * nv_table_compact (NVTable *self)
 
NVTable * nv_table_clone (NVTable *self, gint additional_space)
 
NVTable * nv_table_ref (NVTable *self)
 
void nv_table_unref (NVTable *self)
 
NVEntry * nv_table_get_entry_slow (NVTable *self, NVHandle handle, NVIndexEntry **index_entry, NVIndexEntry **index_slot)
 
const gchar * nv_table_resolve_indirect (NVTable *self, NVEntry *entry, gssize *len)
 

Variables

const gchar * null_string
 

Macro Definition Documentation

◆ NV_ENTRY_DIRECT_HDR

#define NV_ENTRY_DIRECT_HDR   ((gsize) (&((NVEntry *) NULL)->vdirect.data))

◆ NV_ENTRY_DIRECT_SIZE

#define NV_ENTRY_DIRECT_SIZE (   name_len,
  value_len 
)    ((value_len) + NV_ENTRY_DIRECT_HDR + (name_len) + 2)

◆ NV_ENTRY_INDIRECT_HDR

#define NV_ENTRY_INDIRECT_HDR   (sizeof(NVEntry))

◆ NV_ENTRY_INDIRECT_SIZE

#define NV_ENTRY_INDIRECT_SIZE (   name_len)    (NV_ENTRY_INDIRECT_HDR + name_len + 1)

◆ NV_TABLE_ADDR

#define NV_TABLE_ADDR (   self,
 
)    ((gchar *) ((self)) + ((gssize)(x)))

◆ NV_TABLE_BOUND

#define NV_TABLE_BOUND (   x)    (((x) + 0x3) & ~0x3)

◆ NV_TABLE_MAX_BYTES

#define NV_TABLE_MAX_BYTES   (256*1024*1024)

◆ NV_TABLE_MIN_BYTES

#define NV_TABLE_MIN_BYTES   128

◆ NVHANDLE_MAX_VALUE

#define NVHANDLE_MAX_VALUE   ((NVHandle)-1)

Typedef Documentation

◆ NVHandle

typedef guint32 NVHandle

◆ NVTableForeachEntryFunc

typedef gboolean(* NVTableForeachEntryFunc) (NVHandle handle, NVEntry *entry, NVIndexEntry *index_entry, gpointer user_data)

◆ NVTableForeachFunc

typedef gboolean(* NVTableForeachFunc) (NVHandle handle, const gchar *name, const gchar *value, gssize value_len, NVType type, gpointer user_data)

◆ NVType

typedef guint8 NVType

Function Documentation

◆ nv_registry_add_alias()

void nv_registry_add_alias ( NVRegistry *  self,
NVHandle  handle,
const gchar *  alias 
)

nv_registry_add_alias: @handle: a NV handle to be aliased @alias: must be a caller allocated string pointing to the alias of "handle"

◆ nv_registry_add_predefined()

void nv_registry_add_predefined ( NVRegistry *  self,
NVHandle  handle,
const gchar *  name 
)

◆ nv_registry_alloc_handle()

NVHandle nv_registry_alloc_handle ( NVRegistry *  self,
const gchar *  name 
)

◆ nv_registry_assert_next_handle()

void nv_registry_assert_next_handle ( NVRegistry *  self,
NVHandle  handle 
)

◆ nv_registry_foreach()

void nv_registry_foreach ( NVRegistry *  self,
GHFunc  callback,
gpointer  user_data 
)

◆ nv_registry_free()

void nv_registry_free ( NVRegistry *  self)

◆ nv_registry_get_handle()

NVHandle nv_registry_get_handle ( NVRegistry *  self,
const gchar *  name 
)

◆ nv_registry_new()

NVRegistry* nv_registry_new ( const gchar **  static_names,
guint32  nvhandle_max_value 
)

◆ nv_registry_set_handle_flags()

void nv_registry_set_handle_flags ( NVRegistry *  self,
NVHandle  handle,
guint16  flags 
)

◆ nv_table_add_value()

gboolean nv_table_add_value ( NVTable *  self,
NVHandle  handle,
const gchar *  name,
gsize  name_len,
const gchar *  value,
gsize  value_len,
NVType  type,
gboolean *  new_entry 
)

◆ nv_table_add_value_indirect()

gboolean nv_table_add_value_indirect ( NVTable *  self,
NVHandle  handle,
const gchar *  name,
gsize  name_len,
NVReferencedSlice referenced_slice,
NVType  type,
gboolean *  new_entry 
)

◆ nv_table_clone()

NVTable* nv_table_clone ( NVTable *  self,
gint  additional_space 
)

nv_table_clone: @self: payload to clone @additional_space: specifies how much additional space is needed in the newly allocated clone

◆ nv_table_compact()

NVTable* nv_table_compact ( NVTable *  self)

◆ nv_table_foreach()

gboolean nv_table_foreach ( NVTable *  self,
NVRegistry *  registry,
NVTableForeachFunc  func,
gpointer  user_data 
)

◆ nv_table_foreach_entry()

gboolean nv_table_foreach_entry ( NVTable *  self,
NVTableForeachEntryFunc  func,
gpointer  user_data 
)

◆ nv_table_get_entry_slow()

NVEntry* nv_table_get_entry_slow ( NVTable *  self,
NVHandle  handle,
NVIndexEntry **  index_entry,
NVIndexEntry **  index_slot 
)

◆ nv_table_init_borrowed()

NVTable* nv_table_init_borrowed ( gpointer  space,
gsize  space_len,
gint  num_static_entries 
)

◆ nv_table_new()

NVTable* nv_table_new ( gint  num_static_values,
gint  index_size_hint,
gint  init_length 
)

◆ nv_table_realloc()

gboolean nv_table_realloc ( NVTable *  self,
NVTable **  new_nv_table 
)

◆ nv_table_ref()

NVTable* nv_table_ref ( NVTable *  self)

◆ nv_table_resolve_indirect()

const gchar* nv_table_resolve_indirect ( NVTable *  self,
NVEntry *  entry,
gssize *  len 
)

◆ nv_table_unref()

void nv_table_unref ( NVTable *  self)

◆ nv_table_unset_value()

gboolean nv_table_unset_value ( NVTable *  self,
NVHandle  handle 
)

Variable Documentation

◆ null_string

const gchar* null_string
extern