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

Last change on this file was 34961, checked in by anupama, 3 years ago

Merging Dr Bainbridge's mg-long related updates for IsisGdl that got IsisGdl working on 64 bit linux, and on new Macs that were no longer backwards compatible with 32 bit. Tested only to compile and run (CDS-ISIS tutorial) on 64 bit linux. Merged version of code untested on Mac, though it was used to generate the static 64 bit Mac IsisGdl before. Also untested on 32 bit linux, but Dr Bainbridge had earlier indicated it was backwards. At present the release kit code is still grabbing the statically built IsisGdl (for 32 and nowadayas also 64 bit Mac/Linux) as before and including in binaries. This can be changed later. These code changes are for locally compiling up GS from SVN with an IsisGdl built on the local machine meant to work on that local machine.

  • 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 mg_s_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.