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§

source

fn name() -> &'static CStr

Provided Methods§

source

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.

source

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.

source

fn wal_extract_ctx(wal: &mut libsql_wal) -> &mut Self::Context

source

fn on_savepoint_undo( wal: &mut libsql_wal, wal_data: *mut u32, orig: XWalSavePointUndoFn ) -> i32

source

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

Implementors§