1use libc::{c_char, c_void};
2
3use super::types::authenticator::Authenticator;
4use super::types::auth_type::{AuthType, AuthFlags};
5use super::types::callback_type::CallbackType;
6use super::types::cmd;
7use super::types::create_st::CreateSt;
8use super::types::error_type::ErrorType;
9use super::types::instance::Instance;
10use super::types::response;
11
12pub type ResponseCallback = unsafe extern "C" fn(instance: Instance, cbtype: CallbackType, resp: *const response::Base);
13
14#[link(name = "couchbase")]
15extern {
16 pub fn lcbauth_add_pass(authenticator: Authenticator, user: *const c_char, pass: *const c_char, flags: AuthFlags) -> ErrorType;
17 pub fn lcbauth_new() -> Authenticator;
18 pub fn lcb_set_auth(instance: Instance, authenticator: Authenticator);
19 pub fn lcbauth_set_mode(authenticator: Authenticator, auth_type: AuthType) -> ErrorType;
20 pub fn lcbauth_unref(authenticator: Authenticator);
21
22 pub fn lcb_connect(instance: Instance) -> ErrorType;
23 pub fn lcb_cntl_string(instance: Instance, key: *const c_char, value: *const c_char) -> ErrorType;
24 pub fn lcb_create(instance: *mut Instance, options: *const CreateSt) -> ErrorType;
25 pub fn lcb_destroy(instance: Instance);
26 pub fn lcb_get3(instance: Instance, cookie: *const c_void, cmd: *const cmd::Get) -> ErrorType;
27 pub fn lcb_get_bootstrap_status(instance: Instance) -> ErrorType;
28 pub fn lcb_install_callback3(instance: Instance, cbtype: CallbackType, cb: ResponseCallback) -> ResponseCallback;
29 pub fn lcb_remove3(instance: Instance, cookie: *const c_void, cmd: *const cmd::Remove) -> ErrorType;
30 pub fn lcb_store3(instance: Instance, cookie: *const c_void, cmd: *const cmd::Store) -> ErrorType;
31 pub fn lcb_strerror(instance: Instance, error: ErrorType) -> *const c_char;
32 pub fn lcb_view_query(instance: Instance, cookie: *const c_void, cmd: *const cmd::ViewQuery) -> ErrorType;
33 pub fn lcb_wait(instance: Instance) -> ErrorType;
34}