40class KeyValValue:
public RefCount {
42 enum KeyValValueError { OK, WrongType };
45 KeyValValue(
const KeyValValue&);
46 virtual ~KeyValValue();
48 virtual KeyValValue::KeyValValueError doublevalue(
double&)
const;
49 virtual KeyValValue::KeyValValueError booleanvalue(
int&)
const;
50 virtual KeyValValue::KeyValValueError floatvalue(
float&)
const;
51 virtual KeyValValue::KeyValValueError charvalue(
char&)
const;
52 virtual KeyValValue::KeyValValueError intvalue(
int&)
const;
53 virtual KeyValValue::KeyValValueError sizevalue(
size_t&)
const;
54 virtual KeyValValue::KeyValValueError pcharvalue(
const char*&)
const;
55 virtual KeyValValue::KeyValValueError stringvalue(std::string&)
const;
57 virtual void print(std::ostream &o=
ExEnv::out0())
const;
161class KeyValValueRefDescribedClass:
public KeyValValue {
165 KeyValValueRefDescribedClass() {}
167 KeyValValueRefDescribedClass(
const KeyValValueRefDescribedClass&);
168 ~KeyValValueRefDescribedClass();
173class KeyValValueString:
public KeyValValue {
176 char *_val_to_delete;
181 enum Storage { Copy, Steal, Use };
183 KeyValValueString(
const char*,
184 KeyValValueString::Storage s = KeyValValueString::Use);
185 KeyValValueString(
char*,
186 KeyValValueString::Storage s = KeyValValueString::Use);
187 KeyValValueString(
const KeyValValueString&);
188 ~KeyValValueString();
189 KeyValValue::KeyValValueError doublevalue(
double&)
const;
190 KeyValValue::KeyValValueError booleanvalue(
int&)
const;
191 KeyValValue::KeyValValueError floatvalue(
float&)
const;
192 KeyValValue::KeyValValueError charvalue(
char&)
const;
193 KeyValValue::KeyValValueError intvalue(
int&)
const;
194 KeyValValue::KeyValValueError sizevalue(
size_t&)
const;
195 KeyValValue::KeyValValueError pcharvalue(
const char*&)
const;
196 KeyValValue::KeyValValueError stringvalue(std::string&)
const;