From bfa452a375ea0a0a3f95304a69186936567e5263 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Mon, 14 Aug 2023 19:45:36 +0200 Subject: New upstream version 4.1.4 --- docs/doxygen/html/xblnklst_8h_source.html | 341 ------------------------------ 1 file changed, 341 deletions(-) delete mode 100644 docs/doxygen/html/xblnklst_8h_source.html (limited to 'docs/doxygen/html/xblnklst_8h_source.html') diff --git a/docs/doxygen/html/xblnklst_8h_source.html b/docs/doxygen/html/xblnklst_8h_source.html deleted file mode 100644 index c8ed015..0000000 --- a/docs/doxygen/html/xblnklst_8h_source.html +++ /dev/null @@ -1,341 +0,0 @@ - - - - - - - -Xbase64: /mnt/1Tdata/xbase/xbase64-4.1.0/src/include/xblnklst.h Source File - - - - - - - - - -
-
- - - - - - -
-
Xbase64 4.0.1 -
-
C++ Library for handling Xbase (DBF) format type files
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
xblnklst.h
-
-
-Go to the documentation of this file.
1/* xblnklst.h
-
2
-
3XBase64 Software Library
-
4
-
5Copyright (c) 1997,2003,2014,2022 Gary A Kunkel
-
6
-
7The xb64 software library is covered under the terms of the GPL Version 3, 2007 license.
-
8
-
9Email Contact:
-
10
-
11 XDB-devel@lists.sourceforge.net
-
12 XDB-users@lists.sourceforge.net
-
13
-
14*/
-
15
-
16
-
17#ifndef __XB_XBLNKLST_H__
-
18#define __XB_XBLNKLST_H__
-
19
-
20#ifdef XB_LINKLIST_SUPPORT
-
21
-
22namespace xb{
-
23
-
24
-
25template<class xbNodeType>
-
26class XBDLLEXPORT xbLinkList {
-
27 public:
-
28 xbLinkList();
-
29 ~xbLinkList();
-
30
-
31 xbLinkListNode<xbNodeType> *GetHeadNode() const;
-
32 xbLinkListNode<xbNodeType> *GetEndNode() const;
-
33 xbLinkListNode<xbNodeType> *GetNodeForNo( xbUInt32 ulNodeNo ) const;
-
34
-
35 void Clear();
-
36 xbUInt32 GetNodeCnt () const;
-
37 xbInt16 InsertAtEnd ( const xbNodeType &xbLLN );
-
38 xbInt16 InsertAtFront ( const xbNodeType &xbLLN );
-
39 xbInt16 RemoveByVal ( const xbNodeType &xbLLN );
-
40 xbInt16 RemoveFromEnd ();
-
41 xbInt16 RemoveFromEnd ( xbNodeType &xbLLN );
-
42 xbInt16 RemoveFromFront( xbNodeType &xbLLN );
-
43 xbInt16 SearchFor ( const xbNodeType &xbLLN );
-
44
-
45 private:
-
46 xbUInt32 ulNodeCnt;
-
47 xbLinkListNode<xbNodeType> *llStartPtr;
-
48 xbLinkListNode<xbNodeType> *llEndPtr;
-
49};
-
50
-
51template<class xbNodeType>
-
52xbLinkList<xbNodeType>::xbLinkList(){
-
53 ulNodeCnt = 0;
-
54 llStartPtr = NULL;
-
55 llEndPtr = NULL;
-
56}
-
57
-
58template<class xbNodeType>
-
59xbLinkList<xbNodeType>::~xbLinkList(){
-
60 Clear();
-
61}
-
62
-
63template<class xbNodeType>
-
64void xbLinkList<xbNodeType>::Clear(){
-
65 xbLinkListNode<xbNodeType> *cPtr = llStartPtr, *tPtr;
-
66 for( xbUInt32 i = 0; i < ulNodeCnt; i++ ){
-
67 tPtr = cPtr;
-
68 cPtr = cPtr->GetNextNode();
-
69 delete tPtr;
-
70 }
-
71 ulNodeCnt = 0;
-
72 llStartPtr = NULL;
-
73 llEndPtr = NULL;
-
74}
-
75
-
76
-
77template<class xbNodeType>
-
78xbLinkListNode<xbNodeType> *xbLinkList<xbNodeType>::GetHeadNode() const{
-
79 return llStartPtr;
-
80}
-
81
-
82template<class xbNodeType>
-
83xbLinkListNode<xbNodeType> *xbLinkList<xbNodeType>::GetEndNode() const{
-
84 return llEndPtr;
-
85}
-
86
-
87
-
88template<class xbNodeType>
-
89xbLinkListNode<xbNodeType> *xbLinkList<xbNodeType>::GetNodeForNo( xbUInt32 ulNo ) const{
-
90
-
91 xbLinkListNode<xbNodeType> *cPtr = llStartPtr;
-
92 xbUInt32 i;
-
93 for( i = 0; i < ulNo && i < ulNodeCnt; i++ )
-
94 cPtr = cPtr->GetNextNode();
-
95
-
96 if( i == ulNo )
-
97 return cPtr;
-
98 else
-
99 return 0;
-
100}
-
101
-
102
-
103
-
104template<class xbNodeType>
-
105xbUInt32 xbLinkList<xbNodeType>::GetNodeCnt() const{
-
106 return ulNodeCnt;
-
107}
-
108
-
109template<class xbNodeType>
-
110xbInt16 xbLinkList<xbNodeType>::InsertAtFront( const xbNodeType & ntKey ){
-
111
-
112 xbLinkListNode<xbNodeType> *p = new xbLinkListNode<xbNodeType>( ntKey );
-
113 if( p == 0 )
-
114 return XB_NO_MEMORY;
-
115
-
116 if( ulNodeCnt > 0 ){
-
117 llStartPtr->SetPrevNode( p );
-
118 p->SetNextNode( llStartPtr );
-
119 } else {
-
120 llEndPtr = p;
-
121 }
-
122
-
123 llStartPtr = p;
-
124 ulNodeCnt++;
-
125 return XB_NO_ERROR;
-
126}
-
127
-
128template<class xbNodeType>
-
129xbInt16 xbLinkList<xbNodeType>::InsertAtEnd( const xbNodeType & ntKey ){
-
130
-
131 xbLinkListNode<xbNodeType> *p = new xbLinkListNode<xbNodeType>( ntKey );
-
132 if( p == 0 )
-
133 return XB_NO_MEMORY;
-
134
-
135 if( ulNodeCnt > 0 ){
-
136 llEndPtr->SetNextNode( p );
-
137 p->SetPrevNode( llEndPtr );
-
138 llEndPtr = p;
-
139 } else {
-
140 llStartPtr = p;
-
141 }
-
142
-
143 llEndPtr = p;
-
144 ulNodeCnt++;
-
145 return XB_NO_ERROR;
-
146}
-
147
-
148
-
149
-
150template<class xbNodeType>
-
151xbInt16 xbLinkList<xbNodeType>::RemoveByVal( const xbNodeType & ntKey ){
-
152 // Remove the first instance of ntKey from the node chain
-
153 xbLinkListNode<xbNodeType> *currPtr = llStartPtr;
-
154 xbLinkListNode<xbNodeType> *prevPtr = NULL;
-
155
-
156 for( xbUInt32 i = 0; i < ulNodeCnt; i++ ){
-
157 if( currPtr->GetKey() == ntKey ){
-
158 if( prevPtr == NULL ){ //then this is the first node
-
159 llStartPtr = currPtr->GetNextNode();
-
160 if( llStartPtr ) // if more than one link in the linked list
-
161 llStartPtr->SetPrevNode( NULL );
-
162 delete currPtr;
-
163 ulNodeCnt--;
-
164 return i + 1;
-
165 }
-
166 else {
-
167 prevPtr->SetNextNode( currPtr->GetNextNode());
-
168 if( currPtr->GetNextNode())
-
169 currPtr->GetNextNode()->SetPrevNode( prevPtr );
-
170 delete currPtr;
-
171 ulNodeCnt--;
-
172 return i + 1;
-
173 }
-
174 }
-
175 prevPtr = currPtr;
-
176 currPtr = currPtr->GetNextNode();
-
177 }
-
178 return XB_NOT_FOUND;
-
179}
-
180
-
181
-
182template<class xbNodeType>
-
183xbInt16 xbLinkList<xbNodeType>::RemoveFromFront( xbNodeType & ntKey ){
-
184
-
185 if( ulNodeCnt <= 0 )
-
186 return XB_INVALID_NODELINK;
-
187 xbLinkListNode<xbNodeType> *p = llStartPtr;
-
188 llStartPtr = p->GetNextNode();
-
189 if( llStartPtr )
-
190 llStartPtr->SetPrevNode( NULL );
-
191 ntKey = p->GetKey();
-
192 delete p;
-
193 ulNodeCnt--;
-
194 return XB_NO_ERROR;
-
195}
-
196
-
197
-
198template<class xbNodeType>
-
199xbInt16 xbLinkList<xbNodeType>::RemoveFromEnd( xbNodeType & ntKey ){
-
200
-
201 if( ulNodeCnt <= 0 )
-
202 return XB_INVALID_NODELINK;
-
203 xbLinkListNode<xbNodeType> *p = llEndPtr;
-
204 if( p->GetPrevNode()){
-
205 llEndPtr = p->GetPrevNode();
-
206 llEndPtr->SetNextNode( NULL );
-
207 } else {
-
208 // there are no more nodes
-
209 llStartPtr = NULL;
-
210 llEndPtr = NULL;
-
211 }
-
212 ntKey = p->GetKey();
-
213 delete p;
-
214 ulNodeCnt--;
-
215 return XB_NO_ERROR;
-
216}
-
217
-
218
-
219template<class xbNodeType>
-
220xbInt16 xbLinkList<xbNodeType>::RemoveFromEnd(){
-
221
-
222 if( ulNodeCnt <= 0 )
-
223 return XB_INVALID_NODELINK;
-
224 xbLinkListNode<xbNodeType> *p = llEndPtr;
-
225 if( p->GetPrevNode()){
-
226 llEndPtr = p->GetPrevNode();
-
227 llEndPtr->SetNextNode( NULL );
-
228 } else {
-
229 // there are no more nodes
-
230 llStartPtr = NULL;
-
231 llEndPtr = NULL;
-
232 }
-
233 delete p->GetKey();
-
234 delete p;
-
235 ulNodeCnt--;
-
236 return XB_NO_ERROR;
-
237}
-
238
-
239
-
240template<class xbNodeType>
-
241xbInt16 xbLinkList<xbNodeType>::SearchFor( const xbNodeType & ntKey ){
-
242
-
243 xbLinkListNode<xbNodeType> *cPtr = llStartPtr;
-
244 for( xbUInt32 i = 0; i < ulNodeCnt; i++ ){
-
245 if( cPtr->GetKey() == ntKey )
-
246 return i+1;
-
247 cPtr = cPtr->GetNextNode();
-
248 }
-
249 return XB_NO_ERROR;
-
250
-
251}
-
252} // namespace
-
253
-
254#endif // XB_LINKLIST_SUPPORT
-
255#endif // XB_XBLNKLST_H__
-
256
-
257
-
Definition: xbdate.cpp:19
-
#define XB_INVALID_NODELINK
Definition: xbretcod.h:28
-
#define XB_NOT_FOUND
Definition: xbretcod.h:40
-
#define XB_NO_ERROR
Definition: xbretcod.h:24
-
#define XB_NO_MEMORY
Definition: xbretcod.h:25
-
- - - - -- cgit v1.2.3