OpenMW
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
manager.hpp
Go to the documentation of this file.
1 #ifndef OPENMW_COMPONENTS_RESOURCEMANAGER_H
2 #define OPENMW_COMPONENTS_RESOURCEMANAGER_H
3 
5 
6 #include <vector>
7 #include <map>
8 
9 namespace VFS
10 {
11 
12  class Archive;
13  class File;
14 
20  class Manager
21  {
22  public:
25  Manager(bool strict);
26 
27  ~Manager();
28 
29  // Empty the file index and unregister archives.
30  void reset();
31 
34  void addArchive(Archive* archive);
35 
37  void buildIndex();
38 
41  bool exists(const std::string& name) const;
42 
45  const std::map<std::string, File*>& getIndex() const;
46 
49  void normalizeFilename(std::string& name) const;
50 
54  Files::IStreamPtr get(const std::string& name) const;
55 
59  Files::IStreamPtr getNormalized(const std::string& normalizedName) const;
60 
61  private:
62  bool mStrict;
63 
64  std::vector<Archive*> mArchives;
65 
66  std::map<std::string, File*> mIndex;
67  };
68 
69 }
70 
71 #endif
~Manager()
Definition: manager.cpp:40
bool exists(const std::string &name) const
Definition: manager.cpp:82
bool mStrict
Definition: manager.hpp:62
Files::IStreamPtr getNormalized(const std::string &normalizedName) const
Definition: manager.cpp:74
std::shared_ptr< std::istream > IStreamPtr
Definition: constrainedfilestream.hpp:21
const std::map< std::string, File * > & getIndex() const
Definition: manager.cpp:90
std::vector< Archive * > mArchives
Definition: manager.hpp:64
void addArchive(Archive *archive)
Definition: manager.cpp:53
Definition: archive.hpp:19
std::map< std::string, File * > mIndex
Definition: manager.hpp:66
void reset()
Definition: manager.cpp:45
Manager(bool strict)
Definition: manager.cpp:34
The main class responsible for loading files from a virtual file system.
Definition: manager.hpp:20
void buildIndex()
Build the file index. Should be called when all archives have been registered.
Definition: manager.cpp:58
void normalizeFilename(std::string &name) const
Definition: manager.cpp:95
const char * name
Definition: crashcatcher.cpp:67