00001 /* -*- Mode: C++ -*- 00002 * Worldvisions Weaver Software: 00003 * Copyright (C) 2002 Net Integration Technologies, Inc. 00004 * 00005 * A UniConf generator that caches keys/values in memory. 00006 */ 00007 #ifndef __UNIREPLICATEGEN_H 00008 #define __UNIREPLICATEGEN_H 00009 00010 #include "uniconftree.h" 00011 #include "wvlog.h" 00012 00017 class UniReplicateGen : public UniConfGen 00018 { 00019 protected: 00020 IUniConfGenList gens; 00021 00022 IUniConfGen *first_ok() const; 00023 void replicate(const UniConfKey &key = ""); 00024 void deltacallback(const UniConfKey &key, WvStringParm value, 00025 void *userdata); 00026 00027 public: 00028 UniReplicateGen(); 00029 UniReplicateGen(const IUniConfGenList &_gens, bool auto_free = true); 00030 00031 void prepend(IUniConfGen *gen, bool auto_free = true); 00032 void append(IUniConfGen *gen, bool auto_free = true); 00033 00034 /***** Overridden members *****/ 00035 virtual bool isok(); 00036 virtual void commit(); 00037 virtual bool refresh(); 00038 virtual void flush_buffers() { } 00039 virtual void set(const UniConfKey &key, WvStringParm value); 00040 virtual WvString get(const UniConfKey &key); 00041 virtual Iter *iterator(const UniConfKey &key); 00042 }; 00043 00044 #endif // __UNIREPLICATEGEN_H