equal
deleted
inserted
replaced
26 datum key; |
26 datum key; |
27 public: |
27 public: |
28 gdbm_vpwtable_reader(const mystring& filename); |
28 gdbm_vpwtable_reader(const mystring& filename); |
29 ~gdbm_vpwtable_reader(); |
29 ~gdbm_vpwtable_reader(); |
30 bool operator!() const; |
30 bool operator!() const; |
31 bool get(vpwentry& out); |
31 vpwentry* get(); |
32 bool rewind(); |
32 bool rewind(); |
33 bool end(); |
33 bool end(); |
34 }; |
34 }; |
35 |
35 |
36 vpwtable_reader* vpwtable::start_read() const |
36 vpwtable_reader* vpwtable::start_read() const |
75 return true; |
75 return true; |
76 } |
76 } |
77 return false; |
77 return false; |
78 } |
78 } |
79 |
79 |
80 bool gdbm_vpwtable_reader::get(vpwentry& out) |
80 vpwentry* gdbm_vpwtable_reader::get() |
81 { |
81 { |
|
82 vpwentry* v = 0; |
82 if(key.dptr) { |
83 if(key.dptr) { |
83 mystring name(key.dptr, key.dsize); |
84 mystring name(key.dptr, key.dsize); |
84 datum rec = gdbm_fetch(dbf, key); |
85 datum rec = gdbm_fetch(dbf, key); |
85 mystring result(rec.dptr, rec.dsize); |
86 mystring result(rec.dptr, rec.dsize); |
86 free(rec.dptr); |
87 free(rec.dptr); |
87 if(!out.from_record(name, result)) |
88 v = vpwentry::new_from_record(name, result); |
88 return false; |
|
89 key = gdbm_nextkey(dbf, key); |
89 key = gdbm_nextkey(dbf, key); |
90 return true; |
|
91 } |
90 } |
92 return false; |
91 return v; |
93 } |
92 } |