17 #include <vlutil/vlExceptions.h>
19 #include <boost/ptr_container/ptr_map.hpp>
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(
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(
std::map< DtFeature::Key::String, DtQuery > DtQueryMap
Map of query names to queries.
Definition: attributeConfigParser.h:86
#define DT_DLL_features
stop complaining about multiple independent base classes for boost::noncopyable this should probably ...
Definition: featuresDefines.h:41
std::unique_ptr< DtConsoleCommandOwner > myCommandOwner
Definition: attributeConfigParser.h:249
DtFeature::Key::String name
Definition: attributeConfigParser.h:220
std::set< std::string > myQueryJoinTokens
Definition: attributeConfigParser.h:244
bool resolving
Definition: attributeConfigParser.h:223
std::string myQueryName
Definition: attributeConfigParser.h:151
DT_DLL_features std::ostream & operator<<(std::ostream &, const DtFeatureTransform &)
std::ostream output.
std::unique_ptr< DtConfigStringTokenizer > myTokenizer
Definition: attributeConfigParser.h:246
TransformVector myTransforms
Set of transforms.
Definition: attributeConfigParser.h:242
This is a class which maintains a list of string command names and the callback functions that are to...
Definition: consoleCommandManager.h:56
DtQuery schema
Definition: attributeConfigParser.h:222
std::vector< std::string > StringVector
Definition: attributeConfigParser.h:81
Definition: attributeConfigParser.h:218
void print(double **a, int r, int c, const char *str)
Represents a set of characeters a DtFeature object can have. DtQuery objects are the way to communica...
Definition: query.h:37
std::unique_ptr< DtConsoleCommandManager > myCommandManager
Definition: attributeConfigParser.h:248
StringVector::const_iterator ConstStringIterator
Definition: attributeConfigParser.h:83
A utility class for use with DtConsoleCommandManager. This class takes ownership of an arbitrary numb...
Definition: consoleCommandManager.h:168
bool resolved
Definition: attributeConfigParser.h:224
Mutex myMutex
Definition: attributeConfigParser.h:216
Parser for feature system configuration file. Constructs a set of DtQuery objects, each with a name from the configuration file. Also constructs a list of DtFeatureTransform objects, using DtQuery names as filters.
Definition: attributeConfigParser.h:78
Exception subclass used within DtAttributeConfigParser.
Definition: attributeConfigParser.h:125
StringVector::iterator StringIterator
Definition: attributeConfigParser.h:82
Case insensitive string.
Definition: feature.h:70
bool clearPrevious
Definition: attributeConfigParser.h:225
Thrown when a query is requested which has unresolved components.
Definition: attributeConfigParser.h:136
Represents a GIS feature. Features consist of a DtFeatureGeometry (2.5D geometric vector data) and a ...
Definition: feature.h:36
UnresolvedQueryMap myUnresolvedQueries
Holds queries as string vectors until they are resolved (turned into DtQuery objects). This is done so queries can be modified by source-specific configurations before named query replacement is done.
Definition: attributeConfigParser.h:236
std::recursive_mutex Mutex
Definition: attributeConfigParser.h:215
std::multimap< DtFeature::Key::String, UnresolvedQuery > UnresolvedQueryMap
Definition: attributeConfigParser.h:230
std::vector< DtFeatureTransform > TransformVector
Sequence of transforms.
Definition: attributeConfigParser.h:89
bool myQueryExistsUnresolved
Definition: attributeConfigParser.h:152
DtQueryMap myQueryMap
Map of named queries, defined in config file.
Definition: attributeConfigParser.h:239
std::vector< std::string > tokens
Definition: attributeConfigParser.h:221