38 #ifndef __EST_FEATURES_H__
39 #define __EST_FEATURES_H__
43 #include "EST_types.h"
44 #include "EST_TIterator.h"
45 #include "EST_error.h"
54 EST_Val est_val(const EST_Item_featfunc f);
67 void save_fpair(ostream &outf,
71 static EST_Val feature_default_value;
73 EST_Features(
const EST_Features &f);
86 const EST_Val &val(
const char *name)
const;
105 {
return val_path(path);}
111 {
return val_path(path, def);}
116 {
return val_path(path); }
122 {
return val_path(path,def); }
137 {
return val_path(path).
Float(); }
143 {
return val_path(path, def).
Float(); }
148 {
return val_path(path).
Int(); }
154 {
return val_path(path, def).
Int(); }
159 {
return val_path(path).
string(); }
166 {
return val_path(path, def).
string(); }
171 {
return *feats(val_path(path));}
176 EST_Features &A(
const EST_String &path, EST_Features &def)
const;
187 {
EST_Val pv(ival); set_path(name, pv);}
193 {
EST_Val pv(fval); set_path(name, pv); }
199 {
EST_Val pv((
float)dval); set_path(name, pv); }
205 {
EST_Val pv(sval); set_path(name, pv); }
211 {
EST_Val pv(cval); set_path(name, pv); }
237 { EST_Features *ff =
new EST_Features(f);
238 set_path(name, est_val(ff)); }
260 EST_Features&
operator = (
const EST_Features& a);
263 { f.
save(s);
return s; }
272 float F(
EST_Litem *p)
const {
return features->
list(p).v.Float(); }
274 int I(
EST_Litem *p)
const {
return features->
list(p).v.Int(); }
275 EST_Features &A(
EST_Litem *p) {
return *feats(features->
list(p).v); }
283 void point_to_first(
IPointer &ip)
const
284 { ip.i.begin(*features);}
285 void move_pointer_forwards(IPointer &ip)
const
287 bool points_to_something(
const IPointer &ip)
const
288 {
return ip.i != 0; }
317 EST_write_status save(ostream &outf)
const;
319 EST_write_status save_sexpr(ostream &outf)
const;
324 inline bool operator == (
const EST_Features &a,
const EST_Features &b)
325 {(void)a; (void)b;
return false;}
327 void merge_features(EST_Features &to,EST_Features &from);
const float F(const EST_String &path, float def) const
const int I(const EST_String &path, int def) const
void set_val(const EST_String &name, const EST_Val &sval)
const int Int(void) const
const char operator()(int i) const
Function style access to constant strings.
void set(const EST_String &name, const EST_String &sval)
const float Float(void) const
void set(const EST_String &name, int ival)
friend ostream & operator<<(ostream &s, const EST_String &str)
Stream output for EST_String.
const float F(const EST_String &path) const
const EST_String S(const EST_String &path) const
Templated Key-Value Item. Serves as the items in the list of the EST_TKVL class.
const EST_Val & f(const EST_String &path) const
const EST_Val & f(const EST_String &path, const EST_Val &def) const
EST_TList< EST_TKVI< K, V > > list
Linked list of key-val pairs. Don't use this as it will be made private in the future.
int remove_item(const K &rkey, int quiet=0)
remove key and val pair from list
const int I(const EST_String &path) const
const int length() const
number of key value pairs in list
const EST_String & string(void) const
EST_write_status save(ostream &outf) const
save features in already opened ostream
void set(const EST_String &name, EST_Features &f)
int add_item(const K &rkey, const V &rval, int no_search=0)
add key-val pair to list
EST_String & operator=(const char *str)
Assign C string to EST_String.
const EST_String S(const EST_String &path, const EST_String &def) const
void set(const EST_String &name, float fval)
EST_Features & A(const EST_String &path) const
void set(const EST_String &name, double dval)
void set(const EST_String &name, const char *cval)