extern crate libc;
use self::libc::{c_void, c_char};
use errors::ErrorCode;
extern crate time;
extern crate log;
use errors::ToErrorCode;
use cl::logger::{EnabledCB, LogCB, FlushCB, IndyCryptoLogger, IndyCryptoDefaultLogger};
use ffi::ctypes::CTypesUtils;
#[no_mangle]
pub extern fn indy_crypto_set_logger(context: *const c_void,
enabled: Option<EnabledCB>,
log: Option<LogCB>,
flush: Option<FlushCB>) -> ErrorCode {
trace!("indy_crypto_set_logger >>> context: {:?}, enabled: {:?}, log: {:?}, flush: {:?}", context, log, enabled, flush);
check_useful_c_callback!(log, ErrorCode::CommonInvalidParam3);
let res = match IndyCryptoLogger::init(context, enabled, log, flush) {
Ok(()) => ErrorCode::Success,
Err(err) => err.to_error_code()
};
trace!("indy_crypto_set_logger: <<< res: {:?}", res);
res
}
#[no_mangle]
pub extern fn indy_crypto_set_default_logger(pattern: *const c_char) -> ErrorCode {
trace!("indy_crypto_set_default_logger >>> pattern: {:?}", pattern);
check_useful_opt_c_str!(pattern, ErrorCode::CommonInvalidParam1);
trace!("indy_crypto_set_default_logger: entities >>> pattern: {:?}", pattern);
let res = match IndyCryptoDefaultLogger::init(pattern) {
Ok(()) => ErrorCode::Success,
Err(err) => err.to_error_code()
};
trace!("indy_crypto_set_default_logger: <<< res: {:?}", res);
res
}