WvStreams
|
00001 /* -*- Mode: C++ -*- 00002 * Worldvisions Weaver Software: 00003 * Copyright (C) 2002-2005 Net Integration Technologies, Inc. 00004 * 00005 * A simple implementation of a UniConfGen iterator. 00006 */ 00007 #ifndef __UNILISTITER_H 00008 #define __UNILISTITER_H 00009 00010 #include "uniconfgen.h" 00011 #include "wvscatterhash.h" 00012 #include "wvstringcache.h" 00013 #include "wvstringlist.h" 00014 00027 class UniListIter : public UniConfGen::Iter 00028 { 00029 IUniConfGen *gen; 00030 00031 DeclareWvScatterTable(UniConfKey); 00032 UniConfKeyTable keylook; 00033 00034 00035 UniConfKeyList keys; 00036 WvStringList values; 00037 00038 UniConfKeyList::Iter ki; 00039 WvStringList::Iter vi; 00040 00041 WvStringCache scache; 00042 00043 public: 00044 UniListIter(IUniConfGen *_gen); 00045 00054 void add(const UniConfKey &k, WvStringParm v = WvString::null); 00055 00065 void autofill(IUniConfGen::Iter *source); 00066 00067 /***** Overridden members *****/ 00068 virtual void rewind(); 00069 virtual bool next(); 00070 virtual UniConfKey key() const; 00071 virtual WvString value() const; 00072 }; 00073 00074 #endif // __UNILISTITER_H