26 #include <unordered_map> 27 #include <unordered_set> 41 using TagMap = std::unordered_map<TagId, std::string>;
60 virtual bool Evaluate(
const TagMap& tagMap)
const = 0;
85 return !condition->Evaluate(tagMap);
104 std::list<TagConditionRef> conditions;
112 bool Evaluate(
const TagMap& tagMap)
const override;
137 return tagMap.find(tag)!=tagMap.end();
159 std::string tagStringValue;
165 const std::string& tagValue);
168 const size_t& tagValue);
170 bool Evaluate(
const TagMap& tagMap)
const override;
183 std::unordered_set<std::string> tagValues;
188 void AddTagValue(
const std::string& tagValue);
190 bool Evaluate(
const TagMap& tagMap)
const override;
213 const std::string& name);
234 std::vector<TagInfo> tags;
238 std::unordered_map<std::string,TagId> stringToTagMap;
239 std::unordered_map<TagId,uint32_t> nameTagIdToPrioMap;
240 std::unordered_map<TagId,uint32_t> nameAltTagIdToPrioMap;
241 std::unordered_map<std::string,uint8_t> nameToMaxSpeedMap;
243 std::unordered_map<std::string,size_t> surfaceToGradeMap;
249 TagId RegisterTag(
const std::string& tagName);
251 TagId RegisterNameTag(
const std::string& tagName,
253 TagId RegisterNameAltTag(
const std::string& tagName,
256 TagId GetTagId(
const char* name)
const;
257 TagId GetTagId(
const std::string& name)
const;
259 bool IsNameTag(
TagId tag,
260 uint32_t& priority)
const;
261 bool IsNameAltTag(
TagId tag,
262 uint32_t& priority)
const;
268 void RegisterSurfaceToGradeMapping(
const std::string& surface,
274 bool GetGradeForSurface(
const std::string& surfaceValue,
275 size_t& grade)
const;
282 void RegisterMaxSpeedAlias(
const std::string& alias,
284 bool GetMaxSpeedFromAlias(
const std::string& alias,
285 uint8_t& maxSpeed)
const;
uint16_t TagId
Definition: Tag.h:39
std::string GetName() const
Definition: Tag.h:215
std::shared_ptr< TagIsInCondition > TagIsInConditionRef
Definition: Tag.h:198
static const TagId tagIgnore
Definition: Tag.h:48
TagId GetId() const
Definition: Tag.h:223
bool Evaluate(const TagMap &tagMap) const override
Definition: Tag.h:83
#define CLASS_FINAL
Definition: Compiler.h:26
#define OSMSCOUT_API
Definition: CoreImportExport.h:45
std::shared_ptr< TagBoolCondition > TagBoolConditionRef
Definition: Tag.h:120
std::unordered_map< TagId, std::string > TagMap
Definition: Tag.h:41
std::shared_ptr< TagCondition > TagConditionRef
Definition: Tag.h:68
bool Evaluate(const TagMap &tagMap) const override
Definition: Tag.h:135
BinaryOperator
Definition: Parsing.h:32