WT_DATA_SOURCE

Type Alias WT_DATA_SOURCE 

Source
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