syslog_ng_sys/logmsg.rs
1// Copyright (c) 2016 Tibor Benke <ihrwein@gmail.com>
2//
3// Licensed under the Apache License, Version 2.0
4// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT
5// license <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
6// option. All files in the project carrying such notice may not be copied,
7// modified, or distributed except according to those terms.
8
9use ::types::*;
10
11pub enum LogMessage {}
12pub type NVHandle = u32;
13pub type LogTagId = u16;
14pub type NVTableForeachFunc = extern "C" fn(// handle:
15 NVHandle, // name:
16 *const c_char, // value:
17 *const c_char, // value_len:
18 ssize_t, // user_data:
19 *mut c_void)
20 -> bool;
21pub type LogMessageTagsForeachFunc = extern "C" fn(// msg:
22 *const LogMessage, // tag_id:
23 LogTagId, // name:
24 *const c_char, // user_data:
25 *mut c_void)
26 -> bool;
27
28#[link(name = "syslog-ng")]
29extern "C" {
30 pub fn log_msg_unref(m: *mut LogMessage) -> ();
31 pub fn log_msg_ref(m: *mut LogMessage) -> *mut LogMessage;
32 pub fn log_msg_get_value_handle(value_name: *const c_char) -> NVHandle;
33 pub fn __log_msg_get_value(m: *const LogMessage,
34 handle: NVHandle,
35 value_len: *mut ssize_t)
36 -> *const c_char;
37 pub fn __log_msg_get_value_by_name(m: *const LogMessage,
38 name: *const c_char,
39 value_len: *mut ssize_t)
40 -> *const c_char;
41 pub fn __log_msg_set_value_by_name(msg: *mut LogMessage,
42 name: *const c_char,
43 value: *const c_char,
44 value_length: ssize_t);
45 pub fn log_msg_set_tag_by_name(msg: *mut LogMessage, name: *const c_char);
46 pub fn log_msg_values_foreach(msg: *const LogMessage,
47 func: NVTableForeachFunc,
48 user_data: *mut c_void);
49 pub fn log_msg_new_empty() -> *mut LogMessage;
50 pub fn log_msg_tags_foreach(msg: *const LogMessage,
51 callback: LogMessageTagsForeachFunc,
52 user_data: *mut c_void);
53 pub fn log_msg_registry_init();
54 pub fn log_msg_registry_deinit();
55 pub fn log_msg_set_value(msg: *mut LogMessage,
56 handle: NVHandle,
57 value: *const c_char,
58 value_length: ssize_t);
59 pub fn log_tags_global_init();
60}