Program Listing for File DimensionValidator.hpp

Return to documentation for file (src/navtk/utils/DimensionValidator.hpp)

#pragma once

#include <string>

#include <navtk/not_null.hpp>
#include <navtk/utils/ValidationContext.hpp>
#include <navtk/utils/ValidationResult.hpp>

namespace navtk {
namespace utils {

class DimensionValidatorPrivate;

class DimensionValidator {
public:
    DimensionValidator();

    ~DimensionValidator();

    DimensionValidator(const DimensionValidator& other) = delete;

    DimensionValidator(DimensionValidator&& other) = delete;

    DimensionValidator& operator=(const DimensionValidator& other) = delete;

    DimensionValidator& operator=(DimensionValidator&& other) = delete;

    void dim(const std::string& name, const Matrix& matrix, Size rows, Size cols);

    void dim(const std::string& name, const Matrix& matrix, Size rows, char cols);

    void dim(const std::string& name, const Matrix& matrix, char rows, Size cols);

    void dim(const std::string& name, const Matrix& matrix, char rows, char cols);

    void perform_validation(ErrorMode mode, ValidationResult& result_out);

private:
    not_null<std::unique_ptr<DimensionValidatorPrivate>> implementation;
};

}  // namespace utils
}  // namespace navtk