WvStreams
uniregistrygen.h
1/* -*- Mode: C++ -*-
2 * Worldvisions Weaver Software:
3 * Copyright (C) 1997-2003 Net Integration Technologies, Inc.
4 *
5 * A generator that exposes the windows registry.
6 *
7 * When linking statically, use the following #pragma to ensure this
8 * generator gets registered:
9 * #pragma comment(linker, "/include:?UniRegistryGenMoniker@@3V?$WvMoniker@VUniConfGen@@@@A")
10 */
11#ifndef __UNICONFREGISTRY_H
12#define __UNICONFREGISTRY_H
13
14#include "uniconfgen.h"
15#include "wvlog.h"
16#include "windows.h"
17
25{
26 WvLog m_log;
27 HKEY m_hRoot;
28
29protected:
30 virtual void flush_buffers() { }
31
32public:
34 virtual ~UniRegistryGen();
35
36 /***** Overridden methods *****/
37
38 virtual bool isok();
39 virtual WvString get(const UniConfKey &key);
40 virtual void set(const UniConfKey &key, WvStringParm value);
41 virtual void setv(const UniConfPairList &pairs);
42 virtual bool exists(const UniConfKey &key);
43 virtual bool haschildren(const UniConfKey &key);
44 virtual Iter *iterator(const UniConfKey &key);
45};
46
48{
49public:
50 UniRegistryGenIter(UniRegistryGen &gen, const UniConfKey &key, HKEY base);
51
53 virtual ~UniRegistryGenIter();
54
59 virtual void rewind();
60
66 virtual bool next();
67
69 virtual UniConfKey key() const;
70
72 virtual WvString value() const;
73
74private:
75 LONG next_key();
76 LONG next_value();
77
78 HKEY m_hKey;
79 enum Enumerating { KEYS, VALUES } m_enumerating;
80 unsigned m_index;
81 UniRegistryGen &gen;
82 const UniConfKey parent;
83 UniConfKey current_key;
84 const HKEY m_dontClose;
85};
86
87#endif // __UNICONFREGISTRY_H
An abstract iterator over keys and values in a generator.
Definition uniconfgen.h:324
A default implementation of IUniConfGen, providing various handy features that save trouble when impl...
Definition uniconfgen.h:200
Represents a UniConf key which is a path in a hierarchy structured much like the traditional Unix fil...
Definition uniconfkey.h:39
virtual UniConfKey key() const
Returns the current key.
virtual ~UniRegistryGenIter()
Destroys the iterator.
virtual bool next()
Seeks to the next element in the sequence.
virtual void rewind()
Rewinds the iterator.
virtual WvString value() const
Returns the value of the current key.
A generator that exposes the windows registry.
virtual void flush_buffers()
Flushes any commitment/notification buffers .
virtual bool exists(const UniConfKey &key)
Without fetching its value, returns true if a key exists.
virtual bool haschildren(const UniConfKey &key)
Returns true if a key has children.
virtual void setv(const UniConfPairList &pairs)
Stores multiple key-value pairs into the registry.
virtual bool isok()
Determines if the generator is usable and working properly.
virtual WvString get(const UniConfKey &key)
Fetches a string value for a key from the registry.
virtual Iter * iterator(const UniConfKey &key)
Returns an iterator over the children of the specified key.
A WvFastString acts exactly like a WvString, but can take (const char *) strings without needing to a...
Definition wvstring.h:94
A WvLog stream accepts log messages from applications and forwards them to all registered WvLogRcv's.
Definition wvlog.h:57
WvString is an implementation of a simple and efficient printable-string class.
Definition wvstring.h:330