FIFE
2008.0
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
All
Classes
Namespaces
Functions
Variables
Enumerations
Enumerator
Pages
zipprovider.cpp
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
// Standard C++ library includes
23
#include <iostream>
24
25
// 3rd party library includes
26
27
// FIFE includes
28
// These includes are split up in two parts, separated by one empty line
29
// First block: files included from the FIFE root src directory
30
// Second block: files included from the same folder
31
#include "util/base/exception.h"
32
#include "vfs/vfs.h"
33
34
#include "zipprovider.h"
35
#include "zipsource.h"
36
37
namespace
FIFE {
38
bool
ZipProvider::isReadable
(
const
std::string& file)
const
{
39
// File name must have a .zip extension:
40
// TODO: Case sensitive?
41
if
(file.find(
".zip"
) == std::string::npos)
42
return
false
;
43
44
// File should exist:
45
if
(!getVFS()->
exists
(file))
46
return
false
;
47
48
// File should start with the bytes "PK":
49
// TODO: ...
50
51
return
true
;
52
}
53
54
FIFE::VFSSource
*
ZipProvider::createSource
(
const
std::string& file)
const
{
55
if
(
isReadable
(file))
56
return
new
ZipSource
(getVFS(), file);
57
else
58
throw
Exception
(
"File "
+ file +
" is not readable."
);
59
}
60
}
engine
core
vfs
zip
zipprovider.cpp
Generated on Wed Apr 10 2013 23:07:06 for FIFE by
1.8.3