module Bindings.APR.SDBM where
import Foreign.Ptr (Ptr,FunPtr,plusPtr)
import Foreign.Ptr (wordPtrToPtr,castPtrToFunPtr)
import Foreign.Storable
import Foreign.C.Types
import Foreign.C.String (CString,CStringLen,CWString,CWStringLen)
import Foreign.Marshal.Alloc (alloca)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word
import Bindings.APR
import Bindings.APR.ErrNo
import Bindings.APR.File.Info
import Bindings.APR.Pools
data C'apr_sdbm_t = C'apr_sdbm_t
data C'apr_sdbm_datum_t = C'apr_sdbm_datum_t{
c'apr_sdbm_datum_t'dptr :: Ptr CChar
,
c'apr_sdbm_datum_t'dsize :: CInt
} deriving (Eq,Show)
instance Storable C'apr_sdbm_datum_t where
sizeOf _ = 8
alignment = sizeOf
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 4
return $ C'apr_sdbm_datum_t v0 v1
poke p (C'apr_sdbm_datum_t v0 v1) = do
pokeByteOff p 0 v0
pokeByteOff p 4 v1
return ()
foreign import ccall "array_APR_SDBM_DIRFEXT" c'APR_SDBM_DIRFEXT
:: Ptr (CChar)
foreign import ccall "array_APR_SDBM_PAGFEXT" c'APR_SDBM_PAGFEXT
:: Ptr (CChar)
c'APR_SDBM_INSERT = 0
c'APR_SDBM_INSERT :: (Num a) => a
c'APR_SDBM_REPLACE = 1
c'APR_SDBM_REPLACE :: (Num a) => a
c'APR_SDBM_INSERTDUP = 2
c'APR_SDBM_INSERTDUP :: (Num a) => a
foreign import ccall "apr_sdbm_open" c'apr_sdbm_open
:: Ptr (Ptr C'apr_sdbm_t) -> Ptr CChar -> C'apr_int32_t -> C'apr_fileperms_t -> Ptr C'apr_pool_t -> IO C'apr_status_t
foreign import ccall "&apr_sdbm_open" p'apr_sdbm_open
:: FunPtr (Ptr (Ptr C'apr_sdbm_t) -> Ptr CChar -> C'apr_int32_t -> C'apr_fileperms_t -> Ptr C'apr_pool_t -> IO C'apr_status_t)
foreign import ccall "apr_sdbm_close" c'apr_sdbm_close
:: Ptr C'apr_sdbm_t -> IO C'apr_status_t
foreign import ccall "&apr_sdbm_close" p'apr_sdbm_close
:: FunPtr (Ptr C'apr_sdbm_t -> IO C'apr_status_t)
foreign import ccall "apr_sdbm_lock" c'apr_sdbm_lock
:: Ptr C'apr_sdbm_t -> CInt -> IO C'apr_status_t
foreign import ccall "&apr_sdbm_lock" p'apr_sdbm_lock
:: FunPtr (Ptr C'apr_sdbm_t -> CInt -> IO C'apr_status_t)
foreign import ccall "apr_sdbm_unlock" c'apr_sdbm_unlock
:: Ptr C'apr_sdbm_t -> IO C'apr_status_t
foreign import ccall "&apr_sdbm_unlock" p'apr_sdbm_unlock
:: FunPtr (Ptr C'apr_sdbm_t -> IO C'apr_status_t)
foreign import ccall "inline_apr_sdbm_fetch" c'apr_sdbm_fetch
:: Ptr C'apr_sdbm_t -> Ptr C'apr_sdbm_datum_t -> Ptr C'apr_sdbm_datum_t -> IO C'apr_status_t
foreign import ccall "inline_apr_sdbm_store" c'apr_sdbm_store
:: Ptr C'apr_sdbm_t -> Ptr C'apr_sdbm_datum_t -> Ptr C'apr_sdbm_datum_t -> CInt -> IO C'apr_status_t
foreign import ccall "inline_apr_sdbm_delete" c'apr_sdbm_delete
:: Ptr C'apr_sdbm_t -> Ptr C'apr_sdbm_datum_t -> IO C'apr_status_t
foreign import ccall "apr_sdbm_firstkey" c'apr_sdbm_firstkey
:: Ptr C'apr_sdbm_t -> Ptr C'apr_sdbm_datum_t -> IO C'apr_status_t
foreign import ccall "&apr_sdbm_firstkey" p'apr_sdbm_firstkey
:: FunPtr (Ptr C'apr_sdbm_t -> Ptr C'apr_sdbm_datum_t -> IO C'apr_status_t)
foreign import ccall "apr_sdbm_nextkey" c'apr_sdbm_nextkey
:: Ptr C'apr_sdbm_t -> Ptr C'apr_sdbm_datum_t -> IO C'apr_status_t
foreign import ccall "&apr_sdbm_nextkey" p'apr_sdbm_nextkey
:: FunPtr (Ptr C'apr_sdbm_t -> Ptr C'apr_sdbm_datum_t -> IO C'apr_status_t)
foreign import ccall "apr_sdbm_rdonly" c'apr_sdbm_rdonly
:: Ptr C'apr_sdbm_t -> IO CInt
foreign import ccall "&apr_sdbm_rdonly" p'apr_sdbm_rdonly
:: FunPtr (Ptr C'apr_sdbm_t -> IO CInt)