Trait libsql_sys::wal_hook::WalHook
source · pub unsafe trait WalHook {
type Context;
// Required method
fn name() -> &'static CStr;
// Provided methods
fn on_frames(
wal: &mut libsql_wal,
page_size: c_int,
page_headers: *mut PgHdr,
size_after: u32,
is_commit: c_int,
sync_flags: c_int,
orig: XWalFrameFn
) -> c_int { ... }
fn on_undo(
wal: &mut libsql_wal,
func: Option<unsafe extern "C" fn(_: *mut c_void, _: u32) -> i32>,
undo_ctx: *mut c_void,
orig: XWalUndoFn
) -> i32 { ... }
fn wal_extract_ctx(wal: &mut libsql_wal) -> &mut Self::Context { ... }
fn on_savepoint_undo(
wal: &mut libsql_wal,
wal_data: *mut u32,
orig: XWalSavePointUndoFn
) -> i32 { ... }
fn on_checkpoint(
wal: &mut libsql_wal,
db: *mut sqlite3,
emode: i32,
busy_handler: Option<unsafe extern "C" fn(_: *mut c_void) -> i32>,
busy_arg: *mut c_void,
sync_flags: i32,
n_buf: i32,
z_buf: *mut u8,
frames_in_wal: *mut i32,
backfilled_frames: *mut i32,
orig: XWalCheckpointFn
) -> i32 { ... }
}
Expand description
The WalHook
trait allows to intercept WAL method call.
All the methods in this trait have the following format: - arguments to the WAL method - function pointer to the wrapped WAL method
The default implementations for this trait methods is to transparently call the wrapped methods with the passed arguments
Safety
The implementer is responsible for calling the orig method with valid arguments.
Required Associated Types§
Required Methods§
Provided Methods§
sourcefn on_frames(
wal: &mut libsql_wal,
page_size: c_int,
page_headers: *mut PgHdr,
size_after: u32,
is_commit: c_int,
sync_flags: c_int,
orig: XWalFrameFn
) -> c_int
fn on_frames( wal: &mut libsql_wal, page_size: c_int, page_headers: *mut PgHdr, size_after: u32, is_commit: c_int, sync_flags: c_int, orig: XWalFrameFn ) -> c_int
Intercept xFrame
call. orig
is the function pointer to the underlying wal method.
The default implementation of this trait simply calls orig with the other passed arguments.
sourcefn on_undo(
wal: &mut libsql_wal,
func: Option<unsafe extern "C" fn(_: *mut c_void, _: u32) -> i32>,
undo_ctx: *mut c_void,
orig: XWalUndoFn
) -> i32
fn on_undo( wal: &mut libsql_wal, func: Option<unsafe extern "C" fn(_: *mut c_void, _: u32) -> i32>, undo_ctx: *mut c_void, orig: XWalUndoFn ) -> i32
Intercept xUndo
call. orig
is the function pointer to the underlying wal method.
The default implementation of this trait simply calls orig with the other passed arguments.