|
// ListIteratorOfListOfCGLObject.cpp: implementation of the CListIteratorOfListOfCGLObject class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "ListIteratorOfListOfCGLObject.h"
#include "ListException.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CListIteratorOfListOfCGLObject::CListIteratorOfListOfCGLObject(CListOfCGLObject* aList) : theList(aList)
{
}
CListIteratorOfListOfCGLObject::~CListIteratorOfListOfCGLObject()
{
}
void CListIteratorOfListOfCGLObject::SetList(CListOfCGLObject* aList)
{
theList = aList;
}
void CListIteratorOfListOfCGLObject::Init()
{
curPtr = theList->firstPtr;
}
bool CListIteratorOfListOfCGLObject::More() const
{
return (curPtr != 0);
}
bool CListIteratorOfListOfCGLObject::IsFound(const CGLObject* O) const
{
bool b = false;
CListIteratorOfListOfCGLObject li(theList);
for(li.Init(); li.More(); li.Next())
{
if(li.Current() == O)
{
b = true;
break;
}
}
return b;
}
void CListIteratorOfListOfCGLObject::Next()
{
curPtr = curPtr->nextPtr;
}
CGLObject* CListIteratorOfListOfCGLObject::Current() const
{
return curPtr->data;
}
CListNodeOfCGLObject* CListIteratorOfListOfCGLObject::CurrentPtr() const
{
return curPtr;
}
void CListIteratorOfListOfCGLObject::SetCurrent(CGLObject* O)
{
curPtr->data = O;
}
CGLObject* CListIteratorOfListOfCGLObject::ValueAt(const int index)
{
int cnt =0;
Init();
while(curPtr != 0)
{
Next();
cnt++;
}
if(cnt < index)
throw CListException(LIST_BOUND_UPPER);
else if(index<1)
throw CListException(LIST_BOUND_LOWER);
else if(index ==1 )
return theList->firstPtr->data;
else
{
Init();
for(int i=1; i < index; i++)
{
if(curPtr->nextPtr == 0)
break;
Next();
}
return curPtr->data;
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Sharjith is a Mechanical Engineer with strong passion for Automobiles, Aircrafts and Software development.