{-# LINE 1 "Bindings/APR/Hash.hsc" #-}

{-# LINE 2 "Bindings/APR/Hash.hsc" #-}

{-# LINE 3 "Bindings/APR/Hash.hsc" #-}

module Bindings.APR.Hash 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

{-# LINE 6 "Bindings/APR/Hash.hsc" #-}
import Bindings.APR
import Bindings.APR.Pools

c'APR_HASH_KEY_STRING = -1
c'APR_HASH_KEY_STRING :: (Num a) => a

{-# LINE 10 "Bindings/APR/Hash.hsc" #-}

data C'apr_hash_t = C'apr_hash_t

{-# LINE 12 "Bindings/APR/Hash.hsc" #-}
data C'apr_hash_index_t = C'apr_hash_index_t

{-# LINE 13 "Bindings/APR/Hash.hsc" #-}

type C'apr_hashfunc_t = FunPtr (Ptr CChar -> Ptr C'apr_ssize_t -> IO CUInt)
foreign import ccall "wrapper" mk'apr_hashfunc_t
  :: (Ptr CChar -> Ptr C'apr_ssize_t -> IO CUInt) -> IO C'apr_hashfunc_t
foreign import ccall "dynamic" mK'apr_hashfunc_t
  :: C'apr_hashfunc_t -> (Ptr CChar -> Ptr C'apr_ssize_t -> IO CUInt)

{-# LINE 15 "Bindings/APR/Hash.hsc" #-}

foreign import ccall "apr_hashfunc_default" c'apr_hashfunc_default
  :: Ptr CChar -> Ptr C'apr_ssize_t -> IO CUInt
foreign import ccall "&apr_hashfunc_default" p'apr_hashfunc_default
  :: FunPtr (Ptr CChar -> Ptr C'apr_ssize_t -> IO CUInt)

{-# LINE 17 "Bindings/APR/Hash.hsc" #-}
foreign import ccall "apr_hash_make" c'apr_hash_make
  :: Ptr C'apr_pool_t -> IO (Ptr C'apr_hash_t)
foreign import ccall "&apr_hash_make" p'apr_hash_make
  :: FunPtr (Ptr C'apr_pool_t -> IO (Ptr C'apr_hash_t))

{-# LINE 18 "Bindings/APR/Hash.hsc" #-}
foreign import ccall "apr_hash_make_custom" c'apr_hash_make_custom
  :: Ptr C'apr_hash_t -> C'apr_hashfunc_t -> IO (Ptr C'apr_hash_t)
foreign import ccall "&apr_hash_make_custom" p'apr_hash_make_custom
  :: FunPtr (Ptr C'apr_hash_t -> C'apr_hashfunc_t -> IO (Ptr C'apr_hash_t))

{-# LINE 19 "Bindings/APR/Hash.hsc" #-}
foreign import ccall "apr_hash_copy" c'apr_hash_copy
  :: Ptr C'apr_pool_t -> Ptr C'apr_hash_t -> IO (Ptr C'apr_hash_t)
foreign import ccall "&apr_hash_copy" p'apr_hash_copy
  :: FunPtr (Ptr C'apr_pool_t -> Ptr C'apr_hash_t -> IO (Ptr C'apr_hash_t))

{-# LINE 20 "Bindings/APR/Hash.hsc" #-}
foreign import ccall "apr_hash_set" c'apr_hash_set
  :: Ptr C'apr_hash_t -> Ptr () -> C'apr_ssize_t -> Ptr () -> IO ()
foreign import ccall "&apr_hash_set" p'apr_hash_set
  :: FunPtr (Ptr C'apr_hash_t -> Ptr () -> C'apr_ssize_t -> Ptr () -> IO ())

{-# LINE 21 "Bindings/APR/Hash.hsc" #-}
foreign import ccall "apr_hash_get" c'apr_hash_get
  :: Ptr C'apr_hash_t -> Ptr () -> C'apr_ssize_t -> IO (Ptr ())
foreign import ccall "&apr_hash_get" p'apr_hash_get
  :: FunPtr (Ptr C'apr_hash_t -> Ptr () -> C'apr_ssize_t -> IO (Ptr ()))

{-# LINE 22 "Bindings/APR/Hash.hsc" #-}
foreign import ccall "apr_hash_first" c'apr_hash_first
  :: Ptr C'apr_pool_t -> Ptr C'apr_hash_t -> IO (Ptr C'apr_hash_index_t)
foreign import ccall "&apr_hash_first" p'apr_hash_first
  :: FunPtr (Ptr C'apr_pool_t -> Ptr C'apr_hash_t -> IO (Ptr C'apr_hash_index_t))

{-# LINE 23 "Bindings/APR/Hash.hsc" #-}
foreign import ccall "apr_hash_next" c'apr_hash_next
  :: Ptr C'apr_hash_index_t -> IO (Ptr C'apr_hash_index_t)
foreign import ccall "&apr_hash_next" p'apr_hash_next
  :: FunPtr (Ptr C'apr_hash_index_t -> IO (Ptr C'apr_hash_index_t))

{-# LINE 24 "Bindings/APR/Hash.hsc" #-}
foreign import ccall "apr_hash_this" c'apr_hash_this
  :: Ptr C'apr_hash_index_t -> Ptr (Ptr ()) -> Ptr C'apr_ssize_t -> Ptr (Ptr ()) -> IO ()
foreign import ccall "&apr_hash_this" p'apr_hash_this
  :: FunPtr (Ptr C'apr_hash_index_t -> Ptr (Ptr ()) -> Ptr C'apr_ssize_t -> Ptr (Ptr ()) -> IO ())

{-# LINE 25 "Bindings/APR/Hash.hsc" #-}
foreign import ccall "apr_hash_count" c'apr_hash_count
  :: Ptr C'apr_hash_t -> IO CUInt
foreign import ccall "&apr_hash_count" p'apr_hash_count
  :: FunPtr (Ptr C'apr_hash_t -> IO CUInt)

{-# LINE 26 "Bindings/APR/Hash.hsc" #-}
foreign import ccall "apr_hash_clear" c'apr_hash_clear
  :: Ptr C'apr_hash_t -> IO ()
foreign import ccall "&apr_hash_clear" p'apr_hash_clear
  :: FunPtr (Ptr C'apr_hash_t -> IO ())

{-# LINE 27 "Bindings/APR/Hash.hsc" #-}
foreign import ccall "apr_hash_overlay" c'apr_hash_overlay
  :: Ptr C'apr_pool_t -> Ptr C'apr_hash_t -> Ptr C'apr_hash_t -> IO (Ptr C'apr_hash_t)
foreign import ccall "&apr_hash_overlay" p'apr_hash_overlay
  :: FunPtr (Ptr C'apr_pool_t -> Ptr C'apr_hash_t -> Ptr C'apr_hash_t -> IO (Ptr C'apr_hash_t))

{-# LINE 28 "Bindings/APR/Hash.hsc" #-}
foreign import ccall "apr_hash_merge" c'apr_hash_merge
  :: Ptr C'apr_pool_t -> Ptr C'apr_hash_t -> Ptr C'apr_hash_t -> FunPtr (Ptr C'apr_pool_t -> Ptr () -> C'apr_ssize_t -> Ptr () -> Ptr () -> Ptr () -> IO (Ptr ())) -> Ptr () -> IO (Ptr C'apr_hash_t)
foreign import ccall "&apr_hash_merge" p'apr_hash_merge
  :: FunPtr (Ptr C'apr_pool_t -> Ptr C'apr_hash_t -> Ptr C'apr_hash_t -> FunPtr (Ptr C'apr_pool_t -> Ptr () -> C'apr_ssize_t -> Ptr () -> Ptr () -> Ptr () -> IO (Ptr ())) -> Ptr () -> IO (Ptr C'apr_hash_t))

{-# LINE 29 "Bindings/APR/Hash.hsc" #-}

foreign import ccall "apr_hash_pool_get" c'apr_hash_pool_get
  :: Ptr C'apr_hash_t -> IO (Ptr C'apr_pool_t)
foreign import ccall "&apr_hash_pool_get" p'apr_hash_pool_get
  :: FunPtr (Ptr C'apr_hash_t -> IO (Ptr C'apr_pool_t))

{-# LINE 31 "Bindings/APR/Hash.hsc" #-}