module Bindings.APR.Tables 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.Pools
data C'apr_table_t = C'apr_table_t
data C'apr_array_header_t = C'apr_array_header_t{
c'apr_array_header_t'pool :: Ptr C'apr_pool_t
,
c'apr_array_header_t'elt_size :: CInt
,
c'apr_array_header_t'nelts :: CInt
,
c'apr_array_header_t'nalloc :: CInt
,
c'apr_array_header_t'elts :: Ptr CChar
} deriving (Eq,Show)
instance Storable C'apr_array_header_t where
sizeOf _ = 20
alignment = sizeOf
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 4
v2 <- peekByteOff p 8
v3 <- peekByteOff p 12
v4 <- peekByteOff p 16
return $ C'apr_array_header_t v0 v1 v2 v3 v4
poke p (C'apr_array_header_t v0 v1 v2 v3 v4) = do
pokeByteOff p 0 v0
pokeByteOff p 4 v1
pokeByteOff p 8 v2
pokeByteOff p 12 v3
pokeByteOff p 16 v4
return ()
data C'apr_table_entry_t = C'apr_table_entry_t{
c'apr_table_entry_t'key :: Ptr CChar
,
c'apr_table_entry_t'val :: Ptr CChar
,
c'apr_table_entry_t'key_checksum :: C'apr_uint32_t
} deriving (Eq,Show)
instance Storable C'apr_table_entry_t where
sizeOf _ = 12
alignment = sizeOf
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 4
v2 <- peekByteOff p 8
return $ C'apr_table_entry_t v0 v1 v2
poke p (C'apr_table_entry_t v0 v1 v2) = do
pokeByteOff p 0 v0
pokeByteOff p 4 v1
pokeByteOff p 8 v2
return ()
foreign import ccall "apr_table_elts" c'apr_table_elts
:: Ptr C'apr_table_t -> IO (Ptr C'apr_array_header_t)
foreign import ccall "&apr_table_elts" p'apr_table_elts
:: FunPtr (Ptr C'apr_table_t -> IO (Ptr C'apr_array_header_t))
foreign import ccall "apr_is_empty_table" c'apr_is_empty_table
:: Ptr C'apr_table_t -> IO CInt
foreign import ccall "&apr_is_empty_table" p'apr_is_empty_table
:: FunPtr (Ptr C'apr_table_t -> IO CInt)
foreign import ccall "apr_is_empty_array" c'apr_is_empty_array
:: Ptr C'apr_array_header_t -> IO CInt
foreign import ccall "&apr_is_empty_array" p'apr_is_empty_array
:: FunPtr (Ptr C'apr_array_header_t -> IO CInt)
foreign import ccall "apr_array_make" c'apr_array_make
:: Ptr C'apr_pool_t -> CInt -> CInt -> IO (Ptr C'apr_array_header_t)
foreign import ccall "&apr_array_make" p'apr_array_make
:: FunPtr (Ptr C'apr_pool_t -> CInt -> CInt -> IO (Ptr C'apr_array_header_t))
foreign import ccall "apr_array_push" c'apr_array_push
:: Ptr C'apr_array_header_t -> IO (Ptr ())
foreign import ccall "&apr_array_push" p'apr_array_push
:: FunPtr (Ptr C'apr_array_header_t -> IO (Ptr ()))
foreign import ccall "apr_array_pop" c'apr_array_pop
:: Ptr C'apr_array_header_t -> IO (Ptr ())
foreign import ccall "&apr_array_pop" p'apr_array_pop
:: FunPtr (Ptr C'apr_array_header_t -> IO (Ptr ()))
foreign import ccall "apr_array_clear" c'apr_array_clear
:: Ptr C'apr_array_header_t -> IO ()
foreign import ccall "&apr_array_clear" p'apr_array_clear
:: FunPtr (Ptr C'apr_array_header_t -> IO ())
foreign import ccall "apr_array_cat" c'apr_array_cat
:: Ptr C'apr_array_header_t -> Ptr C'apr_array_header_t -> IO ()
foreign import ccall "&apr_array_cat" p'apr_array_cat
:: FunPtr (Ptr C'apr_array_header_t -> Ptr C'apr_array_header_t -> IO ())
foreign import ccall "apr_array_copy" c'apr_array_copy
:: Ptr C'apr_pool_t -> Ptr C'apr_array_header_t -> IO (Ptr C'apr_array_header_t)
foreign import ccall "&apr_array_copy" p'apr_array_copy
:: FunPtr (Ptr C'apr_pool_t -> Ptr C'apr_array_header_t -> IO (Ptr C'apr_array_header_t))
foreign import ccall "apr_array_copy_hdr" c'apr_array_copy_hdr
:: Ptr C'apr_pool_t -> Ptr C'apr_array_header_t -> IO (Ptr C'apr_array_header_t)
foreign import ccall "&apr_array_copy_hdr" p'apr_array_copy_hdr
:: FunPtr (Ptr C'apr_pool_t -> Ptr C'apr_array_header_t -> IO (Ptr C'apr_array_header_t))
foreign import ccall "apr_array_append" c'apr_array_append
:: Ptr C'apr_pool_t -> Ptr C'apr_array_header_t -> Ptr C'apr_array_header_t -> IO (Ptr C'apr_array_header_t)
foreign import ccall "&apr_array_append" p'apr_array_append
:: FunPtr (Ptr C'apr_pool_t -> Ptr C'apr_array_header_t -> Ptr C'apr_array_header_t -> IO (Ptr C'apr_array_header_t))
foreign import ccall "apr_array_pstrcat" c'apr_array_pstrcat
:: Ptr C'apr_pool_t -> Ptr C'apr_array_header_t -> CChar -> IO (Ptr CChar)
foreign import ccall "&apr_array_pstrcat" p'apr_array_pstrcat
:: FunPtr (Ptr C'apr_pool_t -> Ptr C'apr_array_header_t -> CChar -> IO (Ptr CChar))
foreign import ccall "apr_table_make" c'apr_table_make
:: Ptr C'apr_pool_t -> CInt -> IO (Ptr C'apr_table_t)
foreign import ccall "&apr_table_make" p'apr_table_make
:: FunPtr (Ptr C'apr_pool_t -> CInt -> IO (Ptr C'apr_table_t))
foreign import ccall "apr_table_copy" c'apr_table_copy
:: Ptr C'apr_pool_t -> Ptr C'apr_table_t -> IO (Ptr C'apr_table_t)
foreign import ccall "&apr_table_copy" p'apr_table_copy
:: FunPtr (Ptr C'apr_pool_t -> Ptr C'apr_table_t -> IO (Ptr C'apr_table_t))
foreign import ccall "apr_table_clone" c'apr_table_clone
:: Ptr C'apr_pool_t -> Ptr C'apr_table_t -> IO (Ptr C'apr_table_t)
foreign import ccall "&apr_table_clone" p'apr_table_clone
:: FunPtr (Ptr C'apr_pool_t -> Ptr C'apr_table_t -> IO (Ptr C'apr_table_t))
foreign import ccall "apr_table_clear" c'apr_table_clear
:: Ptr C'apr_table_t -> IO ()
foreign import ccall "&apr_table_clear" p'apr_table_clear
:: FunPtr (Ptr C'apr_table_t -> IO ())
foreign import ccall "apr_table_get" c'apr_table_get
:: Ptr C'apr_table_t -> Ptr CChar -> IO (Ptr CChar)
foreign import ccall "&apr_table_get" p'apr_table_get
:: FunPtr (Ptr C'apr_table_t -> Ptr CChar -> IO (Ptr CChar))
foreign import ccall "apr_table_set" c'apr_table_set
:: Ptr C'apr_table_t -> Ptr CChar -> Ptr CChar -> IO ()
foreign import ccall "&apr_table_set" p'apr_table_set
:: FunPtr (Ptr C'apr_table_t -> Ptr CChar -> Ptr CChar -> IO ())
foreign import ccall "apr_table_setn" c'apr_table_setn
:: Ptr C'apr_table_t -> Ptr CChar -> Ptr CChar -> IO ()
foreign import ccall "&apr_table_setn" p'apr_table_setn
:: FunPtr (Ptr C'apr_table_t -> Ptr CChar -> Ptr CChar -> IO ())
foreign import ccall "apr_table_unset" c'apr_table_unset
:: Ptr C'apr_table_t -> Ptr CChar -> Ptr CChar -> IO ()
foreign import ccall "&apr_table_unset" p'apr_table_unset
:: FunPtr (Ptr C'apr_table_t -> Ptr CChar -> Ptr CChar -> IO ())
foreign import ccall "apr_table_merge" c'apr_table_merge
:: Ptr C'apr_table_t -> Ptr CChar -> Ptr CChar -> IO ()
foreign import ccall "&apr_table_merge" p'apr_table_merge
:: FunPtr (Ptr C'apr_table_t -> Ptr CChar -> Ptr CChar -> IO ())
foreign import ccall "apr_table_mergen" c'apr_table_mergen
:: Ptr C'apr_table_t -> Ptr CChar -> Ptr CChar -> IO ()
foreign import ccall "&apr_table_mergen" p'apr_table_mergen
:: FunPtr (Ptr C'apr_table_t -> Ptr CChar -> Ptr CChar -> IO ())
foreign import ccall "apr_table_add" c'apr_table_add
:: Ptr C'apr_table_t -> Ptr CChar -> Ptr CChar -> IO ()
foreign import ccall "&apr_table_add" p'apr_table_add
:: FunPtr (Ptr C'apr_table_t -> Ptr CChar -> Ptr CChar -> IO ())
foreign import ccall "apr_table_addn" c'apr_table_addn
:: Ptr C'apr_table_t -> Ptr CChar -> Ptr CChar -> IO ()
foreign import ccall "&apr_table_addn" p'apr_table_addn
:: FunPtr (Ptr C'apr_table_t -> Ptr CChar -> Ptr CChar -> IO ())
foreign import ccall "apr_table_overlay" c'apr_table_overlay
:: Ptr C'apr_pool_t -> Ptr C'apr_table_t -> Ptr C'apr_table_t -> IO (Ptr C'apr_table_t)
foreign import ccall "&apr_table_overlay" p'apr_table_overlay
:: FunPtr (Ptr C'apr_pool_t -> Ptr C'apr_table_t -> Ptr C'apr_table_t -> IO (Ptr C'apr_table_t))
type C'apr_table_do_callback_fn_t = FunPtr (Ptr () -> Ptr CChar -> Ptr CChar -> IO CInt)
foreign import ccall "wrapper" mk'apr_table_do_callback_fn_t
:: (Ptr () -> Ptr CChar -> Ptr CChar -> IO CInt) -> IO C'apr_table_do_callback_fn_t
foreign import ccall "dynamic" mK'apr_table_do_callback_fn_t
:: C'apr_table_do_callback_fn_t -> (Ptr () -> Ptr CChar -> Ptr CChar -> IO CInt)
c'APR_OVERLAP_TABLES_SET = 0
c'APR_OVERLAP_TABLES_SET :: (Num a) => a
c'APR_OVERLAP_TABLES_MERGE = 1
c'APR_OVERLAP_TABLES_MERGE :: (Num a) => a
foreign import ccall "apr_table_overlap" c'apr_table_overlap
:: Ptr C'apr_table_t -> Ptr C'apr_table_t -> CUInt -> IO ()
foreign import ccall "&apr_table_overlap" p'apr_table_overlap
:: FunPtr (Ptr C'apr_table_t -> Ptr C'apr_table_t -> CUInt -> IO ())
foreign import ccall "apr_table_compress" c'apr_table_compress
:: Ptr C'apr_table_t -> CUInt -> IO ()
foreign import ccall "&apr_table_compress" p'apr_table_compress
:: FunPtr (Ptr C'apr_table_t -> CUInt -> IO ())