X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=laserbrain_demo;a=blobdiff_plain;f=src%2Fdatamap.h;h=674ab7cbfd1a78e0e03b3ab3d56ca2d65566ee77;hp=47e7d49920ed559d2532b80ae2983943b4cd2240;hb=044b45b0360db25ad673c8a9b209046df7b60216;hpb=8137121400748ee8afb1608253aae15323c5e3a2 diff --git a/src/datamap.h b/src/datamap.h index 47e7d49..674ab7c 100644 --- a/src/datamap.h +++ b/src/datamap.h @@ -1,13 +1,29 @@ #ifndef DATAMAP_H_ #define DATAMAP_H_ -void datamap_reset(); -void datamap_set_path(const char *path); +#include +#include +#include -bool datamap_load_map(const char *fname); -void datamap_map(const char *re, const char *path); +class DataMap { + std::vector> dmap; + mutable std::map cache; + std::string root; + bool strip_paths; -int datamap_lookup(const char *in, char *buf, int bsz); -int datamap_path_size(const char *in); +public: + DataMap(); + + void clear(); + + void set_path(const char *path); + void set_strip(bool s); + + bool load_map(const char *fname); + void map(const char *match, const char *path); + + int lookup(const char *in, char *buf, int bsz) const; + int path_size(const char *in) const; +}; #endif // DATAMAP_H_