1/* 2 File: CListIterator.c 3 4 Contains: Implementation of the CListIterator class 5 6*/ 7 8#include "CListIterator.h" 9#include <CList.h> 10 11//-------------------------------------------------------------------------------- 12#define super CArrayIterator 13 OSDefineMetaClassAndStructors(CListIterator, CArrayIterator); 14//-------------------------------------------------------------------------------- 15 16 17//-------------------------------------------------------------------------------- 18// CListIterator::cListIterator 19//-------------------------------------------------------------------------------- 20CListIterator * 21CListIterator::cListIterator() 22{ 23 CListIterator *obj; 24 obj = new CListIterator(); 25 if (obj && !obj->init()) { 26 obj->release(); 27 obj = nil; 28 } 29 return obj; 30} 31 32 33//-------------------------------------------------------------------------------- 34// CListIterator::cListIterator 35//-------------------------------------------------------------------------------- 36CListIterator * 37CListIterator::cListIterator(CDynamicArray* itsList) 38{ 39 CListIterator *obj; 40 obj = new CListIterator(); 41 if (obj && !obj->init(itsList)) { 42 obj->release(); 43 obj = nil; 44 } 45 return obj; 46} 47 48 49//-------------------------------------------------------------------------------- 50// CListIterator::cListIterator 51//-------------------------------------------------------------------------------- 52CListIterator * 53CListIterator::cListIterator(CDynamicArray* itsList, Boolean itsForward) 54{ 55 CListIterator *obj; 56 obj = new CListIterator(); 57 if (obj && !obj->init(itsList, itsForward)) { 58 obj->release(); 59 obj = nil; 60 } 61 return obj; 62} 63 64 65//-------------------------------------------------------------------------------- 66// CListIterator::CListIterator 67//-------------------------------------------------------------------------------- 68CListIterator * 69CListIterator::cListIterator(CDynamicArray* itsList, ArrayIndex itsLowBound, 70 ArrayIndex itsHighBound, Boolean itsForward) 71{ 72 CListIterator *obj; 73 obj = new CListIterator(); 74 if (obj && !obj->init(itsList, itsLowBound, itsHighBound, itsForward)) { 75 obj->release(); 76 obj = nil; 77 } 78 return obj; 79} 80 81 82//-------------------------------------------------------------------------------- 83// CListIterator::CurrentItem 84//-------------------------------------------------------------------------------- 85void* CListIterator::CurrentItem() 86{ 87 if (fDynamicArray) 88 return ((CList*)fDynamicArray)->At(fCurrentIndex); 89 else 90 return nil; 91 92} // CListIterator::CurrentItem 93 94 95//-------------------------------------------------------------------------------- 96// CListIterator::FirstItem 97//-------------------------------------------------------------------------------- 98void* CListIterator::FirstItem() 99{ 100 this->Reset(); 101 102 if (this->More()) 103 return ((CList*)fDynamicArray)->At(fCurrentIndex); 104 else 105 return nil; 106 107} // CListIterator::FirstItem 108 109 110//-------------------------------------------------------------------------------- 111// CListIterator::NextItem 112//-------------------------------------------------------------------------------- 113void* CListIterator::NextItem() 114{ 115 this->Advance(); 116 117 if (this->More()) 118 return ((CList*)fDynamicArray)->At(fCurrentIndex); 119 else 120 return nil; 121 122} // CListIterator::NextItem 123 124 125