.. _program_listing_file_src_navtk_utils_ValidationContext.hpp: Program Listing for File ValidationContext.hpp ============================================== |exhale_lsh| :ref:`Return to documentation for file ` (``src/navtk/utils/ValidationContext.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include #include #include #include #include #include #include namespace navtk { namespace utils { class DimensionValidator; class ValidationContext { public: ValidationContext(); ValidationContext(ErrorMode mode); ~ValidationContext(); ValidationContext(const ValidationContext& other) = delete; ValidationContext(ValidationContext&& other) = delete; ValidationContext& operator=(const ValidationContext& other) = delete; ValidationContext& operator=(ValidationContext&& other) = delete; ValidationContext& add_matrix(const Matrix& matrix); ValidationContext& add_matrix(const Matrix& matrix, const std::string& name); ValidationContext& add_matrix(const Vector& matrix); ValidationContext& add_matrix(const Vector& matrix, const std::string& name); ValidationContext& symmetric(double rtol = 1e-5, double atol = 1e-8); ValidationContext& max(double limit); ValidationContext& min(double limit); ValidationContext& dim(Size rows, Size cols); ValidationContext& dim(Size rows, int cols); ValidationContext& dim(int rows, Size cols); ValidationContext& dim(int rows, int cols); ValidationContext& dim(int rows, char cols); ValidationContext& dim(Size rows, char cols); ValidationContext& dim(char rows, int cols); ValidationContext& dim(char rows, Size cols); ValidationContext& dim(char rows, char cols); // ValidationContext& transposable(); ValidationResult validate(); ErrorMode get_mode() const; bool is_enabled() const; operator bool() const; protected: not_null> dimension_validator; std::list> matrices_to_validate; const Matrix* current_matrix; const std::string* current_matrix_name; bool check_current_matrix() const; void mark_validation_needed(); bool validation_needed() const; ValidationResult cached_result; ErrorMode mode; }; } // namespace utils } // namespace navtk