17 #include <vlutil/vlExceptions.h>
19 #include <boost/ptr_container/ptr_map.hpp>
20 #include <tbb/recursive_mutex.h>
27 namespace MAKVRinTerra
29 class DtAttributeConfigParser;
45 static AttributeType stringToType(
const std::string& str);
49 boost::optional<DtFeature::Attribute> evaluate()
const;
52 boost::optional<DtFeature::Attribute> evaluate(
const DtFeature& feature)
const;
55 void print(std::ostream&)
const;
57 bool read(StringVector::const_iterator&, StringVector::const_iterator);
60 bool read(std::istream&);
86 typedef std::map<DtFeature::Key::String, DtQuery>
DtQueryMap;
102 virtual bool readAttributeConfig(
103 const std::string& filename,
110 virtual DtQuery findQuery(std::string)
const;
116 virtual void print(std::ostream&)
const;
119 virtual std::string pprintQueries()
const;
122 virtual std::string pprintTransforms()
const;
129 const char *errorMessage,
140 bool existsUnresolved,
const DtException* previousException = 0)
throw();
144 std::string queryName()
const;
148 bool queryExistsUnresolved()
const;
163 virtual DtQuery buildQueryNoThrow(std::string line);
182 virtual bool resolveNamedQueries();
184 virtual bool resolveNamedQuery(std::string queryName);
195 virtual DtQuery buildQueryAndBlock(
202 virtual DtQuery buildFirstQuery(
210 virtual DtQuery queryInsideParen(