Pro Git
Pro Git
🎯 ¿Cansado de los anuncios?
Elimínalos ahora 🚀
×
Crea tu biblioteca personal!
Si aún no tienes cuenta, registrarse es gratis y rápido. Al hacerlo, podrás guardar tus libros en tu biblioteca personal, y reanudar la lectura exactamente donde la dejaste, en cualquier dispositivo, sin descargas ni configuraciones adicionales.
Iniciar sesión o Registrarse
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