WvStreams
unilistiter.cc
1 /* -*- Mode: C++ -*-
2  * Worldvisions Weaver Software:
3  * Copyright (C) 2002 Net Integration Technologies, Inc.
4  *
5  * A simple implementation of a UniConfGen iterator. See unilistiter.h.
6  */
7 #include "unilistiter.h"
8 
9 UniListIter::UniListIter(IUniConfGen *_gen)
10  : ki(keys), vi(values)
11 {
12  gen = _gen;
13 }
14 
15 
17 {
18  UniConfKey *nk = new UniConfKey(k);
19  keys.append(nk, true);
20  keylook.add(nk, false);
21  if (!v.isnull())
22  values.append(new WvString(scache.get(v)), true);
23 }
24 
25 
26 void UniListIter::autofill(IUniConfGen::Iter *_source)
27 {
28  IUniConfGen::Iter &source(*_source);
29  for (source.rewind(); source.next(); )
30  add(source.key(), source.value());
31 }
32 
33 
35 {
36  ki.rewind();
37  vi.rewind();
38 }
39 
40 
42 {
43  if (vi.cur())
44  vi.next();
45  return ki.next();
46 }
47 
48 
50 {
51  return *ki;
52 }
53 
54 
56 {
57  if (vi.cur())
58  return *vi;
59  else
60  return gen->get(*ki);
61 }