module Bindings.Libgit2.Odb 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.Libgit2.Common
import Bindings.Libgit2.Types
import Bindings.Libgit2.Oid
data C'git_rawobj = C'git_rawobj{
c'git_rawobj'data :: Ptr Word8
,
c'git_rawobj'len :: CSize
,
c'git_rawobj'type :: C'git_otype
} deriving (Eq,Show)
instance Storable C'git_rawobj where
sizeOf _ = 12
alignment = sizeOf
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 4
v2 <- peekByteOff p 8
return $ C'git_rawobj v0 v1 v2
poke p (C'git_rawobj v0 v1 v2) = do
pokeByteOff p 0 v0
pokeByteOff p 4 v1
pokeByteOff p 8 v2
return ()
foreign import ccall "git_odb_new" c'git_odb_new
:: Ptr (Ptr C'git_odb) -> IO (CInt)
foreign import ccall "&git_odb_new" p'git_odb_new
:: FunPtr (Ptr (Ptr C'git_odb) -> IO (CInt))
foreign import ccall "git_odb_open" c'git_odb_open
:: Ptr (Ptr C'git_odb) -> CString -> IO (CInt)
foreign import ccall "&git_odb_open" p'git_odb_open
:: FunPtr (Ptr (Ptr C'git_odb) -> CString -> IO (CInt))
foreign import ccall "git_odb_add_backend" c'git_odb_add_backend
:: Ptr C'git_odb -> Ptr C'git_odb_backend -> CInt -> IO (CInt)
foreign import ccall "&git_odb_add_backend" p'git_odb_add_backend
:: FunPtr (Ptr C'git_odb -> Ptr C'git_odb_backend -> CInt -> IO (CInt))
foreign import ccall "git_odb_add_alternate" c'git_odb_add_alternate
:: Ptr C'git_odb -> Ptr C'git_odb_backend -> CInt -> IO (CInt)
foreign import ccall "&git_odb_add_alternate" p'git_odb_add_alternate
:: FunPtr (Ptr C'git_odb -> Ptr C'git_odb_backend -> CInt -> IO (CInt))
foreign import ccall "git_odb_close" c'git_odb_close
:: Ptr C'git_odb -> IO ()
foreign import ccall "&git_odb_close" p'git_odb_close
:: FunPtr (Ptr C'git_odb -> IO ())
foreign import ccall "git_odb_read" c'git_odb_read
:: Ptr C'git_rawobj -> Ptr C'git_odb -> Ptr C'git_oid -> IO (CInt)
foreign import ccall "&git_odb_read" p'git_odb_read
:: FunPtr (Ptr C'git_rawobj -> Ptr C'git_odb -> Ptr C'git_oid -> IO (CInt))
foreign import ccall "git_odb_read_header" c'git_odb_read_header
:: Ptr C'git_rawobj -> Ptr C'git_odb -> Ptr C'git_oid -> IO (CInt)
foreign import ccall "&git_odb_read_header" p'git_odb_read_header
:: FunPtr (Ptr C'git_rawobj -> Ptr C'git_odb -> Ptr C'git_oid -> IO (CInt))
foreign import ccall "git_odb_write" c'git_odb_write
:: Ptr C'git_oid -> Ptr C'git_odb -> Ptr C'git_rawobj -> IO (CInt)
foreign import ccall "&git_odb_write" p'git_odb_write
:: FunPtr (Ptr C'git_oid -> Ptr C'git_odb -> Ptr C'git_rawobj -> IO (CInt))
foreign import ccall "git_odb_exists" c'git_odb_exists
:: Ptr C'git_odb -> Ptr C'git_oid -> IO (CInt)
foreign import ccall "&git_odb_exists" p'git_odb_exists
:: FunPtr (Ptr C'git_odb -> Ptr C'git_oid -> IO (CInt))
foreign import ccall "git_rawobj_hash" c'git_rawobj_hash
:: Ptr C'git_oid -> Ptr C'git_rawobj -> IO (CInt)
foreign import ccall "&git_rawobj_hash" p'git_rawobj_hash
:: FunPtr (Ptr C'git_oid -> Ptr C'git_rawobj -> IO (CInt))
foreign import ccall "git_rawobj_close" c'git_rawobj_close
:: Ptr C'git_rawobj -> IO ()
foreign import ccall "&git_rawobj_close" p'git_rawobj_close
:: FunPtr (Ptr C'git_rawobj -> IO ())