diff options
Diffstat (limited to 'odb.go')
| -rw-r--r-- | odb.go | 30 |
1 files changed, 30 insertions, 0 deletions
@@ -17,6 +17,36 @@ type Odb struct { ptr *C.git_odb } +type OdbBackend struct { + ptr *C.git_odb_backend +} + +func NewOdb() (odb *Odb, err error) { + odb = new(Odb) + + ret := C.git_odb_new(&odb.ptr) + if ret < 0 { + return nil, LastError() + } + + runtime.SetFinalizer(odb, (*Odb).Free) + return +} + +func NewOdbBackendFromC(ptr *C.git_odb_backend) (backend *OdbBackend) { + backend = &OdbBackend{ptr} + return +} + + +func (v *Odb) AddBackend(backend *OdbBackend, priority int) (err error) { + ret := C.git_odb_add_backend(v.ptr, backend.ptr, C.int(priority)) + if ret < 0 { + err = LastError() + } + return nil +} + func (v *Odb) Exists(oid *Oid) bool { ret := C.git_odb_exists(v.ptr, oid.toC()) return ret != 0 |
