X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=laserbrain_demo;a=blobdiff_plain;f=src%2Fdatamap.h;h=674ab7cbfd1a78e0e03b3ab3d56ca2d65566ee77;hp=4cbc44ba789beaed93e6b8ca126dc661b345ebef;hb=197bafc7f54795243d4c217c2efcf41f01d4100d;hpb=516e9be0443cfd7f844feb9b8299f909075b7c3c diff --git a/src/datamap.h b/src/datamap.h index 4cbc44b..674ab7c 100644 --- a/src/datamap.h +++ b/src/datamap.h @@ -1,13 +1,29 @@ #ifndef DATAMAP_H_ #define DATAMAP_H_ -void datmap_reset(); -void datmap_set_path(const char *path); +#include +#include +#include -bool datmap_load_map(const char *fname); -void datmap_map(const char *re, const char *path); +class DataMap { + std::vector> dmap; + mutable std::map cache; + std::string root; + bool strip_paths; -int datmap_lookup(const char *in, char *buf, int bsz); -int datmap_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_