// ////////////////////////////////////////////////////////
// Copyright (1994) Columbia University
// Department of Biochemistry and Molecular Biophysics
//
// Author: Weider Chang, Ph.D
// ///////////////////////////////////////////////////////


#ifndef _WDCITERATOR_H_
#define _WDCITERATOR_H_


#define String CollString
#include <coll/coll.h>
#undef String

#include "objlist.h"

@protocol WDCIterator

- initFrom:list;
- getCurrentObject;  // return the current object pointed
- (char*)getCurrentCString;
- (elt*)getCurrentElt;
- (BOOL)goNext;      // move the pointer to the next object and return self.
- (BOOL)goPrevious;  // move .................. previous .......
- (BOOL)goFirst;     // move .................. first .....
- (BOOL)goLast;      // move .................. last .......
- reset;

@end

@interface WDCObjListIterator : WDCObjList <WDCIterator> {
  int _currentPos;
}

@end


// Iterator for LinkedList, Collection, Dictionary .......

@interface WDCListIterator : WDCObject <WDCIterator> {
  id _list;
  elt _elePtr;
  void* _enumState;
}

@end

#endif




