Branch data Line data Source code
1 : : //- Class: CubitFile
2 : : //- Description: Class with functions to work with files
3 : :
4 : : #include "CubitFile.hpp"
5 : : #include <errno.h>
6 : :
7 : 0 : CubitFile::CubitFile()
8 : 0 : : mFile(NULL), mError(0)
9 : : {
10 : 0 : }
11 : :
12 : 0 : CubitFile::CubitFile(const CubitString& file, const char* mode)
13 : 0 : : mFile(NULL)
14 : : {
15 : 0 : open(file, mode);
16 : 0 : }
17 : :
18 : 0 : CubitFile::~CubitFile()
19 : : {
20 : 0 : close();
21 [ # # ]: 0 : }
22 : :
23 : 0 : bool CubitFile::open(const CubitString& file, const char* mode)
24 : : {
25 : 0 : close();
26 : :
27 : 0 : this->mError = 0;
28 : :
29 : : #ifdef _WIN32
30 : : this->mFile = _wfopen(CubitString::toUtf16(file).c_str(), CubitString::toUtf16(mode).c_str());
31 : : #else
32 : 0 : this->mFile = fopen(file.c_str(), mode);
33 : : #endif
34 [ # # ]: 0 : if(!this->mFile)
35 : : {
36 : 0 : this->mError = errno;
37 : : }
38 : :
39 : 0 : return mError == 0;
40 : : }
41 : :
42 : 0 : void CubitFile::close()
43 : : {
44 [ # # ]: 0 : if(mFile)
45 : : {
46 : 0 : fclose(mFile);
47 : : }
48 : 0 : mFile = NULL;
49 : 0 : mError = 0;
50 : 0 : }
51 : :
52 : 0 : FILE* CubitFile::file() const
53 : : {
54 : 0 : return this->mFile;
55 : : }
56 : :
57 : 0 : CubitFile::operator bool () const
58 : : {
59 : 0 : return this->mFile != NULL;
60 : : }
61 : :
62 : 0 : int CubitFile::error()
63 : : {
64 : 0 : return this->mError;
65 : : }
66 : :
|