VapourSynth-llvmexpr
Loading...
Searching...
No Matches
analysis::AnalysisResults Class Reference

#include <llvmexpr/analysis/framework/AnalysisResults.hpp>

Public Member Functions

template<typename PassT>
PassT::Result & getResult ()
template<typename PassT>
const PassT::Result & getResult () const
template<typename PassT>
void setResult (typename PassT::Result &&result)
template<typename PassT>
bool hasResult () const
template<typename PassT>
void invalidate ()
void invalidate (const std::type_index &pass_type)
void clear ()
const std::unordered_map< std::type_index, std::any > & getAll () const

Detailed Description

Definition at line 32 of file AnalysisResults.hpp.

Member Function Documentation

◆ clear()

void analysis::AnalysisResults::clear ( )
inline

Definition at line 73 of file AnalysisResults.hpp.

73{ results.clear(); }

◆ getAll()

const std::unordered_map< std::type_index, std::any > & analysis::AnalysisResults::getAll ( ) const
inlinenodiscard

Definition at line 76 of file AnalysisResults.hpp.

76 {
77 return results;
78 }

◆ getResult() [1/2]

template<typename PassT>
PassT::Result & analysis::AnalysisResults::getResult ( )
inline

Definition at line 34 of file AnalysisResults.hpp.

34 {
35 auto key = std::type_index(typeid(PassT));
36 auto it = results.find(key);
37 if (it == results.end()) {
38 throw AnalysisError(
39 std::format("Analysis result not available for pass: {}",
40 typeid(PassT).name()));
41 }
42 return std::any_cast<typename PassT::Result&>(it->second);
43 }

◆ getResult() [2/2]

template<typename PassT>
const PassT::Result & analysis::AnalysisResults::getResult ( ) const
inline

Definition at line 45 of file AnalysisResults.hpp.

45 {
46 auto key = std::type_index(typeid(PassT));
47 auto it = results.find(key);
48 if (it == results.end()) {
49 throw AnalysisError(
50 std::format("Analysis result not available for pass: {}",
51 typeid(PassT).name()));
52 }
53 return std::any_cast<const typename PassT::Result&>(it->second);
54 }

◆ hasResult()

template<typename PassT>
bool analysis::AnalysisResults::hasResult ( ) const
inlinenodiscard

Definition at line 61 of file AnalysisResults.hpp.

61 {
62 return results.contains(std::type_index(typeid(PassT)));
63 }

◆ invalidate() [1/2]

template<typename PassT>
void analysis::AnalysisResults::invalidate ( )
inline

Definition at line 65 of file AnalysisResults.hpp.

65 {
66 results.erase(std::type_index(typeid(PassT)));
67 }

◆ invalidate() [2/2]

void analysis::AnalysisResults::invalidate ( const std::type_index & pass_type)
inline

Definition at line 69 of file AnalysisResults.hpp.

69 {
70 results.erase(pass_type);
71 }

◆ setResult()

template<typename PassT>
void analysis::AnalysisResults::setResult ( typename PassT::Result && result)
inline

Definition at line 56 of file AnalysisResults.hpp.

56 {
57 auto key = std::type_index(typeid(PassT));
58 results[key] = std::any(std::move(result));
59 }

The documentation for this class was generated from the following file: