blob: 7532cd7ceffd4142464b69240998bef953c7b149 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
/*
* Copyright (C) 2007-2014 Xagasoft, All rights reserved.
*
* This file is part of the Xagasoft Build and is released under the
* terms of the license contained in the file LICENSE.
*/
#include "filemgr.h"
FileMgr::FileMgr() :
iNextId( 1 )
{
}
FileMgr::~FileMgr()
{
for( FileHash::iterator i = hFile.begin(); i; i++ )
{
delete *i;
}
}
int FileMgr::open( const Bu::String &sPath, int iMode )
{
hFile.insert( iNextId, new Bu::File( sPath, iMode ) );
return iNextId++;
}
Bu::File &FileMgr::get( int iId )
{
try
{
return *hFile.get( iId );
}
catch(...)
{
throw Bu::ExceptionBase("Invalid file handle accessed.");
}
}
void FileMgr::close( int iId )
{
try
{
delete hFile.get( iId );
hFile.erase( iId );
}
catch(...)
{
throw Bu::ExceptionBase("Invalid file handle accessed.");
}
}
|