template<class key, class val> class cachedDBM_base : public base_map<key,val> { public: int max_elem; /* limit number of elements to this value */ void init(const char *fname, char mode='w'); /* open database file */ void Init(TCL_args args); /* TCL access to init() */ void close(); /* commit and close database file */ bool opened(); /* is a database attached? */ bool key_exists(const key& k); /* does the key exist in db */ val& operator[] (const key& k); /* access element with key k */ void commit(); /* write any changes out to the file, and clear cache */ void del(key k); /* delete key from database (but not cache!) */ key firstkey(); /* return first key in database */ key nextkey(); /* return next key in database in an iteration */ int eof(); /* true if all keys have been accessed */ KeyValueIterator begin() const; KeyValueIterator end() const; KeyIterator keys.begin() const; KeyIterator keys.end() const; };