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}