{-# OPTIONS_GHC -fno-warn-unused-imports #-} #include #include module Bindings.Libgit2.OdbBackend where import Foreign.Ptr #strict_import import Bindings.Libgit2.Common import Bindings.Libgit2.Types import Bindings.Libgit2.Oid import Bindings.Libgit2.Indexer {- struct git_odb_stream; -} {- #opaque_t git_odb_stream -} {- struct git_odb_writepack; -} {- #opaque_t git_odb_writepack -} {- typedef int (* git_odb_foreach_cb)(const git_oid * id, void * payload); -} #callback git_odb_foreach_cb , Ptr () -> Ptr () -> IO CInt {- struct git_odb_backend { unsigned int version; git_odb * odb; int (* read)(void * *, size_t *, git_otype *, struct git_odb_backend *, const git_oid *); int (* read_prefix)(git_oid *, void * *, size_t *, git_otype *, struct git_odb_backend *, const git_oid *, size_t); int (* read_header)(size_t *, git_otype *, struct git_odb_backend *, const git_oid *); int (* write)(git_oid *, struct git_odb_backend *, const void *, size_t, git_otype); int (* writestream)(struct git_odb_stream * *, struct git_odb_backend *, size_t, git_otype); int (* readstream)(struct git_odb_stream * *, struct git_odb_backend *, const git_oid *); int (* exists)(struct git_odb_backend *, const git_oid *); int (* refresh)(struct git_odb_backend *); int (* foreach)(struct git_odb_backend *, git_odb_foreach_cb cb, void * payload); int (* writepack)(struct git_odb_writepack * *, struct git_odb_backend *, git_transfer_progress_callback progress_cb, void * progress_payload); void (* free)(struct git_odb_backend *); }; -} #callback git_odb_backend_read_callback , Ptr (Ptr ()) -> Ptr CSize -> Ptr -> Ptr -> Ptr -> IO CInt #callback git_odb_backend_read_prefix_callback , Ptr -> Ptr (Ptr ()) -> Ptr CSize -> Ptr -> Ptr -> Ptr -> CSize -> IO CInt #callback git_odb_backend_read_header_callback , Ptr CSize -> Ptr -> Ptr -> Ptr -> IO CInt #callback git_odb_backend_write_callback , Ptr -> Ptr -> Ptr () -> CSize -> -> IO CInt #callback git_odb_backend_writestream_callback , Ptr (Ptr ) -> Ptr -> CSize -> -> IO CInt #callback git_odb_backend_readstream_callback , Ptr (Ptr ) -> Ptr -> Ptr -> IO CInt #callback git_odb_backend_exists_callback , Ptr -> Ptr -> IO CInt #callback git_odb_backend_refresh_callback , Ptr -> IO CInt #callback git_odb_backend_foreach_callback , Ptr -> -> Ptr () -> IO CInt #callback git_odb_backend_writepack_callback , Ptr (Ptr ) -> Ptr -> -> Ptr () -> IO CInt #callback git_odb_backend_free_callback , Ptr -> IO () #starttype git_odb_backend #field version , CUInt #field odb , Ptr #field read , #field read_prefix , #field read_header , #field write , #field writestream , #field readstream , #field exists , #field refresh , #field foreach , #field writepack , #field free , #stoptype {- enum { GIT_STREAM_RDONLY = 1 << 1, GIT_STREAM_WRONLY = 1 << 2, GIT_STREAM_RW = GIT_STREAM_RDONLY | GIT_STREAM_WRONLY }; -} #num GIT_STREAM_RDONLY #num GIT_STREAM_WRONLY #num GIT_STREAM_RW {- struct git_odb_stream { struct git_odb_backend * backend; unsigned int mode; int (* read)(struct git_odb_stream * stream, char * buffer, size_t len); int (* write)(struct git_odb_stream * stream, const char * buffer, size_t len); int (* finalize_write)(git_oid * oid_p, struct git_odb_stream * stream); void (* free)(struct git_odb_stream * stream); }; -} #callback git_odb_stream_read_callback , Ptr -> CString -> CSize -> IO CInt #callback git_odb_stream_write_callback , Ptr -> CString -> CSize -> IO CInt #callback git_odb_stream_finalize_write_callback , Ptr -> Ptr -> IO CInt #callback git_odb_stream_free_callback , Ptr -> IO () #starttype git_odb_stream #field backend , Ptr #field mode , CUInt #field read , #field write , #field finalize_write , #field free , #stoptype {- struct git_odb_writepack { struct git_odb_backend * backend; int (* add)(struct git_odb_writepack * writepack, const void * data, size_t size, git_transfer_progress * stats); int (* commit)(struct git_odb_writepack * writepack, git_transfer_progress * stats); void (* free)(struct git_odb_writepack * writepack); }; -} #callback git_odb_writepack_add_callback , Ptr -> Ptr () -> CSize -> Ptr -> IO CInt #callback git_odb_writepack_commit_callback , Ptr -> Ptr -> IO CInt #callback git_odb_writepack_free_callback , Ptr -> IO () #starttype git_odb_writepack #field backend , Ptr #field add , #field commit , #field free , #stoptype #ccall git_odb_backend_malloc , Ptr -> CSize -> IO (Ptr ()) #ccall git_odb_backend_pack , Ptr (Ptr ) -> CString -> IO (CInt) #ccall git_odb_backend_loose , Ptr (Ptr ) -> CString -> CInt -> CInt -> IO (CInt) #ccall git_odb_backend_one_pack , Ptr (Ptr ) -> CString -> IO (CInt)