1 #ifndef __SAM_HEADER_H__
2 #define __SAM_HEADER_H__
5 KHASH_MAP_INIT_STR(str,const char *)
7 // HeaderDict is a list_t of header lines. Each HeaderLine holds a list of tags.
13 typedef struct _list_t list_t;
14 typedef list_t HeaderDict;
31 void debug(const char *format, ...);
32 void error(const char *format, ...);
34 HeaderDict *sam_header_parse(const char *headerText);
35 HeaderDict *sam_header_merge(int n, const HeaderDict **dicts);
36 void sam_header_free(HeaderDict *header);
37 char *sam_header_write(const HeaderDict *headerDict); // returns a newly allocated string
39 khash_t(str) *sam_header_lookup_table(const HeaderDict *dict, char type[2], char key_tag[2], char value_tag[2]);
41 list_t *list_append(list_t *root, void *data);
42 void list_free(list_t *root);
44 //char *sam_header_get(const HeaderDict *d, char type[2], int i, char tag[2]);
45 //int sam_header_ins(HeaderDict *d, char tp[2], int i, char tg[2], const char *s);
46 //int sam_header_del(HeaderDict *d, char type[2], int i, char tag[2]);