FIFE
2008.0
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
All
Classes
Namespaces
Functions
Variables
Enumerations
Enumerator
Pages
zipsource.h
1
/***************************************************************************
2
* Copyright (C) 2005-2008 by the FIFE team *
3
* http://www.fifengine.de *
4
* This file is part of FIFE. *
5
* *
6
* FIFE is free software; you can redistribute it and/or *
7
* modify it under the terms of the GNU Lesser General Public *
8
* License as published by the Free Software Foundation; either *
9
* version 2.1 of the License, or (at your option) any later version. *
10
* *
11
* This library is distributed in the hope that it will be useful, *
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
14
* Lesser General Public License for more details. *
15
* *
16
* You should have received a copy of the GNU Lesser General Public *
17
* License along with this library; if not, write to the *
18
* Free Software Foundation, Inc., *
19
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
20
***************************************************************************/
21
22
#ifndef FIFE_ZIP_SOURCE_H
23
#define FIFE_ZIP_SOURCE_H
24
25
// Standard C++ library includes
26
//
27
#include <map>
28
29
// 3rd party library includes
30
//
31
32
// FIFE includes
33
// These includes are split up in two parts, separated by one empty line
34
// First block: files included from the FIFE root src directory
35
// Second block: files included from the same folder
36
#include "util/base/fife_stdint.h"
37
#include "vfs/vfssource.h"
38
39
namespace
FIFE {
44
class
ZipSource
:
public
VFSSource
{
45
public
:
46
ZipSource
(
VFS
* vfs,
const
std::string& zip_file);
47
~
ZipSource
();
48
50
// thread-safe, and will probably break if called from multiple
51
// threads at the same time.
52
bool
fileExists
(
const
std::string& file)
const
;
53
std::set<std::string>
listFiles
(
const
std::string& path)
const
;
54
std::set<std::string>
listDirectories
(
const
std::string& path)
const
;
55
56
virtual
RawData
*
open
(
const
std::string& path)
const
;
57
58
private
:
59
struct
s_data {
60
uint16_t comp;
61
uint32_t crc32;
62
std::string path;
63
unsigned
int
size_comp;
64
unsigned
int
size_real;
65
unsigned
int
offset;
66
};
67
68
typedef
std::map<std::string, s_data> type_files;
69
70
RawData
* m_zipfile;
71
type_files m_files;
72
73
void
readIndex();
74
bool
readFileToIndex();
75
};
76
77
}
//FIFE
78
79
#endif
engine
core
vfs
zip
zipsource.h
Generated on Fri Jun 8 2012 20:34:14 for FIFE by
1.8.1