Пример #1
0
// ForEach repeatedly calls the callback with new packfile data until
// there is no more data or the callback returns an error
func (pb *Packbuilder) ForEach(callback PackbuilderForeachCallback) error {
	data := packbuilderCbData{
		callback: callback,
		err:      nil,
	}

	err := C._go_git_packbuilder_foreach(pb.ptr, unsafe.Pointer(&data))
	if err == C.GIT_EUSER {
		return data.err
	}
	if err < 0 {
		return MakeGitError(err)
	}

	return nil
}
Пример #2
0
// ForEach repeatedly calls the callback with new packfile data until
// there is no more data or the callback returns an error
func (pb *Packbuilder) ForEach(callback PackbuilderForeachCallback) error {
	data := packbuilderCbData{
		callback: callback,
		err:      nil,
	}
	handle := pointerHandles.Track(&data)
	defer pointerHandles.Untrack(handle)

	runtime.LockOSThread()
	defer runtime.UnlockOSThread()

	err := C._go_git_packbuilder_foreach(pb.ptr, handle)
	if err == C.GIT_EUSER {
		return data.err
	}
	if err < 0 {
		return MakeGitError(err)
	}

	return nil
}
Пример #3
0
func (pb *Packbuilder) forEachWrap(data *packbuilderCbData) {
	C._go_git_packbuilder_foreach(pb.ptr, unsafe.Pointer(data))
	close(data.ch)
}
Пример #4
0
func (pb *Packbuilder) forEachWrap(ch chan []byte) {
	C._go_git_packbuilder_foreach(pb.ptr, unsafe.Pointer(&ch))
	close(ch)
}