diff options
Diffstat (limited to 'docs/doxygen/latex/xbmemo_8h_source.tex')
-rw-r--r-- | docs/doxygen/latex/xbmemo_8h_source.tex | 186 |
1 files changed, 186 insertions, 0 deletions
diff --git a/docs/doxygen/latex/xbmemo_8h_source.tex b/docs/doxygen/latex/xbmemo_8h_source.tex new file mode 100644 index 0000000..a948e02 --- /dev/null +++ b/docs/doxygen/latex/xbmemo_8h_source.tex @@ -0,0 +1,186 @@ +\hypertarget{xbmemo_8h_source}{}\doxysection{xbmemo.\+h} +\label{xbmemo_8h_source}\index{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbmemo.h@{/mnt/1Tdata/xbase/xbase64-\/4.0.2/src/include/xbmemo.h}} +\mbox{\hyperlink{xbmemo_8h}{Go to the documentation of this file.}} +\begin{DoxyCode}{0} +\DoxyCodeLine{1 \textcolor{comment}{/* xbmemo.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\_XBMEMO\_H\_\_}} +\DoxyCodeLine{18 \textcolor{preprocessor}{\#define \_\_XB\_XBMEMO\_H\_\_}} +\DoxyCodeLine{19 } +\DoxyCodeLine{20 } +\DoxyCodeLine{21 \textcolor{comment}{// dont use "{}\#pragma interface"{} with abstract classes}} +\DoxyCodeLine{22 \textcolor{comment}{// \#ifdef CMAKE\_COMPILER\_IS\_GNUCC}} +\DoxyCodeLine{23 \textcolor{comment}{// \#pragma interface}} +\DoxyCodeLine{24 \textcolor{comment}{// \#endif}} +\DoxyCodeLine{25 } +\DoxyCodeLine{26 \textcolor{preprocessor}{\#ifdef XB\_MEMO\_SUPPORT}} +\DoxyCodeLine{27 } +\DoxyCodeLine{28 } +\DoxyCodeLine{29 } +\DoxyCodeLine{30 } +\DoxyCodeLine{31 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespacexb}{xb}}\{} +\DoxyCodeLine{32 } +\DoxyCodeLine{34 } +\DoxyCodeLine{55 \textcolor{keyword}{class }XBDLLEXPORT xbMemo : \textcolor{keyword}{public} xbFile \{} +\DoxyCodeLine{56 \textcolor{keyword}{public}:} +\DoxyCodeLine{57 } +\DoxyCodeLine{58 xbMemo( \mbox{\hyperlink{namespacexb_ab2eae4b4732466698a7fdd89d77ba53b}{xbDbf}} *dbf, xbString \textcolor{keyword}{const} \&sFileName );} +\DoxyCodeLine{59 } +\DoxyCodeLine{60 \textcolor{comment}{/* virtual methods */}} +\DoxyCodeLine{61 \textcolor{keyword}{virtual} \string~xbMemo();} +\DoxyCodeLine{62 \textcolor{keyword}{virtual} xbInt16 Abort () = 0;} +\DoxyCodeLine{63 \textcolor{keyword}{virtual} xbInt16 CloseMemoFile ();} +\DoxyCodeLine{64 \textcolor{keyword}{virtual} xbInt16 Commit () = 0;} +\DoxyCodeLine{65 } +\DoxyCodeLine{66 \textcolor{preprocessor}{ \#ifdef XB\_LOCKING\_SUPPORT}} +\DoxyCodeLine{67 \textcolor{keyword}{virtual} xbInt16 LockMemo ( xbInt16 iLockFunction );} +\DoxyCodeLine{68 \textcolor{keyword}{virtual} \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} GetMemoLocked () \textcolor{keyword}{const};} +\DoxyCodeLine{69 \textcolor{preprocessor}{ \#endif}} +\DoxyCodeLine{70 } +\DoxyCodeLine{71 \textcolor{comment}{/* pure virtual methods */}} +\DoxyCodeLine{72 \textcolor{keyword}{virtual} xbInt16 CreateMemoFile () = 0;} +\DoxyCodeLine{73 } +\DoxyCodeLine{74 \textcolor{keyword}{virtual} xbInt16 GetMemoField ( xbInt16 iFieldNo, xbString \&sMemoData ) = 0;} +\DoxyCodeLine{75 \textcolor{keyword}{virtual} xbInt16 GetMemoFieldLen( xbInt16 iFieldNo, xbUInt32 \&ulMemoFieldLen ) = 0;} +\DoxyCodeLine{76 \textcolor{keyword}{virtual} xbInt16 OpenMemoFile () = 0;} +\DoxyCodeLine{77 \textcolor{keyword}{virtual} xbInt16 GetMemoFileType();} +\DoxyCodeLine{78 \textcolor{keyword}{virtual} xbInt16 PackMemo ( \textcolor{keywordtype}{void} (*memoStatusFunc)(xbUInt32 ulItemNum, xbUInt32 ulNumItems)) = 0;} +\DoxyCodeLine{79 \textcolor{keyword}{virtual} xbInt16 UpdateMemoField( xbInt16 iFieldNo, \textcolor{keyword}{const} xbString \&sMemoData ) = 0;} +\DoxyCodeLine{80 } +\DoxyCodeLine{81 \textcolor{preprocessor}{ \#ifdef XB\_DEBUG\_SUPPORT}} +\DoxyCodeLine{82 \textcolor{keyword}{virtual} xbInt16 DumpMemoFreeChain() = 0;} +\DoxyCodeLine{83 \textcolor{keyword}{virtual} xbInt16 DumpMemoHeader () = 0;} +\DoxyCodeLine{84 \textcolor{preprocessor}{ \#endif}} +\DoxyCodeLine{85 } +\DoxyCodeLine{86 \textcolor{comment}{// *********** FIXME *************}} +\DoxyCodeLine{87 \textcolor{comment}{// next two methods should be protected but are called in the xb\_test\_xxxx programs testing routines}} +\DoxyCodeLine{88 \textcolor{comment}{// so for now, they are kept as public}} +\DoxyCodeLine{89 \textcolor{keyword}{virtual} xbInt16 CalcLastDataBlock ( xbUInt32 \&lLastDataBlock );} +\DoxyCodeLine{90 \textcolor{keyword}{virtual} xbInt16 GetHdrNextBlock ( xbUInt32 \&ulBlockNo );} +\DoxyCodeLine{91 } +\DoxyCodeLine{92 \textcolor{keyword}{protected}:} +\DoxyCodeLine{93 \textcolor{keyword}{friend} \textcolor{keyword}{class }\mbox{\hyperlink{namespacexb_ab2eae4b4732466698a7fdd89d77ba53b}{xbDbf}};} +\DoxyCodeLine{94 } +\DoxyCodeLine{95 \textcolor{keyword}{virtual} xbInt16 ReadDbtHeader ( xbInt16 iOption ) = 0;} +\DoxyCodeLine{96 \textcolor{keyword}{virtual} xbInt16 UpdateHeaderName () = 0;} +\DoxyCodeLine{97 \textcolor{keyword}{virtual} xbInt16 UpdateHeadNextNode();} +\DoxyCodeLine{98 \textcolor{keyword}{virtual} xbInt16 Zap () = 0;} +\DoxyCodeLine{99 } +\DoxyCodeLine{100 \mbox{\hyperlink{namespacexb_ab2eae4b4732466698a7fdd89d77ba53b}{xbDbf}} *dbf; \textcolor{comment}{/* pointer to related dbf instance */}} +\DoxyCodeLine{101 \textcolor{keywordtype}{char} cVersion; \textcolor{comment}{/* byte 16 off the header block, 0x03 for V3, version IV -\/ ? */}} +\DoxyCodeLine{102 xbInt16 iMemoFileType; \textcolor{comment}{/* 3 = version III, 4 = version IV */}} +\DoxyCodeLine{103 xbUInt32 ulHdrNextBlock; \textcolor{comment}{/* next available block , bytes 0-\/3 of the memo header */}} +\DoxyCodeLine{104 \textcolor{keywordtype}{void} * mbb; \textcolor{comment}{/* memo block buffer */}} +\DoxyCodeLine{105 } +\DoxyCodeLine{106 } +\DoxyCodeLine{107 \textcolor{keyword}{private}:} +\DoxyCodeLine{108 } +\DoxyCodeLine{109 \textcolor{preprocessor}{ \#ifdef XB\_LOCKING\_SUPPORT}} +\DoxyCodeLine{110 \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} bFileLocked; \textcolor{comment}{/* memo file locked */}} +\DoxyCodeLine{111 \textcolor{preprocessor}{ \#endif}} +\DoxyCodeLine{112 } +\DoxyCodeLine{113 \};} +\DoxyCodeLine{114 } +\DoxyCodeLine{115 } +\DoxyCodeLine{116 } +\DoxyCodeLine{117 \textcolor{preprocessor}{\#ifdef XB\_DBF3\_SUPPORT}} +\DoxyCodeLine{119 } +\DoxyCodeLine{131 \textcolor{keyword}{class }XBDLLEXPORT xbMemoDbt3 : \textcolor{keyword}{public} xbMemo \{} +\DoxyCodeLine{132 \textcolor{keyword}{public}:} +\DoxyCodeLine{133 xbMemoDbt3( \mbox{\hyperlink{namespacexb_ab2eae4b4732466698a7fdd89d77ba53b}{xbDbf}} *dbf, xbString \textcolor{keyword}{const} \&sFileName );} +\DoxyCodeLine{134 \string~xbMemoDbt3();} +\DoxyCodeLine{135 \textcolor{keyword}{virtual} xbInt16 Abort ();} +\DoxyCodeLine{136 \textcolor{keyword}{virtual} xbInt16 Commit ();} +\DoxyCodeLine{137 \textcolor{keyword}{virtual} xbInt16 CreateMemoFile ();} +\DoxyCodeLine{138 \textcolor{keyword}{virtual} xbInt16 GetMemoField ( xbInt16 iFieldNo, xbString \&sMemoData );} +\DoxyCodeLine{139 \textcolor{keyword}{virtual} xbInt16 GetMemoFieldLen( xbInt16 iFieldNo, xbUInt32 \&ulMemoFieldLen );} +\DoxyCodeLine{140 \textcolor{keyword}{virtual} xbInt16 OpenMemoFile ();} +\DoxyCodeLine{141 \textcolor{keyword}{virtual} xbInt16 PackMemo ( \textcolor{keywordtype}{void} (*memoStatusFunc) (xbUInt32 ulItemNum, xbUInt32 ulNumItems));} +\DoxyCodeLine{142 \textcolor{keyword}{virtual} xbInt16 UpdateMemoField( xbInt16 iFieldNo, \textcolor{keyword}{const} xbString \&sMemoData );} +\DoxyCodeLine{143 } +\DoxyCodeLine{144 \textcolor{preprocessor}{ \#ifdef XB\_DEBUG\_SUPPORT}} +\DoxyCodeLine{145 \textcolor{keyword}{virtual} xbInt16 DumpMemoFreeChain();} +\DoxyCodeLine{146 \textcolor{keyword}{virtual} xbInt16 DumpMemoHeader ();} +\DoxyCodeLine{147 \textcolor{preprocessor}{ \#endif}} +\DoxyCodeLine{148 } +\DoxyCodeLine{149 \textcolor{keyword}{protected}:} +\DoxyCodeLine{150 \textcolor{keyword}{virtual} xbInt16 ReadDbtHeader( xbInt16 iOption );} +\DoxyCodeLine{151 \textcolor{keyword}{virtual} xbInt16 UpdateHeaderName();} +\DoxyCodeLine{152 \textcolor{keyword}{virtual} xbInt16 Zap();} +\DoxyCodeLine{153 } +\DoxyCodeLine{154 \textcolor{keyword}{private}:} +\DoxyCodeLine{155 \};} +\DoxyCodeLine{156 \textcolor{preprocessor}{\#endif}} +\DoxyCodeLine{157 } +\DoxyCodeLine{158 } +\DoxyCodeLine{159 \textcolor{preprocessor}{\#ifdef XB\_DBF4\_SUPPORT}} +\DoxyCodeLine{160 } +\DoxyCodeLine{162 } +\DoxyCodeLine{172 \textcolor{keyword}{class }XBDLLEXPORT xbMemoDbt4 : \textcolor{keyword}{public} xbMemo \{} +\DoxyCodeLine{173 \textcolor{keyword}{public}:} +\DoxyCodeLine{174 xbMemoDbt4( \mbox{\hyperlink{namespacexb_ab2eae4b4732466698a7fdd89d77ba53b}{xbDbf}} *dbf, xbString \textcolor{keyword}{const} \&sFileName );} +\DoxyCodeLine{175 \string~xbMemoDbt4();} +\DoxyCodeLine{176 \textcolor{keyword}{virtual} xbInt16 Abort ();} +\DoxyCodeLine{177 \textcolor{keyword}{virtual} xbInt16 Commit ();} +\DoxyCodeLine{178 \textcolor{keyword}{virtual} xbInt16 CreateMemoFile ();} +\DoxyCodeLine{179 } +\DoxyCodeLine{180 \textcolor{keyword}{virtual} xbInt16 GetMemoField ( xbInt16 iFieldNo, xbString \&sMemoData );} +\DoxyCodeLine{181 \textcolor{keyword}{virtual} xbInt16 GetMemoFieldLen ( xbInt16 iFieldNo, xbUInt32 \&ulMemoFieldLen );} +\DoxyCodeLine{182 \textcolor{keyword}{virtual} xbInt16 GetMemoFieldLen ( xbInt16 iFieldNo, xbUInt32 \&ulMemoFieldLen, xbUInt32 \&lBlockNo );} +\DoxyCodeLine{183 \textcolor{keyword}{virtual} xbInt16 OpenMemoFile ();} +\DoxyCodeLine{184 \textcolor{keyword}{virtual} xbInt16 PackMemo ( \textcolor{keywordtype}{void} (*memoStatusFunc) (xbUInt32 ulItemNum, xbUInt32 ulNumItems));} +\DoxyCodeLine{185 \textcolor{keyword}{virtual} xbInt16 UpdateMemoField ( xbInt16 iFieldNo, \textcolor{keyword}{const} xbString \&sMemoData );} +\DoxyCodeLine{186 } +\DoxyCodeLine{187 \textcolor{preprocessor}{ \#ifdef XB\_DEBUG\_SUPPORT}} +\DoxyCodeLine{188 \textcolor{keyword}{virtual} xbInt16 DumpMemoFreeChain ();} +\DoxyCodeLine{189 \textcolor{keyword}{virtual} xbInt16 DumpMemoHeader ();} +\DoxyCodeLine{190 \textcolor{keyword}{virtual} xbInt16 DumpMemoInternals ();} +\DoxyCodeLine{191 \textcolor{keyword}{virtual} xbInt16 ReadFreeBlockHeader( xbUInt32 ulBlockNo, xbUInt32 \&ulNextBlock, xbUInt32 \&ulFreeBlockCnt );} +\DoxyCodeLine{192 \textcolor{preprocessor}{ \#endif}} +\DoxyCodeLine{193 } +\DoxyCodeLine{194 \textcolor{keyword}{protected}:} +\DoxyCodeLine{195 \textcolor{keyword}{virtual} xbInt16 FindBlockSetInChain( xbUInt32 ulBlocksNeeded, xbUInt32 \&ulLastDataBlock, xbUInt32 \&ulLocation, xbUInt32 \&ulPrevNode, \mbox{\hyperlink{namespacexb_ab1a750481dd487f0d384aa1d200dff0f}{xbBool}} \&bFound );} +\DoxyCodeLine{196 \textcolor{keyword}{virtual} xbInt16 FreeMemoBlockChain( xbUInt32 ulBlockNo );} +\DoxyCodeLine{197 \textcolor{keyword}{virtual} xbInt16 FreeMemoBlockChain( xbUInt32 ulBlockNo, xbUInt32 \&ulLastDataBlock );} +\DoxyCodeLine{198 \textcolor{keyword}{virtual} xbInt16 GetBlockSetFromChain( xbUInt32 ulBlocksNeeded, xbUInt32 ulLocation, xbUInt32 ulPrevNode );} +\DoxyCodeLine{199 \textcolor{keyword}{virtual} xbInt16 ReadDbtHeader( xbInt16 iOption );} +\DoxyCodeLine{200 \textcolor{keyword}{virtual} xbInt16 ReadBlockHeader( xbUInt32 ulBlockNo, xbInt16 iOption );} +\DoxyCodeLine{201 \textcolor{keyword}{virtual} xbInt16 UpdateHeaderName ();} +\DoxyCodeLine{202 \textcolor{keyword}{virtual} xbInt16 WriteBlockHeader( xbUInt32 ulBlockNo, xbInt16 iOption );} +\DoxyCodeLine{203 \textcolor{keyword}{virtual} xbInt16 Zap();} +\DoxyCodeLine{204 } +\DoxyCodeLine{205 \textcolor{keyword}{private}:} +\DoxyCodeLine{206 xbString sDbfFileNameWoExt;} +\DoxyCodeLine{207 xbUInt32 ulNextFreeBlock;} +\DoxyCodeLine{208 xbUInt32 ulFreeBlockCnt;} +\DoxyCodeLine{209 xbInt16 iField1;} +\DoxyCodeLine{210 xbInt16 iStartPos;} +\DoxyCodeLine{211 xbUInt32 ulFieldLen;} +\DoxyCodeLine{212 } +\DoxyCodeLine{213 xbLinkList<xbUInt32> llOldBlocks; \textcolor{comment}{// list of previously used memo blocks for field, used by Commit() / Abort()}} +\DoxyCodeLine{214 xbLinkList<xbUInt32> llNewBlocks; \textcolor{comment}{// list of newly updated memo blocks for field, used by Commit() / Abort()}} +\DoxyCodeLine{215 } +\DoxyCodeLine{216 \};} +\DoxyCodeLine{217 \textcolor{preprocessor}{\#endif}} +\DoxyCodeLine{218 } +\DoxyCodeLine{219 } +\DoxyCodeLine{220 \} \textcolor{comment}{/* namespace xb */}} +\DoxyCodeLine{221 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* XB\_MEMO\_SUPPORT */}\textcolor{preprocessor}{}} +\DoxyCodeLine{222 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \_\_XB\_MEMO\_H\_\_ */}\textcolor{preprocessor}{}} +\DoxyCodeLine{223 } + +\end{DoxyCode} |