Program Listing for File BasicValidator.h
↰ Return to documentation for file (include/lanelet2_validation/BasicValidator.h)
#pragma once
#include <lanelet2_core/Forward.h>
#include <lanelet2_traffic_rules/TrafficRules.h>
#include <memory>
#include "lanelet2_validation/Issue.h"
namespace lanelet {
namespace routing {
class RoutingGraph;
} // namespace routing
namespace validation {
class MapValidator { // NOLINT
public:
virtual ~MapValidator() = default;
constexpr static const char* name() { return ""; }
virtual Issues operator()(const LaneletMap& map) = 0;
};
using MapValidatorUPtr = std::unique_ptr<MapValidator>;
using MapValidatorUPtrs = std::vector<MapValidatorUPtr>;
class TrafficRuleValidator { // NOLINT
public:
constexpr static const char* name() { return ""; }
virtual Issues operator()(const LaneletMap& map, const std::vector<traffic_rules::TrafficRulesUPtr>& rules) = 0;
virtual ~TrafficRuleValidator() = default;
};
using TrafficRuleValidatorUPtr = std::unique_ptr<TrafficRuleValidator>;
using TrafficRuleValidatorUPtrs = std::vector<TrafficRuleValidatorUPtr>;
class RoutingGraphValidator { // NOLINTs
public:
constexpr static const char* name() { return ""; }
virtual Issues operator()(const routing::RoutingGraph& graph, const traffic_rules::TrafficRules& rules) = 0;
virtual ~RoutingGraphValidator() = default;
};
using RoutingGraphValidatorUPtr = std::unique_ptr<RoutingGraphValidator>;
using RoutingGraphValidatorUPtrs = std::vector<RoutingGraphValidatorUPtr>;
} // namespace validation
} // namespace lanelet