Irrlicht 3D Engine
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
IFileArchive.h
Go to the documentation of this file.
1
// Copyright (C) 2002-2012 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
18
enum
EFileSystemType
19
{
20
FILESYSTEM_NATIVE
= 0,
// Native OS FileSystem
21
FILESYSTEM_VIRTUAL
// Virtual FileSystem
22
};
23
25
enum
E_FILE_ARCHIVE_TYPE
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_WAD
=
MAKE_IRR_ID
(
'W'
,
'A'
,
'D'
, 0),
47
49
EFAT_UNKNOWN
=
MAKE_IRR_ID
(
'u'
,
'n'
,
'k'
,
'n'
)
50
};
51
53
class
IFileArchive
:
public
virtual
IReferenceCounted
54
{
55
public
:
56
58
62
virtual
IReadFile
*
createAndOpenFile
(
const
path
& filename) =0;
63
65
68
virtual
IReadFile
*
createAndOpenFile
(
u32
index) =0;
69
71
73
virtual
const
IFileList
*
getFileList
()
const
=0;
74
76
virtual
E_FILE_ARCHIVE_TYPE
getType
()
const
{
return
EFAT_UNKNOWN
; }
77
79
83
core::stringc
Password
;
84
};
85
87
91
class
IArchiveLoader
:
public
virtual
IReferenceCounted
92
{
93
public
:
95
98
virtual
bool
isALoadableFileFormat
(
const
path
& filename)
const
=0;
99
101
104
virtual
bool
isALoadableFileFormat
(
io::IReadFile
* file)
const
=0;
105
107
110
virtual
bool
isALoadableFileFormat
(
E_FILE_ARCHIVE_TYPE
fileType)
const
=0;
111
113
117
virtual
IFileArchive
*
createArchive
(
const
path
& filename,
bool
ignoreCase,
bool
ignorePaths)
const
=0;
118
120
124
virtual
IFileArchive
*
createArchive
(
io::IReadFile
* file,
bool
ignoreCase,
bool
ignorePaths)
const
=0;
125
};
126
127
128
}
// end namespace io
129
}
// end namespace irr
130
131
#endif
132
Irrlicht Engine
Documentation © 2003-2012 by Nikolaus Gebhardt. Generated on Sun Apr 21 2019 20:57:27 for Irrlicht 3D Engine by
Doxygen
1.8.1.2