2#ifndef CLICK_VARIABLEENVIRONMENT_HH
3#define CLICK_VARIABLEENVIRONMENT_HH
9class VariableExpander {
public:
11 VariableExpander() { }
12 virtual ~VariableExpander() { }
14 virtual int expand(
const String &var,
String &expansion,
int vartype,
int depth)
const = 0;
18class VariableEnvironment :
public VariableExpander {
public:
20 VariableEnvironment(VariableEnvironment *parent);
22 int depth()
const {
return _depth; }
23 int size()
const {
return _names.size(); }
25 bool defines(
const String &name)
const;
26 const String &name(
int i)
const {
return _names[i]; }
28 const String &value(
int i)
const {
return _values[i]; }
29 const String &value(
const String &name,
bool &found)
const;
31 void clear() { _names.clear(); _values.clear(); }
33 VariableEnvironment *parent_of(
int depth)
const;
34 bool define(
const String &name,
const String &value,
bool override);
35 int expand(
const String &var,
String &expansion,
int vartype,
int depth)
const;
42 VariableEnvironment *_parent;
46String cp_expand(
const String &str,
const VariableExpander &env,
47 bool expand_quote =
false,
int depth = 0);
Efficiently build up Strings from pieces.
Definition straccum.hh:28
A string of characters.
Definition string.hh:22
Vector template.
Definition vector.hh:111
Click's vector container template.