Add documentation
This commit is contained in:
parent
0ef25268fa
commit
04038d3378
10
indexer.go
10
indexer.go
|
@ -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
1
odb.go
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue