Validators.h File
Built-in contract implementations and default registry. More...
Included Headers
#include <memory>
#include <string>
#include <utility>
#include "builder/Node.h"
#include "builder/NodeGroup.h"
#include "contracts/Contract.h"
#include "contracts/ContractRegistry.h"
#include "contracts/ValidationReport.h"
Namespaces Index
| namespace | simaai |
| namespace | neat |
| namespace | validators |
Description
Built-in contract implementations and default registry.
File Listing
The file content with the documentation metadata removed is:
15#include "contracts/Contract.h"
16#include "contracts/ContractRegistry.h"
17#include "contracts/ValidationReport.h"
19namespace simaai::neat {
20namespace validators {
29inline std::shared_ptr<Contract> NonEmptyPipeline() {
30 class C final : public Contract {
39 void validate(const NodeGroup& nodes, const ValidationContext& ctx,
40 ValidationReport& r) const override {
43 r.add_error(id(), "EMPTY_PIPELINE", "No nodes were added to the pipeline.");
53inline std::shared_ptr<Contract> NoNullNodes() {
54 class C final : public Contract {
63 void validate(const NodeGroup& nodes, const ValidationContext& ctx,
64 ValidationReport& r) const override {
69 r.add_error(id(), "NULL_NODE", "Null node pointer in NodeGroup.", i);
82inline std::shared_ptr<Contract> SinkLastForRun(std::string sink_kind = "Output") {
83 class C final : public Contract {
93 void validate(const NodeGroup& nodes, const ValidationContext& ctx,
94 ValidationReport& r) const override {
95 if (ctx.mode != ValidationContext::Mode::Run)
107 r.add_error(id(), "SINK_NOT_LAST", "Last node must be " + sink_kind_ + " for run().",
115 r.add_error(id(), "MULTIPLE_SINKS",
133inline std::shared_ptr<Contract> RtspRequiresSource(std::string source_kind = "StillImageInput") {
134 class C final : public Contract {
144 void validate(const NodeGroup& nodes, const ValidationContext& ctx,
145 ValidationReport& r) const override {
146 if (ctx.mode != ValidationContext::Mode::Rtsp)
160 r.add_error(id(), "RTSP_SOURCE_MISSING",
180inline ContractRegistry DefaultRegistry() {
181 ContractRegistry reg;
182 reg.add(NonEmptyPipeline());
183 reg.add(NoNullNodes());
184 reg.add(SinkLastForRun());
185 reg.add(RtspRequiresSource());
Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.9.1.