WvStreams
|
00001 /* -*- Mode: C++ -*- 00002 * Worldvisions Weaver Software: 00003 * Copyright (C) 1997-2002 Net Integration Technologies, Inc. 00004 * 00005 * UniClientGen is a UniConfGen for retrieving data from the 00006 * UniConfDaemon. 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; // command timeout in ms 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 /***** Overridden members *****/ 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(); 00075 bool do_select(); 00076 }; 00077 00078 00079 #endif // __UNICONFCLIENT_H