versadac  1
versadac - Scalable Recorder Firmware
listn.h
1 /* $Id: listn.h 4938 2006-10-10 14:20:18Z martinto $ */
2 /*
3  *
4  * Revision 2.1 1997/07/10 16:24:13 davec
5  * DEV1196:DCN001 moved source to CVS
6  *
7  *
8  * Rev 1.1.1.2 22 Jul 1996 13:58:10 DAVEH
9  * DEV1156:DCN098- remove the word hacked
10  *
11  * Rev 1.1.1.1 03 Jul 1996 14:22:40 DAVEH
12  * DEV1156:DCN076-Memory saving exercise
13  *
14  * Rev 1.1.1.0 24 Jan 1996 15:07:48 PAULT
15  * Branched
16  *
17  * Rev 1.1 24 Jan 1996 12:16:52 PAULT
18  * Consolidated 4100 code merged to trunk
19  *
20  * Rev 1.0.2.0 01 Jun 1995 14:25:36 DAVEH
21  * Branched
22  *
23  * Rev 1.0 12 Apr 1995 17:20:34 COLINL
24  * Initial revision.
25 */
26 /*****************************************************************************
27 FILE : L I S T N . H
28 VERSION : %I%
29 AUTHOR : Colin Law
30 SYSTEM : Turbo C++
31 DESCRIPTION : Header file for ListNode class used by lists base class
32 
33 
34 NOTE: Only for inclusion by lists files.
35 
36 *****************************************************************************/
37 
38 #if !defined(__LISTN_H)
39 
40 #define __LISTN_H
41 
42 #if !defined __LISTS_H
43  #include "lists.h"
44 #endif
45 
46 #if defined ISE_PNL_MEMORY
47 #include "pnl_mem.pc"
48 #endif
49 
50 /* ##########################################################################
51 CLASS : L I S T N O D E
52 DESCRIPTION : This class provides the node objects which are linked together
53  to make up the list. Each node contains links to the next
54  and previous nodes, and a pointer to the data item itself.
55  This class is only required for the List base class and so
56  does not appear in a header.
57 ########################################################################### */
58 
59 class ListNode
60 #if defined ISE_PNL_MEMORY
61  : public CpnlMem
62 #endif
63 {
64  friend class List;
65  friend class ListWalker;
66 
67  private:
68  // Constructor for listnode given pointer to thing to be connected to it.
69  ListNode(void *data);
70 
71 #if defined LISTS_USER_MALLOC
72 /*---------------------------------------------------------------------------
73 FUNCTION : makeNode
74 DESCRIPTION : static service to make a node from a malloced area of memory
75 ARGUMENTS : pMemory pointer to memory area
76  data pointer to item to be attached to node
77 RETURN : None
78 NOTES :
79 ---------------------------------------------------------------------------*/
80  static ListNode* makeNode( void* pMemory, void* data );
81 #endif
82  // No ListNode destructor is provided. It is the responsibility of
83  // the list using it to handle deletion of attached item when a node
84  // is deleted.
85 
86  // method to unlink the node from the list, joining up links round it.
87  void unlink( List& lst );
88 
89 
90  ListNode *next; // pointer to next node in list. NULL if this is last.
91  ListNode *prev; // pointer to previous node. NULL if this is first one.
92  void *item; // pointer to item on this node;
93 
94  // Copy constructor and assignment operator declared private
95  // and not defined to prevent compiler from generating bitwise
96  // copiers.
97  ListNode( const ListNode& );
98  ListNode& operator=( const ListNode& );
99 
100 }; // class ListNode
101 
102 
103 
104 
105 #endif
Definition: listn.h:59
Definition: lists.h:307
Definition: lists.h:91