Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/new_class_id/src/lib/util/loading/new_resource_manager.h @ 9798

Last change on this file since 9798 was 9798, checked in by bensch, 18 years ago

modular KeepLevel implementation

File size: 2.1 KB
Line 
1/*!
2 * @file new_resource_manager.h
3 */
4
5#ifndef _NEW_RESOURCE_MANAGER_H
6#define _NEW_RESOURCE_MANAGER_H
7
8#include "resource.h"
9#include "filesys/file.h"
10#include "filesys/directory.h"
11
12class NewResourceManager : public BaseObject
13{
14  ObjectListDeclaration(NewResourceManager);
15public:
16  /** @returns a Pointer to the only object of this Class */
17  inline static NewResourceManager* getInstance() { if (!_singletonRef) _singletonRef = new NewResourceManager();  return _singletonRef; };
18  inline static void deleteInstance() { if (_singletonRef) delete _singletonRef; };
19
20
21  void setMainGlobalPath(const Directory& directory);
22  void addGlobalPath(const Directory& directory);
23
24  bool addResourcePath(const std::string& resourceName, const std::string& pathName);
25  bool addResourceSubPath(const std::string& resourceName, const std::string& pathName);
26  void registerType(Resources::Type* type);
27
28  unsigned int addKeepLevelName(const std::string& keepLevelName);
29  unsigned int getKeepLevelID(const std::string& keepLevelName) const;
30  const std::string& getKeepLevelID(unsigned int keepLevelID) const;
31
32  const std::vector<Resources::Type*> resourceTypes() const { return _resourceTypes; };
33  const Directory& mainGlobalPath() const { return _mainGlobalPath; };
34  /** @returns all global paths without mainGlobalPath */
35  const std::vector<Directory>& globalPaths() const { return _globalPaths; };
36
37
38  bool checkFileInMainPath(const File& fileInside);
39
40  bool unloadAllByPriority();
41
42  void debug() const;
43
44  // utility functions for handling files in and around the data-directory
45  static std::string getFullName(const std::string& fileName);
46  static bool isInDataDir(const std::string& fileName);
47private:
48  NewResourceManager();
49  virtual ~NewResourceManager();
50
51private:
52  static NewResourceManager*         _singletonRef;       //!< singleton Reference
53
54  std::vector<Resources::Type*>      _resourceTypes;
55  //! GLOBALS
56  Directory                          _mainGlobalPath;
57  std::vector<Directory>             _globalPaths;
58
59  std::vector<std::string>           _keepLevelNames;
60};
61
62#endif /* _RESOURCE_MANAGER_H */
Note: See TracBrowser for help on using the repository browser.