WoW Model Viewer
Your premiere tool for viewing, equipping and animating World of Warcraft models.
Loading...
Searching...
No Matches
HardDriveFile.cpp
Go to the documentation of this file.
1
#include "
HardDriveFile.h
"
2
3
#include "
Logger.h
"
4
5
HardDriveFile::HardDriveFile
(std::string path, std::string real,
int
id
)
6
:
CASCFile
(std::move(path), id), opened(false), realpath(std::move(real)), file(nullptr)
7
{
8
}
9
10
HardDriveFile::~HardDriveFile
()
11
{
12
close
();
13
}
14
15
bool
HardDriveFile::openFile
()
16
{
17
file
=
new
std::ifstream(
realpath
, std::ios::binary);
18
19
if
(!
file
->is_open())
20
{
21
LOG_ERROR
<<
"Opening"
<<
filepath
<<
"failed."
;
22
delete
file
;
23
file
=
nullptr
;
24
return
false
;
25
}
26
27
opened
=
true
;
28
return
true
;
29
}
30
31
bool
HardDriveFile::isAlreadyOpened
()
32
{
33
if
(
opened
)
34
return
true
;
35
else
36
return
false
;
37
}
38
39
bool
HardDriveFile::getFileSize
(
unsigned
long
long
& s)
40
{
41
if
(!
file
|| !
file
->is_open())
42
return
false
;
43
44
const
auto
cur =
file
->tellg();
45
file
->seekg(0, std::ios::end);
46
s =
static_cast<
unsigned
long
long
>
(
file
->tellg());
47
file
->seekg(cur);
48
return
true
;
49
}
50
51
unsigned
long
HardDriveFile::readFile
()
52
{
53
if
(!
file
|| !
file
->is_open())
54
return
0;
55
56
file
->seekg(0, std::ios::beg);
57
file
->read(
reinterpret_cast<
char
*
>
(
buffer
),
size
);
58
const
unsigned
long
s =
static_cast<
unsigned
long
>
(
file
->gcount());
59
file
->close();
60
delete
file
;
61
file
=
nullptr
;
62
return
s;
63
}
64
65
bool
HardDriveFile::doPostCloseOperation
()
66
{
67
#ifdef DEBUG_READ
68
LOG_INFO
<< __FUNCTION__ <<
"Closing"
<<
filepath
;
69
#endif
70
if
(
opened
)
71
opened
=
false
;
72
73
return
true
;
74
}
HardDriveFile.h
Logger.h
LOG_ERROR
#define LOG_ERROR
Definition
Logger.h:11
LOG_INFO
#define LOG_INFO
Definition
Logger.h:10
CASCFile
GameFile implementation that reads from a CASC storage archive.
Definition
CASCFile.h:20
GameFile::filepath
std::string filepath
Definition
GameFile.h:84
GameFile::buffer
unsigned char * buffer
Definition
GameFile.h:82
GameFile::size
unsigned long long size
Definition
GameFile.h:83
GameFile::close
bool close()
Close the file and release the internal buffer.
Definition
GameFile.cpp:74
HardDriveFile::opened
bool opened
Definition
HardDriveFile.h:30
HardDriveFile::~HardDriveFile
~HardDriveFile()
Definition
HardDriveFile.cpp:10
HardDriveFile::isAlreadyOpened
virtual bool isAlreadyOpened()
Definition
HardDriveFile.cpp:31
HardDriveFile::getFileSize
virtual bool getFileSize(unsigned long long &s)
Definition
HardDriveFile.cpp:39
HardDriveFile::readFile
virtual unsigned long readFile()
Definition
HardDriveFile.cpp:51
HardDriveFile::openFile
virtual bool openFile()
Definition
HardDriveFile.cpp:15
HardDriveFile::HardDriveFile
HardDriveFile(std::string path, std::string realpath, int id=-1)
Definition
HardDriveFile.cpp:5
HardDriveFile::doPostCloseOperation
virtual bool doPostCloseOperation()
Definition
HardDriveFile.cpp:65
HardDriveFile::realpath
std::string realpath
Definition
HardDriveFile.h:31
HardDriveFile::file
std::ifstream * file
Definition
HardDriveFile.h:32
Source
WoW
CASC
HardDriveFile.cpp
Generated by
1.9.8