WvStreams
unilistiter.h
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