00001
00002
00003
00004
00005
00006
00007
00008 #ifndef __UNICONFCLIENT_H
00009 #define __UNICONFCLIENT_H
00010
00011 #include "uniconfgen.h"
00012 #include "wvlog.h"
00013 #include "wvstringlist.h"
00014 #include "uniclientconn.h"
00015 #include "uniconfkey.h"
00016
00028 class UniClientGen : public UniConfGen
00029 {
00030 UniClientConn *conn;
00031
00032 WvLog log;
00033
00034 WvString result_key;
00035 WvString result;
00037 UniListIter *result_list;
00039 bool cmdinprogress;
00040 bool cmdsuccess;
00042 time_t timeout;
00043
00044 int version;
00046 public:
00052 UniClientGen(IWvStream *stream, WvStringParm dst = WvString::null);
00053
00054 virtual ~UniClientGen();
00055
00056 time_t set_timeout(time_t _timeout);
00057
00058
00059
00060 virtual bool isok();
00061
00062 virtual bool refresh();
00063 virtual void flush_buffers();
00064 virtual void commit();
00065 virtual WvString get(const UniConfKey &key);
00066 virtual void set(const UniConfKey &key, WvStringParm value);
00067 virtual void setv(const UniConfPairList &pairs);
00068 virtual bool haschildren(const UniConfKey &key);
00069 virtual Iter *iterator(const UniConfKey &key);
00070 virtual Iter *recursiveiterator(const UniConfKey &key);
00071
00072 protected:
00073 virtual Iter *do_iterator(const UniConfKey &key, bool recursive);
00074 void conncallback(WvStream &s, void *userdata);
00075 bool do_select();
00076 };
00077
00078
00079 #endif // __UNICONFCLIENT_H