WvStreams
uniclientgen.h
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