42 #include "EST_error.h"
49 template <
class K,
class V>
55 template <
class K,
class V>
60 for (ptr = list.head(); ptr != 0; ptr= ptr->next())
61 if (list.item(ptr).k == key)
66 template <
class K,
class V>
73 for (ptr = list.head(); ptr != 0; ptr= ptr->next())
76 if (list.item(ptr).v == val)
86 template <
class K,
class V>
89 if (list.index(kptr) == -1)
93 list.item(kptr).v = rval;
98 template <
class K,
class V>
101 if (list.index(kptr) == -1)
105 list.item(kptr).k = rkey;
112 template <
class K,
class V>
120 list.item(ptr).v = rval;
128 template<
class K,
class V>
136 EST_error(
"No value set for '%s'", error_name(rkey));
141 return list.item(ptr).v;
144 template<
class K,
class V>
150 template<
class K,
class V>
157 return list.item(ptr).v;
163 template<
class K,
class V>
167 return list.item(kptr).v;
169 if (list.index(kptr) == -1)
172 EST_error(
"No value set in EST_TKVL");
176 return list.item(kptr).v;
180 template<
class K,
class V>
189 template<
class K,
class V>
193 return list.item(kptr).k;
194 if (list.index(kptr) == -1)
195 EST_error(
"No value set in EST_TKVL");
197 return list.item(kptr).k;
200 template<
class K,
class V>
206 template<
class K,
class V>
213 EST_error(
"No value set for '%s'", error_name(v));
218 return list.item(ptr).k;
221 template<
class K,
class V>
224 if (find_pair_key(rkey) == 0)
232 template<
class K,
class V>
236 for(p=list.head(); p; p=p->next())
239 (*func)(item.k, item.v);
247 template<
class K,
class V>
251 if (change_val(rkey, rval))
262 template<
class K,
class V>
271 en = error_name(rkey);
272 EST_warning(
"EST_TKVL: no item labelled '%s'", en);
290 template<
class K,
class V>
EST_TKVL<K, V> &EST_TKVL<K, V>::operator +=