source: main/trunk/greenstone2/build-src/packages/isis-gdl/IsisDef.h@ 26668

Last change on this file since 26668 was 26668, checked in by davidb, 8 years ago

Code changed from using WIN32 use to _MSC_VER (the difference being the former is set for any Windows based compiler, whilst the latter is specifically set by a MicroSoft Visual Studio compiler). Up to this point the difference was not important, however to allow for cross-compilation (using mingw under Linux to produce native Windows binaries) the difference is imporant, and needs to be used more carefully

  • Property svn:keywords set to Author Date Id Revision
File size: 3.7 KB
Line 
1/**********************************************************************
2 *
3 * IsisDef.h
4 * Copyright (C) 2003 UNESCO
5 *
6 * A component of the Greenstone digital library software
7 * from the New Zealand Digital Library Project at the
8 * University of Waikato, New Zealand.
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23 *
24 *********************************************************************/
25
26
27#ifndef __ISIS_DEFINITION_H__
28#define __ISIS_DEFINITION_H__
29
30// disable warning C4786: symbol greater than 255 character,
31// okay to ignore
32#pragma warning(disable: 4786)
33
34#ifndef __ISIS_TYPE_H__
35#include "IsisTypes.h"
36#endif
37
38#include <sstream>
39
40typedef std::string ustring;
41typedef std::string cstring;
42// typedef std::wstring awstring;
43typedef std::stringstream ustringstream;
44typedef std::stringstream cstringstream;
45typedef wchar_t WCHAR;
46
47
48const size_t INVALID_NPOS = ~(size_t)0;
49
50namespace FileSystem {
51 // Generic File access/open mode enumeration
52 enum AccessMode {
53 FILE_READONLY, // Open file with read access only
54 FILE_WRITEONLY, // Open file with write access only
55 FILE_READWRITE, // Open file with read and write access
56 FILE_CREATE, // Create the file if it does not exist
57 FILE_NO_CREATE, // Do not create the file if it does not exist
58 FILE_TRUNCATE, // Truncate the file
59 FILE_APPEND, // Append to the file
60 FILE_SHARE, // Enable file sharing (Platform specific)
61 FILE_EXCLUSIVE // Disable file sharing (Platform specific)
62 };
63
64
65 // Generic File seek mode enumeration
66 enum SeekMode {
67 FILE_SEEK_BEG, // Seek starting from the beginning of the file
68 FILE_SEEK_CUR, // Seek starting from the current location
69 FILE_SEEK_END // Seek starting from the end of the file
70 };
71};
72
73#ifndef __FILE_SYSTEM__
74#include "FileSystem.h"
75#endif
76
77#ifndef __FILE_BASE__
78#include "File.h"
79#endif
80
81#ifndef __ISIS_ERROR_H__
82#include "IErrors.h"
83#endif
84
85#ifdef _MSC_VER
86#ifndef __DEBUG_H__
87#define _DEBUG
88#define _CONSOLE
89#include "debug.h"
90#endif
91#endif
92
93#ifndef __ABSTRACT_ISISDB_H__
94#include "AbstractIsisDb.h"
95#endif
96
97#ifndef __ISISDB_H__
98#include "IsisDb.h"
99#endif
100
101
102#ifndef __MASTER_RECORD_H__
103#include "Master.h"
104#endif
105
106#ifndef __FDT_H__
107#include "Fdt.h"
108#endif
109
110
111enum { RecordDeleted=0, RecordUpdated=1, RecordCreated=2};
112enum { Active=0, LogicalyDeleted=1, PhysicalyDeleted=2,
113 EndOfFile=-1, NewRecord = 3 };
114
115
116
117
118// Class declarations for exceptions representing program errors.
119// This implementation is provided for use C++'s built-in exception
120// handling routines.
121
122class CIsisDbException {
123public:
124 int m_iError;
125 CIsisDbException(const int iError, const char* file_name, const long line_number)
126 {
127 m_iError = iError;
128#ifdef _MSC_VER
129 AssertFailed(isisExceptionMessage((IsisError) m_iError), file_name, line_number);
130#else
131 std::cout << isisExceptionMessage((IsisError) m_iError) << file_name
132 << " Line=" << line_number;
133#endif
134 }
135};
136
137
138#endif // __ISIS_DEFINITION_H__
Note: See TracBrowser for help on using the repository browser.