duckdb-ffi-1.5.0.0: src/Database/DuckDB/FFI/Logging.hs
{- |
Module : Database.DuckDB.FFI.Logging
Description : Raw bindings for DuckDB's custom log-storage API.
-}
module Database.DuckDB.FFI.Logging (
c_duckdb_create_log_storage,
c_duckdb_destroy_log_storage,
c_duckdb_log_storage_set_write_log_entry,
c_duckdb_log_storage_set_extra_data,
c_duckdb_log_storage_set_name,
c_duckdb_register_log_storage,
) where
import Database.DuckDB.FFI.Types
import Foreign.C.String (CString)
import Foreign.C.Types (CInt (..))
import Foreign.Ptr (Ptr)
-- | Allocate a new log storage object.
foreign import ccall safe "duckdb_create_log_storage"
c_duckdb_create_log_storage :: IO DuckDBLogStorage
-- | Destroy a log storage object.
foreign import ccall safe "duckdb_destroy_log_storage"
c_duckdb_destroy_log_storage :: Ptr DuckDBLogStorage -> IO ()
-- | Set the callback used when DuckDB writes a log entry.
foreign import ccall safe "duckdb_log_storage_set_write_log_entry"
c_duckdb_log_storage_set_write_log_entry :: DuckDBLogStorage -> DuckDBLoggerWriteLogEntryFun -> IO ()
-- | Attach user-managed extra data to a log storage object.
foreign import ccall safe "duckdb_log_storage_set_extra_data"
c_duckdb_log_storage_set_extra_data :: DuckDBLogStorage -> Ptr () -> DuckDBDeleteCallback -> IO ()
-- | Set the registration name of a log storage object.
foreign import ccall safe "duckdb_log_storage_set_name"
c_duckdb_log_storage_set_name :: DuckDBLogStorage -> CString -> IO ()
-- | Register a custom log storage on a database handle.
foreign import ccall safe "duckdb_register_log_storage"
c_duckdb_register_log_storage :: DuckDBDatabase -> DuckDBLogStorage -> IO DuckDBState