diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2015-07-01 12:25:47 -0700 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-07-01 12:25:47 -0700 |
commit | 36657c019be70be11430ce8e785dea3fb2e6a415 (patch) | |
tree | 27cb2c4df607d9d92121598dc4d81ea0f05a7826 /taxonomy.h | |
parent | 186f8c6ac1d57619455222349f895a6fc0fafde1 (diff) | |
download | subsurface-36657c019be70be11430ce8e785dea3fb2e6a415.tar.gz |
Geo taxonomy: create some data structures and helper functions
This is designed to store taxonomy information for dive sites, including
information where the data came from.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'taxonomy.h')
-rw-r--r-- | taxonomy.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/taxonomy.h b/taxonomy.h new file mode 100644 index 000000000..fef6364e2 --- /dev/null +++ b/taxonomy.h @@ -0,0 +1,39 @@ +#ifndef TAXONOMY_H +#define TAXONOMY_H + +#ifdef __cplusplus +extern "C" { +#endif + +enum taxonomy_category { + NONE, + OCEAN, + COUNTRY, + ADMIN_L1, + ADMIN_L2, + LOCALNAME, + NR_CATEGORIES +}; + +extern char *taxonomy_category_names[NR_CATEGORIES]; +extern char *taxonomy_api_names[NR_CATEGORIES]; + +struct taxonomy { + int category; /* the category for this tag: ocean, country, admin_l1, admin_l2, localname, etc */ + const char *value; /* the value returned, parsed, or manually entered for that category */ + enum { GEOCODED, PARSED, MANUAL } origin; +}; + +/* the data block contains 3 taxonomy structures - unused ones have a tag value of NONE */ +struct taxonomy_data { + int nr; + struct taxonomy *category; +}; + +struct taxonomy *alloc_taxonomy(); +void free_taxonomy(struct taxonomy *t); + +#ifdef __cplusplus +} +#endif +#endif // TAXONOMY_H |