https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
CyclicDependencyException< T, Compare > Class Template Reference

#include <DependencyResolver.h>

Inheritance diagram for CyclicDependencyException< T, Compare >:
[legend]

Public Member Functions

 CyclicDependencyException (const std::string &error, const DependencyResolver< T, Compare > &graph) throw ()
 
 CyclicDependencyException (const CyclicDependencyException &e) throw ()
 
 ~CyclicDependencyException () throw ()
 
const std::vector< T > & getCyclicDependencies () const
 

Private Attributes

std::vector< T > _cyclic_graph
 

Detailed Description

template<class T, class Compare = std::less<T>>
class CyclicDependencyException< T, Compare >

Definition at line 462 of file DependencyResolver.h.

Constructor & Destructor Documentation

◆ CyclicDependencyException() [1/2]

template<class T , class Compare = std::less<T>>
CyclicDependencyException< T, Compare >::CyclicDependencyException ( const std::string &  error,
const DependencyResolver< T, Compare > &  graph 
)
throw (
)
inline

Definition at line 465 of file DependencyResolver.h.

467 : runtime_error(error)
468 {
469 const auto & sorted = graph._sorted_vector;
470 auto first_occurence = std::find(sorted.begin(), sorted.end(), graph._circular_node);
471 if (first_occurence == sorted.end())
472 mooseError("We must have at least one occurence of the circular node");
473 auto second_occurence = std::find(first_occurence + 1, sorted.end(), graph._circular_node);
474 if (second_occurence == sorted.end())
475 mooseError("We must have two occurences of the circular node");
476 _cyclic_graph = std::vector<T>(first_occurence, second_occurence + 1);
477 }
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application.
Definition MooseError.h:311
T _circular_node
Data member for storing nodes that appear circularly in the graph.
std::vector< T > _sorted_vector
"sorted" vector of nodes

◆ CyclicDependencyException() [2/2]

template<class T , class Compare = std::less<T>>
CyclicDependencyException< T, Compare >::CyclicDependencyException ( const CyclicDependencyException< T, Compare > &  e)
throw (
)
inline

Definition at line 479 of file DependencyResolver.h.

480 : runtime_error(e), _cyclic_graph(e._cyclic_graph)
481 {
482 }

◆ ~CyclicDependencyException()

template<class T , class Compare = std::less<T>>
CyclicDependencyException< T, Compare >::~CyclicDependencyException ( )
throw (
)
inline

Definition at line 484 of file DependencyResolver.h.

484{}

Member Function Documentation

◆ getCyclicDependencies()

template<class T , class Compare = std::less<T>>
const std::vector< T > & CyclicDependencyException< T, Compare >::getCyclicDependencies ( ) const
inline

Member Data Documentation

◆ _cyclic_graph

template<class T , class Compare = std::less<T>>
std::vector<T> CyclicDependencyException< T, Compare >::_cyclic_graph
private

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