WvStreams
include/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
24class UniRegistryGen : public UniConfGen
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
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.
A default implementation of IUniConfGen, providing various handy features that save trouble when impl...
Represents a UniConf key which is a path in a hierarchy structured much like the traditional Unix fil...
virtual UniConfKey key() const
Returns the current key.
virtual UniConfKey key() const
Returns the current key.
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.
virtual ~UniRegistryGenIter()
Destroys the iterator.
A generator that exposes the windows registry.
virtual void flush_buffers()
Flushes any commitment/notification buffers .
virtual Iter * iterator(const UniConfKey &key)
Returns an iterator over the children of the specified key.
virtual bool haschildren(const UniConfKey &key)
Returns true if a key has children.
virtual void set(const UniConfKey &key, WvStringParm value)
Stores a string value for a key into the registry.
virtual bool exists(const UniConfKey &key)
Without fetching its value, returns true if a key exists.
virtual void setv(const UniConfPairList &pairs)
Stores multiple key-value pairs into the registry.
virtual WvString get(const UniConfKey &key)
Fetches a string value for a key from the registry.
virtual bool isok()
Determines if the generator is usable and working properly.
A WvFastString acts exactly like a WvString, but can take (const char *) strings without needing to a...
A WvLog stream accepts log messages from applications and forwards them to all registered WvLogRcv's.
WvString is an implementation of a simple and efficient printable-string class.