Xbase64 Class Library
3.1.2
Main Page
Classes
Files
File List
File Members
xbase64
xblock.h
Go to the documentation of this file.
1
/* xblock.h
2
3
Xbase project source code
4
5
This file conatains a header file for the xbLock virtual objects which
6
is used for controlling file and record locking. Record and file
7
locking has been rewritten in version 3.
8
9
Copyright (C) 1997,2003 Gary A Kunkel
10
11
This program is free software; you can redistribute it and/or modify
12
it under the terms of the GNU Lesser General Public License as published by
13
the Free Software Foundation; either version 2 of the License, or
14
(at your option) any later version.
15
16
This program is distributed in the hope that it will be useful,
17
but WITHOUT ANY WARRANTY; without even the implied warranty of
18
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
GNU Lesser General Public License for more details.
20
You should have received a copy of the GNU Lesser General Public License
21
along with this program; if not, write to the Free Software
22
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23
24
25
Contact:
26
27
Email:
28
29
xdb-devel@lists.sourceforge.net
30
xdb-users@lists.sourceforge.net
31
32
33
Regular Mail:
34
35
XBase Support
36
149C South Main St
37
Keller Texas, 76248
38
USA
39
*/
40
44
#ifndef __XB_XBLOCK_H__
45
#define __XB_XBLOCK_H__
46
47
#ifdef __GNU_LesserG__
48
#pragma interface
49
#endif
50
51
#ifdef XB_LOCKING_ON
52
54
57
class
XBDLLEXPORT
xbLock
58
{
59
public
:
60
xbLock(
xbDbf
* dbf );
61
virtual
~xbLock();
62
virtual
xbShort
LockTableHeader(
xbShort
LockType ) = 0;
63
virtual
xbShort
LockTable(
xbShort
LockType ) = 0;
64
virtual
xbShort
LockRecord(
xbShort
LockType,
xbULong
RecNo,
xbOffT
len ) = 0;
65
virtual
xbShort
LockMemo(
xbShort
LockType ) = 0;
66
virtual
xbShort
LockIndex(
xbShort
LockType ) = 0;
67
virtual
xbShort
UnlockAll() = 0;
68
virtual
xbShort
LockInit() {
return
XB_NO_ERROR
; }
69
70
protected
:
71
xbDbf
*dbf;
72
xbShort
HdrLockCnt;
73
xbShort
TableLockCnt;
74
xbShort
MemoLockCnt;
75
xbShort
IndexLockCnt;
76
xbShort
LockFile(
int
fn,
xbShort
LockType,
xbOffT
lockLen );
77
};
78
79
class
XBDLLEXPORT
xbaseLock : xbLock
80
{
81
public
:
82
xbaseLock(
xbDbf
* pdbf );
83
virtual
~xbaseLock() {}
84
virtual
xbShort
LockTableHeader(
xbShort
LockType );
85
virtual
xbShort
LockTable(
xbShort
LockType );
86
virtual
xbShort
LockRecord(
xbShort
LockType,
xbULong
RecNo,
xbOffT
len );
87
virtual
xbShort
LockMemo(
xbShort
LockType );
88
virtual
xbShort
LockIndex(
xbShort
LockType );
89
virtual
xbShort
UnlockAll();
90
virtual
xbShort
LockInit();
91
private
:
92
FILE *lfh;
/* lock file handle */
93
94
};
95
96
class
XBDLLEXPORT
dbaseLock : xbLock
97
{
98
public
:
99
dbaseLock(
xbDbf
* pdbf );
100
virtual
~dbaseLock() {}
101
virtual
xbShort
LockTableHeader(
xbShort
LockType );
102
virtual
xbShort
LockTable(
xbShort
LockType );
103
virtual
xbShort
LockRecord(
xbShort
LockType,
xbULong
RecNo,
xbOffT
len );
104
virtual
xbShort
LockMemo(
xbShort
LockType );
105
virtual
xbShort
LockIndex(
xbShort
LockType );
106
virtual
xbShort
UnlockAll();
107
};
108
109
110
class
XBDLLEXPORT
clipperLock : xbLock
111
{
112
public
:
113
clipperLock(
xbDbf
* pdbf );
114
virtual
~clipperLock() {}
115
virtual
xbShort
LockTableHeader(
xbShort
LockType );
116
virtual
xbShort
LockTable(
xbShort
LockType );
117
virtual
xbShort
LockRecord(
xbShort
LockType,
xbULong
RecNo,
xbOffT
len );
118
virtual
xbShort
LockMemo(
xbShort
LockType );
119
virtual
xbShort
LockIndex(
xbShort
LockType );
120
virtual
xbShort
UnlockAll();
121
};
122
123
class
XBDLLEXPORT
foxproLock : xbLock
124
{
125
public
:
126
foxproLock(
xbDbf
* pdbf );
127
virtual
~foxproLock() {}
128
virtual
xbShort
LockTableHeader(
xbShort
LockType );
129
virtual
xbShort
LockTable(
xbShort
LockType );
130
virtual
xbShort
LockRecord(
xbShort
LockType,
xbULong
RecNo,
xbOffT
len );
131
virtual
xbShort
LockMemo(
xbShort
LockType );
132
virtual
xbShort
LockIndex(
xbShort
LockType );
133
virtual
xbShort
UnlockAll();
134
};
135
136
class
XBDLLEXPORT
noLock : xbLock
137
{
138
public
:
139
noLock(
xbDbf
* pdbf ) : xbLock( pdbf ) {};
140
virtual
~noLock() {}
141
virtual
xbShort
LockTableHeader(
xbShort
LockType )
142
{
return
XB_NO_ERROR
; }
143
virtual
xbShort
LockTable(
xbShort
LockType )
144
{
return
XB_NO_ERROR
; }
145
virtual
xbShort
LockRecord(
xbShort
LockType,
xbULong
RecNo )
146
{
return
XB_NO_ERROR
; }
147
virtual
xbShort
LockMemo(
xbShort
LockType )
148
{
return
XB_NO_ERROR
; }
149
virtual
xbShort
LockIndex(
xbShort
LockType )
150
{
return
XB_NO_ERROR
; }
151
virtual
xbShort
UnlockAll()
152
{
return
XB_NO_ERROR
; }
153
};
154
155
156
157
158
#endif // XB_LOCKING_ON
159
#endif // __XB_XBLOCK_H__
Generated by
1.8.3.1