File sanity_checker.h
File List > core > sanity_checker.h
Go to the documentation of this file
#pragma once
#include <uipc/core/i_sanity_checker.h>
namespace uipc::core::internal
{
class Scene;
}
namespace uipc::core
{
class Scene;
class UIPC_CORE_API SanityChecker final
{
  public:
    SanityChecker(internal::Scene& scene);
    ~SanityChecker();
    SanityCheckResult check(std::string_view workspace);
    void              report();
    const unordered_map<U64, S<SanityCheckMessage>>& errors() const;
    const unordered_map<U64, S<SanityCheckMessage>>& warns() const;
    const unordered_map<U64, S<SanityCheckMessage>>& infos() const;
    void clear();
  private:
    core::SanityCheckMessageCollection m_errors;
    core::SanityCheckMessageCollection m_warns;
    core::SanityCheckMessageCollection m_infos;
    internal::Scene& m_scene;
};
}  // namespace uipc::core