{-# LANGUAGE CPP #-}
{-# LANGUAGE EmptyDataDecls #-}
{-# LANGUAGE ForeignFunctionInterface #-}
module Database.RocksDB.C
( RocksDB
, Options
, ReadOpts
, WriteOpts
, ColumnFamily
, SliceTransform
, Snapshot
, Iterator
, WriteBatch
, FilterPolicy
, ErrPtr
, DBName
, CFName
, Key
, Val
, c_rocksdb_open
, c_rocksdb_open_column_families
, c_rocksdb_close
, c_rocksdb_create_column_family
, c_rocksdb_drop_column_family
, c_rocksdb_column_family_handle_destroy
, c_rocksdb_put
, c_rocksdb_put_cf
, c_rocksdb_delete
, c_rocksdb_delete_cf
, c_rocksdb_write
, c_rocksdb_get
, c_rocksdb_get_cf
, c_rocksdb_multi_get
, c_rocksdb_multi_get_cf
, c_rocksdb_create_snapshot
, c_rocksdb_release_snapshot
, c_rocksdb_property_value
, c_rocksdb_approximate_sizes
, c_rocksdb_destroy_db
, c_rocksdb_repair_db
, c_rocksdb_create_iterator
, c_rocksdb_create_iterator_cf
, c_rocksdb_iter_destroy
, c_rocksdb_iter_valid
, c_rocksdb_iter_seek_to_first
, c_rocksdb_iter_seek_to_last
, c_rocksdb_iter_seek
, c_rocksdb_iter_next
, c_rocksdb_iter_prev
, c_rocksdb_iter_key
, c_rocksdb_iter_value
, c_rocksdb_iter_get_error
, c_rocksdb_writebatch_create
, c_rocksdb_writebatch_destroy
, c_rocksdb_writebatch_clear
, c_rocksdb_writebatch_put
, c_rocksdb_writebatch_put_cf
, c_rocksdb_writebatch_delete
, c_rocksdb_writebatch_delete_cf
, c_rocksdb_options_create
, c_rocksdb_options_destroy
, c_rocksdb_options_set_create_if_missing
, c_rocksdb_options_set_error_if_exists
, c_rocksdb_options_set_paranoid_checks
, c_rocksdb_options_set_max_open_files
, c_rocksdb_options_set_prefix_extractor
, c_rocksdb_options_set_block_based_table_factory
, c_rocksdb_block_based_options_create
, c_rocksdb_block_based_options_set_filter_policy
, c_rocksdb_block_based_options_destroy
, c_rocksdb_slicetransform_create_fixed_prefix
, c_rocksdb_slicetransform_destroy
, c_rocksdb_filterpolicy_destroy
, c_rocksdb_filterpolicy_create_bloom_full
, c_rocksdb_readoptions_create
, c_rocksdb_readoptions_destroy
, c_rocksdb_readoptions_set_snapshot
, c_rocksdb_writeoptions_create
, c_rocksdb_writeoptions_destroy
, c_rocksdb_free
) where
import Foreign
import Foreign.C.String
import Foreign.C.Types
data LRocksDB
data LColumnFamily
data LIterator
data LOptions
data LBlockBasedOptions
data LReadOpts
data LSnapshot
data LWriteBatch
data LWriteOpts
data LFilterPolicy
data LSliceTransform
type RocksDB = Ptr LRocksDB
type ColumnFamily = Ptr LColumnFamily
type Options = Ptr LOptions
type WriteBatch = Ptr LWriteBatch
type SliceTransform = Ptr LSliceTransform
type ReadOpts = Ptr LReadOpts
type WriteOpts = Ptr LWriteOpts
type Snapshot = Ptr LSnapshot
type Iterator = Ptr LIterator
type FilterPolicy = Ptr LFilterPolicy
type BlockBasedOptions = Ptr LBlockBasedOptions
type ErrPtr = Ptr CString
type DBName = CString
type CFName = CString
type Key = CString
type Val = CString
foreign import ccall safe "rocksdb/c.h rocksdb_open"
c_rocksdb_open :: Options -> DBName -> ErrPtr -> IO RocksDB
foreign import ccall safe "rocksdb/c.h rocksdb_open_column_families"
c_rocksdb_open_column_families :: Options
-> DBName
-> CInt
-> Ptr CFName
-> Ptr Options
-> Ptr ColumnFamily
-> ErrPtr
-> IO RocksDB
foreign import ccall safe "rocksdb/c.h rocksdb_close"
c_rocksdb_close :: RocksDB -> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_create_column_family"
c_rocksdb_create_column_family :: RocksDB
-> Options
-> CFName
-> ErrPtr
-> IO ColumnFamily
foreign import ccall safe "rocksdb/c.h rocksdb_drop_column_family"
c_rocksdb_drop_column_family :: RocksDB
-> ColumnFamily
-> ErrPtr
-> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_column_family_handle_destroy"
c_rocksdb_column_family_handle_destroy :: ColumnFamily -> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_put"
c_rocksdb_put :: RocksDB
-> WriteOpts
-> Key -> CSize
-> Val -> CSize
-> ErrPtr
-> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_put_cf"
c_rocksdb_put_cf :: RocksDB
-> WriteOpts
-> ColumnFamily
-> Key -> CSize
-> Val -> CSize
-> ErrPtr
-> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_delete"
c_rocksdb_delete :: RocksDB
-> WriteOpts
-> Key -> CSize
-> ErrPtr
-> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_delete_cf"
c_rocksdb_delete_cf :: RocksDB
-> WriteOpts
-> ColumnFamily
-> Key -> CSize
-> ErrPtr
-> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_write"
c_rocksdb_write :: RocksDB
-> WriteOpts
-> WriteBatch
-> ErrPtr
-> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_get"
c_rocksdb_get :: RocksDB
-> ReadOpts
-> Key -> CSize
-> Ptr CSize
-> ErrPtr
-> IO CString
foreign import ccall safe "rocksdb/c.h rocksdb_get_cf"
c_rocksdb_get_cf :: RocksDB
-> ReadOpts
-> ColumnFamily
-> Key -> CSize
-> Ptr CSize
-> ErrPtr
-> IO CString
foreign import ccall safe "rocksdb/c.h rocksdb_multi_get"
c_rocksdb_multi_get :: RocksDB
-> ReadOpts
-> CSize
-> Ptr CString
-> Ptr CSize
-> Ptr CString
-> Ptr CSize
-> ErrPtr
-> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_multi_get_cf"
c_rocksdb_multi_get_cf :: RocksDB
-> ReadOpts
-> Ptr ColumnFamily
-> CSize
-> Ptr CString
-> Ptr CSize
-> Ptr CString
-> Ptr CSize
-> ErrPtr
-> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_create_snapshot"
c_rocksdb_create_snapshot :: RocksDB -> IO Snapshot
foreign import ccall safe "rocksdb/c.h rocksdb_release_snapshot"
c_rocksdb_release_snapshot :: RocksDB -> Snapshot -> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_property_value"
c_rocksdb_property_value :: RocksDB -> CString -> IO CString
foreign import ccall safe "rocksdb/c.h rocksdb_approximate_sizes"
c_rocksdb_approximate_sizes :: RocksDB
-> CInt
-> Ptr CString -> Ptr CSize
-> Ptr CString -> Ptr CSize
-> Ptr Word64
-> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_destroy_db"
c_rocksdb_destroy_db :: Options -> DBName -> ErrPtr -> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_repair_db"
c_rocksdb_repair_db :: Options -> DBName -> ErrPtr -> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_create_iterator"
c_rocksdb_create_iterator :: RocksDB
-> ReadOpts
-> IO Iterator
foreign import ccall safe "rocksdb/c.h rocksdb_create_iterator_cf"
c_rocksdb_create_iterator_cf :: RocksDB
-> ReadOpts
-> ColumnFamily
-> IO Iterator
foreign import ccall safe "rocksdb/c.h rocksdb_iter_destroy"
c_rocksdb_iter_destroy :: Iterator -> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_iter_valid"
c_rocksdb_iter_valid :: Iterator -> IO CUChar
foreign import ccall safe "rocksdb/c.h rocksdb_iter_seek_to_first"
c_rocksdb_iter_seek_to_first :: Iterator -> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_iter_seek_to_last"
c_rocksdb_iter_seek_to_last :: Iterator -> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_iter_seek"
c_rocksdb_iter_seek :: Iterator -> Key -> CSize -> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_iter_next"
c_rocksdb_iter_next :: Iterator -> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_iter_prev"
c_rocksdb_iter_prev :: Iterator -> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_iter_key"
c_rocksdb_iter_key :: Iterator -> Ptr CSize -> IO Key
foreign import ccall safe "rocksdb/c.h rocksdb_iter_value"
c_rocksdb_iter_value :: Iterator -> Ptr CSize -> IO Val
foreign import ccall safe "rocksdb/c.h rocksdb_iter_get_error"
c_rocksdb_iter_get_error :: Iterator -> ErrPtr -> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_writebatch_create"
c_rocksdb_writebatch_create :: IO WriteBatch
foreign import ccall safe "rocksdb/c.h rocksdb_writebatch_destroy"
c_rocksdb_writebatch_destroy :: WriteBatch -> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_writebatch_clear"
c_rocksdb_writebatch_clear :: WriteBatch -> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_writebatch_put"
c_rocksdb_writebatch_put :: WriteBatch
-> Key -> CSize
-> Val -> CSize
-> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_writebatch_put_cf"
c_rocksdb_writebatch_put_cf :: WriteBatch
-> ColumnFamily
-> Key -> CSize
-> Val -> CSize
-> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_writebatch_delete"
c_rocksdb_writebatch_delete :: WriteBatch
-> Key -> CSize -> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_writebatch_delete_cf"
c_rocksdb_writebatch_delete_cf :: WriteBatch
-> ColumnFamily
-> Key
-> CSize
-> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_options_create"
c_rocksdb_options_create :: IO Options
foreign import ccall "rocksdb/c.h rocksdb_options_destroy"
c_rocksdb_options_destroy :: Options -> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_options_set_create_if_missing"
c_rocksdb_options_set_create_if_missing :: Options -> CBool -> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_options_set_error_if_exists"
c_rocksdb_options_set_error_if_exists :: Options -> CBool -> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_options_set_paranoid_checks"
c_rocksdb_options_set_paranoid_checks :: Options -> CBool -> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_options_set_max_open_files"
c_rocksdb_options_set_max_open_files :: Options -> CInt -> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_options_set_prefix_extractor"
:: Options
-> SliceTransform
-> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_block_based_options_create"
c_rocksdb_block_based_options_create :: IO BlockBasedOptions
foreign import ccall safe "rocksdb/c.h rocksdb_block_based_options_destroy"
c_rocksdb_block_based_options_destroy :: BlockBasedOptions
-> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_block_based_options_set_filter_policy"
c_rocksdb_block_based_options_set_filter_policy :: BlockBasedOptions
-> FilterPolicy
-> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_options_set_block_based_table_factory"
c_rocksdb_options_set_block_based_table_factory :: Options
-> BlockBasedOptions
-> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_slicetransform_create_fixed_prefix"
c_rocksdb_slicetransform_create_fixed_prefix :: CSize -> IO SliceTransform
foreign import ccall safe "rocksdb/c.h rocksdb_slicetransform_destroy"
c_rocksdb_slicetransform_destroy :: SliceTransform -> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_filterpolicy_destroy"
c_rocksdb_filterpolicy_destroy :: FilterPolicy -> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_filterpolicy_create_bloom_full"
c_rocksdb_filterpolicy_create_bloom_full :: CInt -> IO FilterPolicy
foreign import ccall safe "rocksdb/c.h rocksdb_readoptions_create"
c_rocksdb_readoptions_create :: IO ReadOpts
foreign import ccall safe "rocksdb/c.h rocksdb_readoptions_destroy"
c_rocksdb_readoptions_destroy :: ReadOpts -> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_readoptions_set_snapshot"
c_rocksdb_readoptions_set_snapshot :: ReadOpts -> Snapshot -> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_writeoptions_create"
c_rocksdb_writeoptions_create :: IO WriteOpts
foreign import ccall safe "rocksdb/c.h rocksdb_writeoptions_destroy"
c_rocksdb_writeoptions_destroy :: WriteOpts -> IO ()
foreign import ccall safe "rocksdb/c.h rocksdb_free"
c_rocksdb_free :: CString -> IO ()