Add the new callbacks for Remote.Push()
This unifies the types with the Push struct, in preparation for its deletion.
This commit is contained in:
parent
63116ea57e
commit
0202f152ac
11
push.go
11
push.go
|
@ -146,17 +146,14 @@ type PushCallbacks struct {
|
||||||
TransferProgress *PushTransferProgressCallback
|
TransferProgress *PushTransferProgressCallback
|
||||||
}
|
}
|
||||||
|
|
||||||
type PackbuilderProgressCallback func(stage int, current uint, total uint) int
|
|
||||||
type PushTransferProgressCallback func(current uint, total uint, bytes uint) int
|
|
||||||
|
|
||||||
//export packbuilderProgress
|
//export packbuilderProgress
|
||||||
func packbuilderProgress(stage C.int, current C.uint, total C.uint, data unsafe.Pointer) C.int {
|
func packbuilderProgress(stage C.int, current C.uint, total C.uint, data unsafe.Pointer) C.int {
|
||||||
return C.int((*(*PackbuilderProgressCallback)(data))(int(stage), uint(current), uint(total)))
|
return C.int((*(*PackbuilderProgressCallback)(data))(int32(stage), uint32(current), uint32(total)))
|
||||||
}
|
}
|
||||||
|
|
||||||
//export pushTransferProgress
|
//export pushStructTransferProgress
|
||||||
func pushTransferProgress(current C.uint, total C.uint, bytes C.size_t, data unsafe.Pointer) C.int {
|
func pushStructTransferProgress(current C.uint, total C.uint, bytes C.size_t, data unsafe.Pointer) C.int {
|
||||||
return C.int((*(*PushTransferProgressCallback)(data))(uint(current), uint(total), uint(bytes)))
|
return C.int((*(*PushTransferProgressCallback)(data))(uint32(current), uint32(total), uint(bytes)))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *Push) SetCallbacks(callbacks PushCallbacks) {
|
func (p *Push) SetCallbacks(callbacks PushCallbacks) {
|
||||||
|
|
41
remote.go
41
remote.go
|
@ -53,6 +53,9 @@ type CredentialsCallback func(url string, username_from_url string, allowed_type
|
||||||
type TransferProgressCallback func(stats TransferProgress) ErrorCode
|
type TransferProgressCallback func(stats TransferProgress) ErrorCode
|
||||||
type UpdateTipsCallback func(refname string, a *Oid, b *Oid) ErrorCode
|
type UpdateTipsCallback func(refname string, a *Oid, b *Oid) ErrorCode
|
||||||
type CertificateCheckCallback func(cert *Certificate, valid bool, hostname string) ErrorCode
|
type CertificateCheckCallback func(cert *Certificate, valid bool, hostname string) ErrorCode
|
||||||
|
type PackbuilderProgressCallback func(stage int32, current, total uint32) ErrorCode
|
||||||
|
type PushTransferProgressCallback func(current, total uint32, bytes uint) ErrorCode
|
||||||
|
type PushUpdateReferenceCallback func(refname, status string) ErrorCode
|
||||||
|
|
||||||
type RemoteCallbacks struct {
|
type RemoteCallbacks struct {
|
||||||
SidebandProgressCallback TransportMessageCallback
|
SidebandProgressCallback TransportMessageCallback
|
||||||
|
@ -61,8 +64,12 @@ type RemoteCallbacks struct {
|
||||||
TransferProgressCallback
|
TransferProgressCallback
|
||||||
UpdateTipsCallback
|
UpdateTipsCallback
|
||||||
CertificateCheckCallback
|
CertificateCheckCallback
|
||||||
|
PackProgressCallback PackbuilderProgressCallback
|
||||||
|
PushTransferProgressCallback
|
||||||
|
PushUpdateReferenceCallback
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
type Remote struct {
|
type Remote struct {
|
||||||
ptr *C.git_remote
|
ptr *C.git_remote
|
||||||
callbacks RemoteCallbacks
|
callbacks RemoteCallbacks
|
||||||
|
@ -216,6 +223,40 @@ func certificateCheckCallback(_cert *C.git_cert, _valid C.int, _host *C.char, da
|
||||||
return int(callbacks.CertificateCheckCallback(&cert, valid, host))
|
return int(callbacks.CertificateCheckCallback(&cert, valid, host))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//export packProgressCallback
|
||||||
|
func packProgressCallback(stage C.int, current, total C.uint, data unsafe.Pointer) int {
|
||||||
|
callbacks := (*RemoteCallbacks)(data)
|
||||||
|
|
||||||
|
if callbacks.PackProgressCallback == nil {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
return int(callbacks.PackProgressCallback(int32(stage), uint32(current), uint32(total)))
|
||||||
|
}
|
||||||
|
|
||||||
|
//export pushTransferProgressCallback
|
||||||
|
func pushTransferProgressCallback(current, total C.uint, bytes C.size_t, data unsafe.Pointer) int {
|
||||||
|
callbacks := (*RemoteCallbacks)(data)
|
||||||
|
if callbacks.PushTransferProgressCallback == nil {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
return int(callbacks.PushTransferProgressCallback(uint32(current), uint32(total), uint(bytes)))
|
||||||
|
}
|
||||||
|
|
||||||
|
//export pushUpdateReferenceCallback
|
||||||
|
func pushUpdateReferenceCallback(refname, status *C.char, data unsafe.Pointer) int {
|
||||||
|
callbacks := (*RemoteCallbacks)(data)
|
||||||
|
|
||||||
|
if callbacks.PushUpdateReferenceCallback == nil {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
return int(callbacks.PushUpdateReferenceCallback(C.GoString(refname), C.GoString(status)))
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
func RemoteIsValidName(name string) bool {
|
func RemoteIsValidName(name string) bool {
|
||||||
cname := C.CString(name)
|
cname := C.CString(name)
|
||||||
defer C.free(unsafe.Pointer(cname))
|
defer C.free(unsafe.Pointer(cname))
|
||||||
|
|
|
@ -71,12 +71,17 @@ void _go_git_setup_diff_notify_callbacks(git_diff_options *opts) {
|
||||||
void _go_git_setup_callbacks(git_remote_callbacks *callbacks) {
|
void _go_git_setup_callbacks(git_remote_callbacks *callbacks) {
|
||||||
typedef int (*completion_cb)(git_remote_completion_type type, void *data);
|
typedef int (*completion_cb)(git_remote_completion_type type, void *data);
|
||||||
typedef int (*update_tips_cb)(const char *refname, const git_oid *a, const git_oid *b, void *data);
|
typedef int (*update_tips_cb)(const char *refname, const git_oid *a, const git_oid *b, void *data);
|
||||||
|
typedef (*push_update_reference_cb)(const char *refname, const char *status, void *data);
|
||||||
|
|
||||||
callbacks->sideband_progress = (git_transport_message_cb)sidebandProgressCallback;
|
callbacks->sideband_progress = (git_transport_message_cb)sidebandProgressCallback;
|
||||||
callbacks->completion = (completion_cb)completionCallback;
|
callbacks->completion = (completion_cb)completionCallback;
|
||||||
callbacks->credentials = (git_cred_acquire_cb)credentialsCallback;
|
callbacks->credentials = (git_cred_acquire_cb)credentialsCallback;
|
||||||
callbacks->transfer_progress = (git_transfer_progress_cb)transferProgressCallback;
|
callbacks->transfer_progress = (git_transfer_progress_cb)transferProgressCallback;
|
||||||
callbacks->update_tips = (update_tips_cb)updateTipsCallback;
|
callbacks->update_tips = (update_tips_cb)updateTipsCallback;
|
||||||
callbacks->certificate_check = (git_transport_certificate_check_cb) certificateCheckCallback;
|
callbacks->certificate_check = (git_transport_certificate_check_cb) certificateCheckCallback;
|
||||||
|
callbacks->pack_progress = (git_packbuilder_progress) packProgressCallback;
|
||||||
|
callbacks->push_transfer_progress = (git_push_transfer_progress) pushTransferProgressCallback;
|
||||||
|
callbacks->push_update_reference = (push_update_reference_cb) pushUpdateReferenceCallback;
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef int (*status_foreach_cb)(const char *ref, const char *msg, void *data);
|
typedef int (*status_foreach_cb)(const char *ref, const char *msg, void *data);
|
||||||
|
@ -88,7 +93,7 @@ int _go_git_push_status_foreach(git_push *push, void *data)
|
||||||
|
|
||||||
int _go_git_push_set_callbacks(git_push *push, void *packbuilder_progress_data, void *transfer_progress_data)
|
int _go_git_push_set_callbacks(git_push *push, void *packbuilder_progress_data, void *transfer_progress_data)
|
||||||
{
|
{
|
||||||
return git_push_set_callbacks(push, packbuilderProgress, packbuilder_progress_data, pushTransferProgress, transfer_progress_data);
|
return git_push_set_callbacks(push, packbuilderProgress, packbuilder_progress_data, pushStructTransferProgress, transfer_progress_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
int _go_blob_chunk_cb(char *buffer, size_t maxLen, void *payload)
|
int _go_blob_chunk_cb(char *buffer, size_t maxLen, void *payload)
|
||||||
|
|
Loading…
Reference in New Issue