index_writer.c (1078B)
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 free(writer); 28 } 29 30 void gopher_indexwriter_begin(GopherIndexWriter* writer) { 31 assert(writer != NULL); 32 gopher_repoindex_begin(writer->index); 33 } 34 35 void gopher_indexwriter_add_repo(GopherIndexWriter* writer, 36 const GitRepo* repo) { 37 assert(writer != NULL); 38 assert(repo != NULL); 39 gopher_repoindex_add_repo(writer->index, repo); 40 } 41 42 void gopher_indexwriter_end(GopherIndexWriter* writer) { 43 assert(writer != NULL); 44 gopher_repoindex_end(writer->index); 45 }