WvStreams
Main Page
Modules
Classes
Files
File List
File Members
uniconf
unifiltergen.cc
1
/*
2
* Worldvisions Weaver Software:
3
* Copyright (C) 2002 Net Integration Technologies, Inc.
4
*
5
* A UniConfGen framework to simplify writing filtering generators.
6
*/
7
#include "unifiltergen.h"
8
9
/***** UniFilterGen *****/
10
11
UniFilterGen::UniFilterGen(
IUniConfGen
*inner)
12
: xinner(NULL)
13
{
14
setinner(inner);
15
}
16
17
18
UniFilterGen::~UniFilterGen()
19
{
20
IUniConfGen
*gen = xinner;
21
setinner
(NULL);
22
WVRELEASE(gen);
23
}
24
25
26
void
UniFilterGen::setinner
(
IUniConfGen
*inner)
27
{
28
if
(xinner)
29
xinner->
del_callback
(
this
);
30
xinner =
inner
;
31
if
(xinner)
32
xinner->
add_callback
(
this
, wv::bind(&
UniFilterGen::gencallback
,
this
,
33
_1, _2));
34
}
35
36
37
bool
UniFilterGen::keymap
(
const
UniConfKey
&unmapped_key,
UniConfKey
&mapped_key)
38
{
39
// by default, don't rename the key
40
mapped_key = unmapped_key;
41
return
true
;
42
}
43
44
bool
UniFilterGen::reversekeymap
(
const
UniConfKey
&mapped_key,
UniConfKey
&unmapped_key)
45
{
46
// by default, don't rename the key
47
unmapped_key = mapped_key;
48
return
true
;
49
}
50
51
52
void
UniFilterGen::commit
()
53
{
54
if
(xinner)
55
xinner->
commit
();
56
}
57
58
59
bool
UniFilterGen::refresh
()
60
{
61
if
(xinner)
62
return
xinner->
refresh
();
63
else
64
return
false
;
65
}
66
67
68
void
UniFilterGen::prefetch
(
const
UniConfKey
&key,
bool
recursive)
69
{
70
UniConfKey
mapped_key;
71
if
(xinner &&
keymap
(key, mapped_key))
72
xinner->
prefetch
(mapped_key, recursive);
73
}
74
75
76
WvString
UniFilterGen::get
(
const
UniConfKey
&key)
77
{
78
UniConfKey
mapped_key;
79
if
(xinner &&
keymap
(key, mapped_key))
80
return
xinner->
get
(mapped_key);
81
else
82
return
WvString::null;
83
}
84
85
86
void
UniFilterGen::flush_buffers
()
87
{
88
if
(xinner)
89
xinner->
flush_buffers
();
90
}
91
92
93
void
UniFilterGen::set
(
const
UniConfKey
&key,
WvStringParm
value)
94
{
95
UniConfKey
mapped_key;
96
if
(xinner &&
keymap
(key, mapped_key))
97
xinner->
set
(mapped_key, value);
98
}
99
100
101
void
UniFilterGen::setv
(
const
UniConfPairList &pairs)
102
{
103
if
(xinner)
104
xinner->
setv
(pairs);
105
}
106
107
108
bool
UniFilterGen::exists
(
const
UniConfKey
&key)
109
{
110
UniConfKey
mapped_key;
111
if
(xinner &&
keymap
(key, mapped_key))
112
return
xinner->
exists
(mapped_key);
113
else
114
return
false
;
115
}
116
117
118
bool
UniFilterGen::haschildren
(
const
UniConfKey
&key)
119
{
120
UniConfKey
mapped_key;
121
if
(xinner &&
keymap
(key, mapped_key))
122
return
xinner->
haschildren
(mapped_key);
123
else
124
return
false
;
125
}
126
127
128
bool
UniFilterGen::isok
()
129
{
130
if
(xinner)
131
return
xinner->
isok
();
132
else
133
return
false
;
134
}
135
136
137
UniConfGen::Iter
*
UniFilterGen::iterator
(
const
UniConfKey
&key)
138
{
139
UniConfKey
mapped_key;
140
if
(xinner &&
keymap
(key, mapped_key))
141
return
xinner->
iterator
(mapped_key);
142
else
143
return
NULL;
144
}
145
146
147
UniConfGen::Iter
*
UniFilterGen::recursiveiterator
(
const
UniConfKey
&key)
148
{
149
UniConfKey
mapped_key;
150
if
(xinner &&
keymap
(key, mapped_key))
151
return
xinner->
recursiveiterator
(mapped_key);
152
else
153
return
NULL;
154
}
155
156
157
void
UniFilterGen::gencallback
(
const
UniConfKey
&key,
WvStringParm
value)
158
{
159
UniConfKey
unmapped_key;
160
if
(xinner &&
reversekeymap
(key, unmapped_key))
161
delta
(unmapped_key, value);
162
}
Generated on Thu Mar 14 2013 19:25:35 for WvStreams by
1.8.1.2