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
UniClientGen::flush_buffers
virtual void flush_buffers()
Flushes any commitment/notification buffers .
Definition: uniclientgen.cc:153
UniClientGen::haschildren
virtual bool haschildren(const UniConfKey &key)
Returns true if a key has children.
Definition: uniclientgen.cc:228
UniListIter
An iterator that iterates through a constant list of keys.
Definition: unilistiter.h:27
IWvStream
Definition: iwvstream.h:24
UniClientGen::setv
virtual void setv(const UniConfPairList &pairs)
Stores multiple key-value pairs into the registry.
Definition: uniclientgen.cc:199
UniClientGen::recursiveiterator
virtual Iter * recursiveiterator(const UniConfKey &key)
Like iterator(), but the returned iterator is recursive, that is, it will return children of the imme...
Definition: uniclientgen.cc:271
UniClientConn
Represents a connection to a UniConf daemon via any WvStream.
Definition: uniclientconn.h:27
WvString
WvString is an implementation of a simple and efficient printable-string class.
Definition: wvstring.h:329
UniClientGen::set
virtual void set(const UniConfKey &key, WvStringParm value)
Stores a string value for a key into the registry.
Definition: uniclientgen.cc:182
WvLog
A WvLog stream accepts log messages from applications and forwards them to all registered WvLogRcv's.
Definition: wvlog.h:56
UniClientGen::commit
virtual void commit()
Commits any changes.
Definition: uniclientgen.cc:160
UniClientGen::UniClientGen
UniClientGen(IWvStream *stream, WvStringParm dst=WvString::null)
Creates a generator which can communicate with a daemon using the specified stream.
Definition: uniclientgen.cc:106
UniConfKey
Represents a UniConf key which is a path in a hierarchy structured much like the traditional Unix fil...
Definition: uniconfkey.h:38
UniClientGen::refresh
virtual bool refresh()
Refreshes information about a key recursively.
Definition: uniclientgen.cc:147
UniClientGen
Communicates with a UniConfDaemon to fetch and store keys and values.
Definition: uniclientgen.h:28
UniClientGen::iterator
virtual Iter * iterator(const UniConfKey &key)
Returns an iterator over the children of the specified key.
Definition: uniclientgen.cc:265
UniConfGen
A default implementation of IUniConfGen, providing various handy features that save trouble when impl...
Definition: uniconfgen.h:199
UniClientGen::get
virtual WvString get(const UniConfKey &key)
Fetches a string value for a key from the registry.
Definition: uniclientgen.cc:166
UniConfGen::Iter
An abstract iterator over keys and values in a generator.
Definition: uniconfgen.h:323
UniClientGen::isok
virtual bool isok()
Determines if the generator is usable and working properly.
Definition: uniclientgen.cc:141