duckdb-ffi-1.5.0.0: src/Database/DuckDB/FFI/FileSystem.hs
{- |
Module : Database.DuckDB.FFI.FileSystem
Description : Raw bindings for DuckDB's VFS and file-handle APIs.
-}
module Database.DuckDB.FFI.FileSystem (
c_duckdb_client_context_get_file_system,
c_duckdb_destroy_file_system,
c_duckdb_file_system_error_data,
c_duckdb_file_system_open,
c_duckdb_create_file_open_options,
c_duckdb_file_open_options_set_flag,
c_duckdb_destroy_file_open_options,
c_duckdb_destroy_file_handle,
c_duckdb_file_handle_error_data,
c_duckdb_file_handle_read,
c_duckdb_file_handle_write,
c_duckdb_file_handle_tell,
c_duckdb_file_handle_size,
c_duckdb_file_handle_seek,
c_duckdb_file_handle_sync,
c_duckdb_file_handle_close,
) where
import Data.Int (Int64)
import Database.DuckDB.FFI.Types
import Foreign.C.String (CString)
import Foreign.C.Types (CBool (..), CInt (..))
import Foreign.Ptr (Ptr)
-- | Fetch the file-system handle associated with a client context.
foreign import ccall safe "duckdb_client_context_get_file_system"
c_duckdb_client_context_get_file_system :: DuckDBClientContext -> IO DuckDBFileSystem
-- | Destroy a file-system handle obtained from DuckDB.
foreign import ccall safe "duckdb_destroy_file_system"
c_duckdb_destroy_file_system :: Ptr DuckDBFileSystem -> IO ()
-- | Fetch the last structured file-system error.
foreign import ccall safe "duckdb_file_system_error_data"
c_duckdb_file_system_error_data :: DuckDBFileSystem -> IO DuckDBErrorData
-- | Open a file via DuckDB's file-system abstraction.
foreign import ccall safe "duckdb_file_system_open"
c_duckdb_file_system_open :: DuckDBFileSystem -> CString -> DuckDBFileOpenOptions -> Ptr DuckDBFileHandle -> IO DuckDBState
-- | Allocate a mutable file-open options object.
foreign import ccall safe "duckdb_create_file_open_options"
c_duckdb_create_file_open_options :: IO DuckDBFileOpenOptions
-- | Enable or disable a file-open flag on an options object.
foreign import ccall safe "duckdb_file_open_options_set_flag"
c_duckdb_file_open_options_set_flag :: DuckDBFileOpenOptions -> DuckDBFileFlag -> CBool -> IO DuckDBState
-- | Destroy a file-open options object.
foreign import ccall safe "duckdb_destroy_file_open_options"
c_duckdb_destroy_file_open_options :: Ptr DuckDBFileOpenOptions -> IO ()
-- | Destroy a file handle obtained from DuckDB.
foreign import ccall safe "duckdb_destroy_file_handle"
c_duckdb_destroy_file_handle :: Ptr DuckDBFileHandle -> IO ()
-- | Fetch the last structured file-handle error.
foreign import ccall safe "duckdb_file_handle_error_data"
c_duckdb_file_handle_error_data :: DuckDBFileHandle -> IO DuckDBErrorData
-- | Read bytes from a file handle into caller-provided memory.
foreign import ccall safe "duckdb_file_handle_read"
c_duckdb_file_handle_read :: DuckDBFileHandle -> Ptr () -> Int64 -> IO Int64
-- | Write bytes to a file handle from caller-provided memory.
foreign import ccall safe "duckdb_file_handle_write"
c_duckdb_file_handle_write :: DuckDBFileHandle -> Ptr () -> Int64 -> IO Int64
-- | Query the current file position.
foreign import ccall safe "duckdb_file_handle_tell"
c_duckdb_file_handle_tell :: DuckDBFileHandle -> IO Int64
-- | Query the size of a file handle.
foreign import ccall safe "duckdb_file_handle_size"
c_duckdb_file_handle_size :: DuckDBFileHandle -> IO Int64
-- | Seek a file handle to an absolute byte offset.
foreign import ccall safe "duckdb_file_handle_seek"
c_duckdb_file_handle_seek :: DuckDBFileHandle -> Int64 -> IO DuckDBState
-- | Flush a file handle's buffered writes to stable storage.
foreign import ccall safe "duckdb_file_handle_sync"
c_duckdb_file_handle_sync :: DuckDBFileHandle -> IO DuckDBState
-- | Close a file handle without destroying the surrounding handle object.
foreign import ccall safe "duckdb_file_handle_close"
c_duckdb_file_handle_close :: DuckDBFileHandle -> IO DuckDBState