Add documentation

This commit is contained in:
lhchavez 2016-12-23 19:53:33 -08:00
parent 0ef25268fa
commit 04038d3378
2 changed files with 11 additions and 0 deletions

View File

@ -16,6 +16,8 @@ import (
"unsafe"
)
// Indexer can post-process packfiles and create an .idx file for efficient
// lookup.
type Indexer struct {
ptr *C.git_indexer
stats C.git_transfer_progress
@ -23,6 +25,7 @@ type Indexer struct {
callbacksHandle unsafe.Pointer
}
// NewIndexer creates a new indexer instance.
func NewIndexer(packfilePath string, odb *Odb, callback TransferProgressCallback) (indexer *Indexer, err error) {
indexer = new(Indexer)
@ -47,6 +50,7 @@ func NewIndexer(packfilePath string, odb *Odb, callback TransferProgressCallback
return indexer, nil
}
// Write adds data to the indexer.
func (indexer *Indexer) Write(data []byte) (int, error) {
header := (*reflect.SliceHeader)(unsafe.Pointer(&data))
ptr := unsafe.Pointer(header.Data)
@ -63,6 +67,11 @@ func (indexer *Indexer) Write(data []byte) (int, error) {
return len(data), nil
}
// Commit finalizes the pack and index. It resolves any pending deltas and
// writes out the index file.
//
// It also returns the packfile's hash. A packfile's name is derived from the
// sorted hashing of all object names.
func (indexer *Indexer) Commit() (*Oid, error) {
runtime.LockOSThread()
defer runtime.UnlockOSThread()
@ -75,6 +84,7 @@ func (indexer *Indexer) Commit() (*Oid, error) {
return newOidFromC(C.git_indexer_hash(indexer.ptr)), nil
}
// Free frees the indexer and its resources.
func (indexer *Indexer) Free() {
pointerHandles.Untrack(indexer.callbacksHandle)
runtime.SetFinalizer(indexer, nil)

1
odb.go
View File

@ -379,6 +379,7 @@ func odbWritepackTransferProgress(_stats *C.git_transfer_progress, ptr unsafe.Po
return C.int(callback(newTransferProgressFromC(_stats)))
}
// OdbWritepack is a stream to write a packfile to the ODB.
type OdbWritepack struct {
ptr *C.git_odb_writepack
stats C.git_transfer_progress