index_writer.c (1102B)
1 #include "writer/gopher/index_writer.h" 2 3 #include <assert.h> 4 #include <stdio.h> 5 #include <stdlib.h> 6 7 #include "git/repo.h" 8 #include "utils.h" 9 #include "writer/gopher/repo_index.h" 10 11 struct GopherIndexWriter { 12 GopherRepoIndex* index; 13 }; 14 15 GopherIndexWriter* gopher_indexwriter_create(FILE* out) { 16 assert(out != NULL); 17 GopherIndexWriter* writer = ecalloc(1, sizeof(GopherIndexWriter)); 18 writer->index = gopher_repoindex_create(out); 19 return writer; 20 } 21 22 void gopher_indexwriter_free(GopherIndexWriter* writer) { 23 if (!writer) { 24 return; 25 } 26 gopher_repoindex_free(writer->index); 27 writer->index = NULL; 28 free(writer); 29 } 30 31 void gopher_indexwriter_begin(GopherIndexWriter* writer) { 32 assert(writer != NULL); 33 gopher_repoindex_begin(writer->index); 34 } 35 36 void gopher_indexwriter_add_repo(GopherIndexWriter* writer, 37 const GitRepo* repo) { 38 assert(writer != NULL); 39 assert(repo != NULL); 40 gopher_repoindex_add_repo(writer->index, repo); 41 } 42 43 void gopher_indexwriter_end(GopherIndexWriter* writer) { 44 assert(writer != NULL); 45 gopher_repoindex_end(writer->index); 46 }