blob: f0a7055a93184b980806fb4a4b7de45d8f6f0949 (
plain)
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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
|
\hypertarget{xbssv_8h_source}{}\doxysection{xbssv.\+h}
\label{xbssv_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbssv.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbssv.h}}
\mbox{\hyperlink{xbssv_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{comment}{/* xbssv.h}}
\DoxyCodeLine{2 \textcolor{comment}{}}
\DoxyCodeLine{3 \textcolor{comment}{XBase64 Software Library}}
\DoxyCodeLine{4 \textcolor{comment}{}}
\DoxyCodeLine{5 \textcolor{comment}{Copyright (c) 1997,2003,2014,2022 Gary A Kunkel}}
\DoxyCodeLine{6 \textcolor{comment}{}}
\DoxyCodeLine{7 \textcolor{comment}{The xb64 software library is covered under the terms of the GPL Version 3, 2007 license.}}
\DoxyCodeLine{8 \textcolor{comment}{}}
\DoxyCodeLine{9 \textcolor{comment}{Email Contact:}}
\DoxyCodeLine{10 \textcolor{comment}{}}
\DoxyCodeLine{11 \textcolor{comment}{ XDB-\/devel@lists.sourceforge.net}}
\DoxyCodeLine{12 \textcolor{comment}{ XDB-\/users@lists.sourceforge.net}}
\DoxyCodeLine{13 \textcolor{comment}{}}
\DoxyCodeLine{14 \textcolor{comment}{*/}}
\DoxyCodeLine{15 }
\DoxyCodeLine{16 }
\DoxyCodeLine{17 \textcolor{preprocessor}{\#ifndef \_\_XB\_XBSSV\_H\_\_}}
\DoxyCodeLine{18 \textcolor{preprocessor}{\#define \_\_XB\_XBSSV\_H\_\_}}
\DoxyCodeLine{19 }
\DoxyCodeLine{20 \textcolor{preprocessor}{\#ifdef CMAKE\_COMPILER\_IS\_GNUCC}}
\DoxyCodeLine{21 \textcolor{preprocessor}{\#pragma interface}}
\DoxyCodeLine{22 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{23 }
\DoxyCodeLine{24 }
\DoxyCodeLine{25 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespacexb}{xb}}\{}
\DoxyCodeLine{26 }
\DoxyCodeLine{27 \textcolor{keyword}{class }XBDLLEXPORT \mbox{\hyperlink{classxb_1_1xbXBase}{xbXBase}};}
\DoxyCodeLine{28 }
\DoxyCodeLine{30 \textcolor{keyword}{struct }XBDLLEXPORT xbErrorMessage\{}
\DoxyCodeLine{31 xbInt16 iErrorNo;}
\DoxyCodeLine{32 \textcolor{keyword}{const} \textcolor{keywordtype}{char} *sErrorText;}
\DoxyCodeLine{33 \};}
\DoxyCodeLine{35 }
\DoxyCodeLine{36 }
\DoxyCodeLine{38 }
\DoxyCodeLine{49 \textcolor{comment}{// By design, DBase allows mutliple records in a table all having the same key, but only one entry in a unique index}}
\DoxyCodeLine{50 \textcolor{comment}{// XB\_HALT\_ON\_DUP\_KEY tells the library to not allow appending records which generate duplicate keys in a unique index}}
\DoxyCodeLine{51 \textcolor{comment}{//}}
\DoxyCodeLine{52 \textcolor{preprocessor}{\#if defined (XB\_NDX\_SUPPORT) || defined (XB\_MDX\_SUPPORT)}}
\DoxyCodeLine{53 \textcolor{preprocessor}{\#define XB\_HALT\_ON\_DUPKEY 0}}
\DoxyCodeLine{54 \textcolor{preprocessor}{\#define XB\_EMULATE\_DBASE 1}}
\DoxyCodeLine{55 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{56 }
\DoxyCodeLine{57 }
\DoxyCodeLine{58 }
\DoxyCodeLine{59 \textcolor{keyword}{class }XBDLLEXPORT \mbox{\hyperlink{classxb_1_1xbSsv}{xbSsv}}\{}
\DoxyCodeLine{60 \textcolor{keyword}{public}:}
\DoxyCodeLine{61 \mbox{\hyperlink{classxb_1_1xbSsv}{xbSsv}}();}
\DoxyCodeLine{62 \textcolor{keyword}{const} \textcolor{keyword}{static} \textcolor{keywordtype}{char} *ErrorCodeText[];}
\DoxyCodeLine{63 }
\DoxyCodeLine{64 \textcolor{keywordtype}{void} DisplayError ( xbInt16 ErrorCode ) \textcolor{keyword}{const};}
\DoxyCodeLine{65 \mbox{\hyperlink{classxb_1_1xbString}{xbString}}\& GetDefaultDateFormat () \textcolor{keyword}{const};}
\DoxyCodeLine{66 \mbox{\hyperlink{classxb_1_1xbString}{xbString}}\& GetDataDirectory () \textcolor{keyword}{const};}
\DoxyCodeLine{67 xbInt16 GetEndianType () \textcolor{keyword}{const};}
\DoxyCodeLine{68 }
\DoxyCodeLine{69 \textcolor{keyword}{const} \textcolor{keywordtype}{char} *GetErrorMessage ( xbInt16 ErrorCode ) \textcolor{keyword}{const};}
\DoxyCodeLine{70 \textcolor{keywordtype}{void} SetDataDirectory ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sDataDirectory );}
\DoxyCodeLine{71 \textcolor{keywordtype}{void} SetDefaultDateFormat ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sDefaultDateFormat );}
\DoxyCodeLine{72 }
\DoxyCodeLine{73 }
\DoxyCodeLine{74 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} BitSet ( \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} c, xbInt16 iBitNo ) \textcolor{keyword}{const};}
\DoxyCodeLine{75 \textcolor{preprocessor}{ \#ifdef XB\_DEBUG\_SUPPORT}}
\DoxyCodeLine{76 \textcolor{keywordtype}{void} BitDump ( \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} c ) \textcolor{keyword}{const};}
\DoxyCodeLine{77 \textcolor{keywordtype}{void} BitDump ( \textcolor{keywordtype}{char} c ) \textcolor{keyword}{const};}
\DoxyCodeLine{78 \textcolor{preprocessor}{ \#endif}}
\DoxyCodeLine{79 }
\DoxyCodeLine{80 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} GetDefaultAutoCommit () \textcolor{keyword}{const};}
\DoxyCodeLine{81 \textcolor{keywordtype}{void} SetDefaultAutoCommit ( \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bDefaultAutoCommit );}
\DoxyCodeLine{82 }
\DoxyCodeLine{83 \mbox{\hyperlink{classxb_1_1xbString}{xbString}}\& GetDefaultLogDirectory () \textcolor{keyword}{const};}
\DoxyCodeLine{84 \mbox{\hyperlink{classxb_1_1xbString}{xbString}}\& GetDefaultLogFileName () \textcolor{keyword}{const};}
\DoxyCodeLine{85 \textcolor{keywordtype}{void} SetDefaultLogDirectory ( \textcolor{keyword}{const} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \&sDefaultLogDirectory );}
\DoxyCodeLine{86 }
\DoxyCodeLine{87 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} GetMultiUser () \textcolor{keyword}{const};}
\DoxyCodeLine{88 \textcolor{keywordtype}{void} SetMultiUser ( \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bMultiUser );}
\DoxyCodeLine{89 }
\DoxyCodeLine{90 \textcolor{preprocessor}{ \#if defined (XB\_NDX\_SUPPORT) || defined (XB\_MDX\_SUPPORT)}}
\DoxyCodeLine{91 xbInt16 GetUniqueKeyOpt () \textcolor{keyword}{const};}
\DoxyCodeLine{92 xbInt16 SetUniqueKeyOpt ( xbInt16 iUniqueKeyOpt );}
\DoxyCodeLine{93 \textcolor{preprocessor}{ \#endif}}
\DoxyCodeLine{94 }
\DoxyCodeLine{95 \textcolor{preprocessor}{ \#ifdef XB\_LOCKING\_SUPPORT}}
\DoxyCodeLine{96 xbInt16 GetDefaultLockRetries () \textcolor{keyword}{const};}
\DoxyCodeLine{97 \textcolor{keywordtype}{void} SetDefaultLockRetries ( xbInt16 iRetryCount );}
\DoxyCodeLine{98 xbInt32 GetDefaultLockWait () \textcolor{keyword}{const};}
\DoxyCodeLine{99 \textcolor{keywordtype}{void} SetDefaultLockWait ( xbInt32 lRetryWait );}
\DoxyCodeLine{100 xbInt16 GetDefaultLockFlavor () \textcolor{keyword}{const};}
\DoxyCodeLine{101 \textcolor{keywordtype}{void} SetDefaultLockFlavor ( xbInt16 iLockFlavor );}
\DoxyCodeLine{102 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} GetDefaultAutoLock () \textcolor{keyword}{const};}
\DoxyCodeLine{103 \textcolor{keywordtype}{void} SetDefaultAutoLock ( \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bAutoLock );}
\DoxyCodeLine{104 \textcolor{keywordtype}{void} EnableDefaultAutoLock ();}
\DoxyCodeLine{105 \textcolor{keywordtype}{void} DisableDefaultAutoLock ();}
\DoxyCodeLine{106 \textcolor{preprocessor}{ \#endif}}
\DoxyCodeLine{107 }
\DoxyCodeLine{108 \textcolor{preprocessor}{ \#ifdef XB\_MDX\_SUPPORT}}
\DoxyCodeLine{109 xbInt16 GetCreateMdxBlockSize() \textcolor{keyword}{const};}
\DoxyCodeLine{110 xbInt16 SetCreateMdxBlockSize( xbInt16 ulBlockSize );}
\DoxyCodeLine{111 \textcolor{preprocessor}{ \#endif}}
\DoxyCodeLine{112 }
\DoxyCodeLine{113 \textcolor{keyword}{protected}:}
\DoxyCodeLine{114 }
\DoxyCodeLine{115 \textcolor{keywordtype}{void} SetEndianType ();}
\DoxyCodeLine{116 }
\DoxyCodeLine{117 \textcolor{keyword}{static} xbInt16 \mbox{\hyperlink{classxb_1_1xbSsv_a5849e813f5e8e1cd180f0366637adbf3}{iEndianType}}; \textcolor{comment}{// B=Big Endian L=Little Endian}}
\DoxyCodeLine{118 \textcolor{keyword}{static} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} \mbox{\hyperlink{classxb_1_1xbSsv_a9dec3164c3b264882df634915ecf21da}{sNullString}}; \textcolor{comment}{// Null String}}
\DoxyCodeLine{119 }
\DoxyCodeLine{120 }
\DoxyCodeLine{121 \textcolor{keyword}{private}:}
\DoxyCodeLine{122 }
\DoxyCodeLine{123 \textcolor{keyword}{static} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} sDefaultDateFormat;}
\DoxyCodeLine{124 \textcolor{keyword}{static} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} sDataDirectory; \textcolor{comment}{//Data file directory}}
\DoxyCodeLine{125 }
\DoxyCodeLine{126 \textcolor{preprocessor}{ \#ifdef XB\_LOGGING\_SUPPORT}}
\DoxyCodeLine{127 \textcolor{keyword}{static} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} sDefaultLogDirectory; \textcolor{comment}{//Default location to store log files}}
\DoxyCodeLine{128 \textcolor{keyword}{static} \mbox{\hyperlink{classxb_1_1xbString}{xbString}} sDefaultLogFileName; \textcolor{comment}{//Default LogFileName}}
\DoxyCodeLine{129 \textcolor{preprocessor}{ \#endif}}
\DoxyCodeLine{130 }
\DoxyCodeLine{131 \textcolor{keyword}{static} xbInt16 iDefaultFileVersion; \textcolor{comment}{// 3 = DBase 3}}
\DoxyCodeLine{132 \textcolor{comment}{// 4 = DBase 4}}
\DoxyCodeLine{133 \textcolor{comment}{// default version used in CreateTable command}}
\DoxyCodeLine{134 \textcolor{comment}{// can be over ridden at the Xbase level, or table level}}
\DoxyCodeLine{135 \textcolor{comment}{// Different versions can be open simultaneously}}
\DoxyCodeLine{136 }
\DoxyCodeLine{137 \textcolor{keyword}{static} \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bDefaultAutoCommit; \textcolor{comment}{// Default dbf auto commit switch}}
\DoxyCodeLine{138 }
\DoxyCodeLine{139 \textcolor{keyword}{static} \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bMultiUser; \textcolor{comment}{// True if multi user mode is turned on}}
\DoxyCodeLine{140 \textcolor{comment}{// Turn this off for better performance in single user mode}}
\DoxyCodeLine{141 \textcolor{comment}{// This needs to be turned on or off before any data tables are opened}}
\DoxyCodeLine{142 \textcolor{comment}{// turning this on after tables are opened, can result in out of date}}
\DoxyCodeLine{143 \textcolor{comment}{// file buffers if multiple users are sharing the files}}
\DoxyCodeLine{144 }
\DoxyCodeLine{145 \textcolor{preprocessor}{\#ifdef XB\_LOCKING\_SUPPORT}}
\DoxyCodeLine{146 \textcolor{keyword}{static} xbInt32 lDefaultLockWait; \textcolor{comment}{// Number of milliseconds between lock retries}}
\DoxyCodeLine{147 \textcolor{keyword}{static} xbInt16 iDefaultLockRetries; \textcolor{comment}{// Number of times to retry a lock before conceding}}
\DoxyCodeLine{148 \textcolor{keyword}{static} xbInt16 bDefaultAutoLock; \textcolor{comment}{// Autolocking enabled?}}
\DoxyCodeLine{149 \textcolor{keyword}{static} xbInt16 iDefaultLockFlavor; \textcolor{comment}{// 1 = DBase}}
\DoxyCodeLine{150 \textcolor{comment}{// 2 = Clipper -\/ not developed yet}}
\DoxyCodeLine{151 \textcolor{comment}{// 3 = FoxPro -\/ not developed yet}}
\DoxyCodeLine{152 \textcolor{comment}{// 9 = Xbase64 -\/ not developed yet}}
\DoxyCodeLine{153 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{154 }
\DoxyCodeLine{155 }
\DoxyCodeLine{156 }
\DoxyCodeLine{157 \textcolor{preprocessor}{\#if defined (XB\_NDX\_SUPPORT) || defined (XB\_MDX\_SUPPORT)}}
\DoxyCodeLine{158 }
\DoxyCodeLine{159 \textcolor{keyword}{static} xbInt16 iUniqueKeyOpt;}
\DoxyCodeLine{160 }
\DoxyCodeLine{161 \textcolor{comment}{// is one of:}}
\DoxyCodeLine{162 \textcolor{comment}{// XB\_HALT\_ON\_DUPKEY}}
\DoxyCodeLine{163 \textcolor{comment}{// XB\_EMULATE\_DBASE}}
\DoxyCodeLine{164 }
\DoxyCodeLine{165 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{166 }
\DoxyCodeLine{167 }
\DoxyCodeLine{168 \textcolor{preprocessor}{\#ifdef XB\_MDX\_SUPPORT}}
\DoxyCodeLine{169 \textcolor{keyword}{static} xbInt16 iCreateMdxBlockSize; \textcolor{comment}{// System level Mdx Block Size}}
\DoxyCodeLine{170 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// XB\_MDX\_SUPPORT}}
\DoxyCodeLine{171 }
\DoxyCodeLine{172 }
\DoxyCodeLine{173 }
\DoxyCodeLine{174 \};}
\DoxyCodeLine{175 }
\DoxyCodeLine{176 \} \textcolor{comment}{/* namespace xb */}}
\DoxyCodeLine{177 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_\_XB\_XBSSV\_H\_\_ */}\textcolor{preprocessor}{}}
\end{DoxyCode}
|