www.mooseframework.org
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 29 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:299
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: