WvStreams
uniclientgen.h
1 /* -*- Mode: C++ -*-
2  * Worldvisions Weaver Software:
3  * Copyright (C) 1997-2002 Net Integration Technologies, Inc.
4  *
5  * UniClientGen is a UniConfGen for retrieving data from the
6  * UniConfDaemon.
7  */
8 #ifndef __UNICONFCLIENT_H
9 #define __UNICONFCLIENT_H
10 
11 #include "uniconfgen.h"
12 #include "wvlog.h"
13 #include "wvstringlist.h"
14 #include "uniclientconn.h"
15 #include "uniconfkey.h"
16 
28 class UniClientGen : public UniConfGen
29 {
30  UniClientConn *conn;
31 
32  WvLog log;
33 
34  WvString result_key;
35  WvString result;
37  UniListIter *result_list;
39  bool cmdinprogress;
40  bool cmdsuccess;
42  time_t timeout; // command timeout in ms
43 
44  int version;
46 public:
52  UniClientGen(IWvStream *stream, WvStringParm dst = WvString::null);
53 
54  virtual ~UniClientGen();
55 
56  time_t set_timeout(time_t _timeout);
57 
58  /***** Overridden members *****/
59 
60  virtual bool isok();
61 
62  virtual bool refresh();
63  virtual void flush_buffers();
64  virtual void commit();
65  virtual WvString get(const UniConfKey &key);
66  virtual void set(const UniConfKey &key, WvStringParm value);
67  virtual void setv(const UniConfPairList &pairs);
68  virtual bool haschildren(const UniConfKey &key);
69  virtual Iter *iterator(const UniConfKey &key);
70  virtual Iter *recursiveiterator(const UniConfKey &key);
71 
72 protected:
73  virtual Iter *do_iterator(const UniConfKey &key, bool recursive);
74  void conncallback();
75  bool do_select();
76 };
77 
78 
79 #endif // __UNICONFCLIENT_H