Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members | Tutorials
IFileArchive.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2010 Nikolaus Gebhardt/ Thomas Alten
2 // This file is part of the "Irrlicht Engine".
3 // For conditions of distribution and use, see copyright notice in irrlicht.h
4 
5 #ifndef __I_FILE_ARCHIVE_H_INCLUDED__
6 #define __I_FILE_ARCHIVE_H_INCLUDED__
7 
8 #include "IReadFile.h"
9 #include "IFileList.h"
10 
11 namespace irr
12 {
13 
14 namespace io
15 {
16 
19 {
20  FILESYSTEM_NATIVE = 0, // Native OS FileSystem
21  FILESYSTEM_VIRTUAL // Virtual FileSystem
22 };
23 
26 {
28  EFAT_ZIP = MAKE_IRR_ID('Z','I','P', 0),
29 
31  EFAT_GZIP = MAKE_IRR_ID('g','z','i','p'),
32 
34  EFAT_FOLDER = MAKE_IRR_ID('f','l','d','r'),
35 
37  EFAT_PAK = MAKE_IRR_ID('P','A','K', 0),
38 
40  EFAT_NPK = MAKE_IRR_ID('N','P','K', 0),
41 
43  EFAT_TAR = MAKE_IRR_ID('T','A','R', 0),
44 
46  EFAT_UNKNOWN = MAKE_IRR_ID('u','n','k','n')
47 };
48 
50 class IFileArchive : public virtual IReferenceCounted
51 {
52 public:
53 
55 
59  virtual IReadFile* createAndOpenFile(const path& filename) =0;
60 
62 
65  virtual IReadFile* createAndOpenFile(u32 index) =0;
66 
68 
70  virtual const IFileList* getFileList() const =0;
71 
73  virtual E_FILE_ARCHIVE_TYPE getType() const { return EFAT_UNKNOWN; }
74 
76 
81 };
82 
84 
88 class IArchiveLoader : public virtual IReferenceCounted
89 {
90 public:
92 
95  virtual bool isALoadableFileFormat(const path& filename) const =0;
96 
98 
101  virtual bool isALoadableFileFormat(io::IReadFile* file) const =0;
102 
104 
107  virtual bool isALoadableFileFormat(E_FILE_ARCHIVE_TYPE fileType) const =0;
108 
110 
114  virtual IFileArchive* createArchive(const path& filename, bool ignoreCase, bool ignorePaths) const =0;
115 
117 
121  virtual IFileArchive* createArchive(io::IReadFile* file, bool ignoreCase, bool ignorePaths) const =0;
122 };
123 
124 
125 } // end namespace io
126 } // end namespace irr
127 
128 #endif
129 

The Irrlicht Engine
The Irrlicht Engine Documentation © 2003-2010 by Nikolaus Gebhardt. Generated on Tue Jun 5 2012 17:57:11 by Doxygen (1.8.1)