Pro Git

Pro Git

🎯 ¿Cansado de los anuncios?
Elimínalos ahora 🚀
typedef struct { git_odb_backend parent; // Some other stuff void *custom_context; } my_backend_struct; int git_odb_backend_mine(git_odb_backend **backend_out, /*…*/) { my_backend_struct *backend; backend = calloc(1, sizeof (my_backend_struct)); backend->custom_context = …; backend->parent.read = &my_backend__read; backend->parent.read_prefix = &my_backend__read_prefix; backend->parent.read_header = &my_backend__read_header; // … *backend_out = (git_odb_backend *) backend; return GIT_SUCCESS; }

La restricción más sutil aquí es que el primer miembro de my_backend_struct debe ser una estructura git_odb_backend; esto asegura que la disposición de memoria sea la que el código Libgit2 espera. El resto es arbitrario; esta estructura puede ser tan grande o tan pequeña como necesites que sea.

La función de inicialización reserva memoria para la estructura, establece el contexto personalizado, y luego rellena los miembros de la estructura parent que soporta. Echa un vistazo al archivo include/git2/sys/odb_backend.h en el código fuente de Libgit2 para un conjunto completo de llamadas; tu caso de uso particular te ayudará a determinar cuál de éstas querrás soportar.



👉 Descargar el audiolibro GRATIS en Amazon
Reportar problema / Sugerencias
🧠 Hacer Trivia

eXTReMe Tracker