diff options
author | Marisa-Chan | 2014-02-04 08:32:02 +0700 |
---|---|---|
committer | Marisa-Chan | 2014-02-04 08:32:02 +0700 |
commit | 4a454ed763c24f94062be5dd57f43e0a84c1b0a2 (patch) | |
tree | cbfd6f403c780c696d86bc02397e93a89dba9870 /engines/zvision/search_manager.h | |
parent | 9c9f59d57060617d1acec71bd0d4066504f17c7a (diff) | |
download | scummvm-rg350-4a454ed763c24f94062be5dd57f43e0a84c1b0a2.tar.gz scummvm-rg350-4a454ed763c24f94062be5dd57f43e0a84c1b0a2.tar.bz2 scummvm-rg350-4a454ed763c24f94062be5dd57f43e0a84c1b0a2.zip |
ZVISION: New search manager for handle right handle for ZIX-files.
Diffstat (limited to 'engines/zvision/search_manager.h')
-rw-r--r-- | engines/zvision/search_manager.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/engines/zvision/search_manager.h b/engines/zvision/search_manager.h new file mode 100644 index 0000000000..c768cb8b00 --- /dev/null +++ b/engines/zvision/search_manager.h @@ -0,0 +1,51 @@ +#ifndef SEARCH_MANAGER_H_INCLUDED +#define SEARCH_MANAGER_H_INCLUDED + +#include "common/str.h" +#include "common/hash-str.h" +#include "common/hashmap.h" +#include "common/archive.h" +#include "common/file.h" +#include "common/list.h" + +namespace ZVision { + +class sManager { +public: + sManager(const Common::String &root_path, int depth); + ~sManager(); + + void addFile(const Common::String &name, Common::Archive *arch); + void addDir(const Common::String &name); + void addPatch(const Common::String &src, const Common::String &dst); + + Common::File *openFile(const Common::String &name); + bool openFile(Common::File &file, const Common::String &name); + bool hasFile(const Common::String &name); + + void loadZix(const Common::String &name); + +private: + + void list_dir_recursive(Common::List<Common::String> &dir_list, const Common::FSNode &fs_node, int depth); + + struct Node { + Common::String name; + Common::Archive *arch; + }; + + Common::List<Common::String> dir_list; + + typedef Common::HashMap<Common::String, Node, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo> MatchList; + + Common::List<Common::Archive *> archList; + MatchList files; + + Common::String _root; + +private: +}; + +} + +#endif // SEARCH_MANAGER_H_INCLUDED |