pub type WT_DATA_SOURCE = __wt_data_source;Expand description
Applications can extend WiredTiger by providing new implementations of the WT_DATA_SOURCE class. Each data source supports a different URI scheme for data sources to WT_SESSION::create, WT_SESSION::open_cursor and related methods. See @ref custom_data_sources for more information.
Thread safety: WiredTiger may invoke methods on the WT_DATA_SOURCE interface from multiple threads concurrently. It is the responsibility of the implementation to protect any shared data.
Applications register their implementation with WiredTiger by calling WT_CONNECTION::add_data_source.
@snippet ex_data_source.c WT_DATA_SOURCE register
Aliased Type§
#[repr(C)]pub struct WT_DATA_SOURCE {Show 14 fields
pub alter: Option<unsafe extern "C" fn(*mut __wt_data_source, *mut __wt_session, *const i8, *mut __wt_config_arg) -> i32>,
pub create: Option<unsafe extern "C" fn(*mut __wt_data_source, *mut __wt_session, *const i8, *mut __wt_config_arg) -> i32>,
pub compact: Option<unsafe extern "C" fn(*mut __wt_data_source, *mut __wt_session, *const i8, *mut __wt_config_arg) -> i32>,
pub drop: Option<unsafe extern "C" fn(*mut __wt_data_source, *mut __wt_session, *const i8, *mut __wt_config_arg) -> i32>,
pub open_cursor: Option<unsafe extern "C" fn(*mut __wt_data_source, *mut __wt_session, *const i8, *mut __wt_config_arg, *mut *mut __wt_cursor) -> i32>,
pub rename: Option<unsafe extern "C" fn(*mut __wt_data_source, *mut __wt_session, *const i8, *const i8, *mut __wt_config_arg) -> i32>,
pub salvage: Option<unsafe extern "C" fn(*mut __wt_data_source, *mut __wt_session, *const i8, *mut __wt_config_arg) -> i32>,
pub size: Option<unsafe extern "C" fn(*mut __wt_data_source, *mut __wt_session, *const i8, *mut i64) -> i32>,
pub truncate: Option<unsafe extern "C" fn(*mut __wt_data_source, *mut __wt_session, *const i8, *mut __wt_config_arg) -> i32>,
pub range_truncate: Option<unsafe extern "C" fn(*mut __wt_data_source, *mut __wt_session, *mut __wt_cursor, *mut __wt_cursor) -> i32>,
pub verify: Option<unsafe extern "C" fn(*mut __wt_data_source, *mut __wt_session, *const i8, *mut __wt_config_arg) -> i32>,
pub checkpoint: Option<unsafe extern "C" fn(*mut __wt_data_source, *mut __wt_session, *mut __wt_config_arg) -> i32>,
pub terminate: Option<unsafe extern "C" fn(*mut __wt_data_source, *mut __wt_session) -> i32>,
pub lsm_pre_merge: Option<unsafe extern "C" fn(*mut __wt_data_source, *mut __wt_cursor, *mut __wt_cursor) -> i32>,
}Fields§
§alter: Option<unsafe extern "C" fn(*mut __wt_data_source, *mut __wt_session, *const i8, *mut __wt_config_arg) -> i32>Callback to alter an object.
@snippet ex_data_source.c WT_DATA_SOURCE alter
create: Option<unsafe extern "C" fn(*mut __wt_data_source, *mut __wt_session, *const i8, *mut __wt_config_arg) -> i32>Callback to create a new object.
@snippet ex_data_source.c WT_DATA_SOURCE create
compact: Option<unsafe extern "C" fn(*mut __wt_data_source, *mut __wt_session, *const i8, *mut __wt_config_arg) -> i32>Callback to compact an object.
@snippet ex_data_source.c WT_DATA_SOURCE compact
drop: Option<unsafe extern "C" fn(*mut __wt_data_source, *mut __wt_session, *const i8, *mut __wt_config_arg) -> i32>Callback to drop an object.
@snippet ex_data_source.c WT_DATA_SOURCE drop
open_cursor: Option<unsafe extern "C" fn(*mut __wt_data_source, *mut __wt_session, *const i8, *mut __wt_config_arg, *mut *mut __wt_cursor) -> i32>Callback to initialize a cursor.
@snippet ex_data_source.c WT_DATA_SOURCE open_cursor
rename: Option<unsafe extern "C" fn(*mut __wt_data_source, *mut __wt_session, *const i8, *const i8, *mut __wt_config_arg) -> i32>Callback to rename an object.
@snippet ex_data_source.c WT_DATA_SOURCE rename
salvage: Option<unsafe extern "C" fn(*mut __wt_data_source, *mut __wt_session, *const i8, *mut __wt_config_arg) -> i32>Callback to salvage an object.
@snippet ex_data_source.c WT_DATA_SOURCE salvage
size: Option<unsafe extern "C" fn(*mut __wt_data_source, *mut __wt_session, *const i8, *mut i64) -> i32>Callback to get the size of an object.
@snippet ex_data_source.c WT_DATA_SOURCE size
truncate: Option<unsafe extern "C" fn(*mut __wt_data_source, *mut __wt_session, *const i8, *mut __wt_config_arg) -> i32>Callback to truncate an object.
@snippet ex_data_source.c WT_DATA_SOURCE truncate
range_truncate: Option<unsafe extern "C" fn(*mut __wt_data_source, *mut __wt_session, *mut __wt_cursor, *mut __wt_cursor) -> i32>Callback to truncate a range of an object.
@snippet ex_data_source.c WT_DATA_SOURCE range truncate
verify: Option<unsafe extern "C" fn(*mut __wt_data_source, *mut __wt_session, *const i8, *mut __wt_config_arg) -> i32>Callback to verify an object.
@snippet ex_data_source.c WT_DATA_SOURCE verify
checkpoint: Option<unsafe extern "C" fn(*mut __wt_data_source, *mut __wt_session, *mut __wt_config_arg) -> i32>Callback to checkpoint the database.
@snippet ex_data_source.c WT_DATA_SOURCE checkpoint
terminate: Option<unsafe extern "C" fn(*mut __wt_data_source, *mut __wt_session) -> i32>If non-NULL, a callback performed when the database is closed.
The WT_DATA_SOURCE::terminate callback is intended to allow cleanup, the handle will not be subsequently accessed by WiredTiger.
@snippet ex_data_source.c WT_DATA_SOURCE terminate
lsm_pre_merge: Option<unsafe extern "C" fn(*mut __wt_data_source, *mut __wt_cursor, *mut __wt_cursor) -> i32>If non-NULL, a callback performed before an LSM merge.
@param[in] source a cursor configured with the data being merged @param[in] dest a cursor on the new object being filled by the merge
@snippet ex_data_source.c WT_DATA_SOURCE lsm_pre_merge