diff options
Diffstat (limited to 'src/Lists.h')
-rw-r--r-- | src/Lists.h | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/src/Lists.h b/src/Lists.h deleted file mode 100644 index 7572e882..00000000 --- a/src/Lists.h +++ /dev/null @@ -1,130 +0,0 @@ -#pragma once - -class CPtrNode -{ -public: - void *item; - CPtrNode *prev; - CPtrNode *next; - - void *operator new(size_t); - void operator delete(void *p, size_t); -}; - -class CPtrList -{ -public: - CPtrNode *first; - - CPtrList(void) { first = nil; } - ~CPtrList(void) { Flush(); } - CPtrNode *FindItem(void *item){ - CPtrNode *node; - for(node = first; node; node = node->next) - if(node->item == item) - return node; - return nil; - } - CPtrNode *InsertNode(CPtrNode *node){ - node->prev = nil; - node->next = first; - if(first) - first->prev = node; - first = node; - return node; - } - CPtrNode *InsertItem(void *item){ - CPtrNode *node = new CPtrNode; - node->item = item; - InsertNode(node); - return node; - } - void RemoveNode(CPtrNode *node){ - if(node == first) - first = node->next; - if(node->prev) - node->prev->next = node->next; - if(node->next) - node->next->prev = node->prev; - } - void DeleteNode(CPtrNode *node){ - RemoveNode(node); - delete node; - } - void RemoveItem(void *item){ - CPtrNode *node, *next; - for(node = first; node; node = next){ - next = node->next; - if(node->item == item) - DeleteNode(node); - } - } - void Flush(void){ - CPtrNode *node, *next; - for(node = first; node; node = next){ - next = node->next; - DeleteNode(node); - } - } -}; - -class CSector; - -// This records in which sector list a Physical is -class CEntryInfoNode -{ -public: - CPtrList *list; // list in sector - CPtrNode *listnode; // node in list - CSector *sector; - - CEntryInfoNode *prev; - CEntryInfoNode *next; - - void *operator new(size_t); - void operator delete(void *p, size_t); -}; - -class CEntryInfoList -{ -public: - CEntryInfoNode *first; - - CEntryInfoList(void) { first = nil; } - ~CEntryInfoList(void) { Flush(); } - CEntryInfoNode *InsertNode(CEntryInfoNode *node){ - node->prev = nil; - node->next = first; - if(first) - first->prev = node; - first = node; - return node; - } - CEntryInfoNode *InsertItem(CPtrList *list, CPtrNode *listnode, CSector *sect){ - CEntryInfoNode *node = new CEntryInfoNode; - node->list = list; - node->listnode = listnode; - node->sector = sect; - InsertNode(node); - return node; - } - void RemoveNode(CEntryInfoNode *node){ - if(node == first) - first = node->next; - if(node->prev) - node->prev->next = node->next; - if(node->next) - node->next->prev = node->prev; - } - void DeleteNode(CEntryInfoNode *node){ - RemoveNode(node); - delete node; - } - void Flush(void){ - CEntryInfoNode *node, *next; - for(node = first; node; node = next){ - next = node->next; - DeleteNode(node); - } - } -}; |