X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=laserbrain_demo;a=blobdiff_plain;f=src%2Fdatamap.h;h=137fdca77454f5eb2e280062c08e77e360c93632;hp=47e7d49920ed559d2532b80ae2983943b4cd2240;hb=b30241a8a51be904b22459a1d0cc3322e0a505d9;hpb=21f74bf587d9b7a76bc1ee83db02cb8c243dc567 diff --git a/src/datamap.h b/src/datamap.h index 47e7d49..137fdca 100644 --- a/src/datamap.h +++ b/src/datamap.h @@ -1,13 +1,25 @@ #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; -int datamap_lookup(const char *in, char *buf, int bsz); -int datamap_path_size(const char *in); +public: + void clear(); + + void set_path(const char *path); + + 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_