use std::os::raw::{c_char, c_void};
use errors::prelude::*;
use ffi::ErrorCode;
extern crate log;
extern crate time;
use utils::ctypes::*;
use utils::logger::{EnabledCB, FlushCB, HLCryptoDefaultLogger, HLCryptoLogger, LogCB};
#[no_mangle]
pub extern "C" fn ursa_set_logger(
context: *const c_void,
enabled: Option<EnabledCB>,
log: Option<LogCB>,
flush: Option<FlushCB>,
) -> ErrorCode {
trace!(
"ursa_set_logger >>> context: {:?}, enabled: {:?}, log: {:?}, flush: {:?}",
context,
log,
enabled,
flush
);
check_useful_c_callback!(log, ErrorCode::CommonInvalidParam3);
let res = match HLCryptoLogger::init(context, enabled, log, flush) {
Ok(()) => ErrorCode::Success,
Err(err) => err.into(),
};
trace!("ursa_set_logger: <<< res: {:?}", res);
res
}
#[no_mangle]
pub extern "C" fn ursa_set_default_logger(pattern: *const c_char) -> ErrorCode {
trace!("ursa_set_default_logger >>> pattern: {:?}", pattern);
check_useful_opt_c_str!(pattern, ErrorCode::CommonInvalidParam1);
trace!(
"ursa_set_default_logger: entities >>> pattern: {:?}",
pattern
);
let res = match HLCryptoDefaultLogger::init(pattern) {
Ok(()) => ErrorCode::Success,
Err(err) => err.into(),
};
trace!("ursa_set_default_logger: <<< res: {:?}", res);
res
}