-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfdwcache.h
executable file
·119 lines (82 loc) · 2.61 KB
/
fdwcache.h
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
/*
** Piglet Productions
**
** FileName : FDWCACHE.H
**
** Defines : FDWCachedNode <- FrontDoorWNode
**
** Description
**
** Simple cache system for FrontDoor Nodelist Writing code.
**
**
** Initial Coding : Colin Turner
**
** Date : March 1998
**
**
** Copyright applies on this file, and distribution may be limited.
*/
/*
** Revision 1.04
**
** For Revision history see FDNODE.HIS
**
*/
/*
** With thanks to Mats Wallin.
*/
//#define g_RunDebug
#include "fdnode.h"
#ifdef g_RunDebug
#include <g_log.h>
#endif // g_RunDebug
class FDWCachedNode;
class FDWCachedNode : public FrontDoorWNode{
// Data
protected :
unsigned int NFDXCacheSize;
unsigned int UFDXCacheSize;
long * NFDXPageNo;
long * UFDXPageNo;
unsigned long * NFDXHitNo;
unsigned long * UFDXHitNo;
unsigned long Counter;
NFDXPage * NFDXCache;
UFDXPage * UFDXCache;
unsigned char * NFDXDirtyMap;
unsigned char * UFDXDirtyMap;
// Services
// Implementation
public :
FDWCachedNode();
FDWCachedNode(const char FDNDATA *nldir, const char FDNDATA *nlext, unsigned short cc, long flags);
FDWCachedNode(const char FDNDATA *nldir, const char FDNDATA *nlext, unsigned short cc, long flags,
unsigned int nfdxCacheSize, unsigned int ufdxCacheSize);
virtual ~FDWCachedNode();
protected :
virtual void OnThaw();
virtual void OnFreeze();
FDNPREF virtual int FDNFUNC CheckCache(NFDXPage & tofill, long page);
FDNPREF virtual int FDNFUNC CommitCache(NFDXPage & value, long page);
FDNPREF virtual int FDNFUNC CheckCache(UFDXPage & tofill, long page);
FDNPREF virtual int FDNFUNC CommitCache(UFDXPage & value, long page);
void SetNFDXBit(long bit);
void ClearNFDXBit(long bit);
int GetNFDXBit(long bit);
void SetUFDXBit(long bit);
void ClearUFDXBit(long bit);
int GetUFDXBit(long bit);
int GetNFDXCacheEntryNo(long page);
int GetUFDXCacheEntryNo(long page);
void ConstructCache();
void DestroyCache();
void ConfigureDefaults();
public:
FDNPREF void FDNFUNC SetCacheSize(unsigned int nfdxCacheSize, unsigned int ufdxCacheSize);
// Debugging only
protected:
#ifdef g_RunDebug
g_Log Trace;
#endif
};