cauldron  0.0.0
 All Classes Namespaces Files Functions Variables Typedefs
Public Member Functions | Protected Attributes | List of all members
cauldron::Sieve< Product > Class Template Reference

#include <sieve.h>

Public Member Functions

 Sieve (unsigned max_cycles=MAX_CYCLES)
 
 Sieve (std::initializer_list< Requirement< Product >> requirements, unsigned max_cycles=MAX_CYCLES)
 
 Sieve (const std::vector< Requirement< Product >> &requirements, unsigned max_cycles=MAX_CYCLES)
 
bool satisfactory (Product product) const
 
Sieve< Product > expand (const Requirement< Product > &requirement) const
 
Product sift (std::function< Product()> producer) const
 

Protected Attributes

std::vector< Requirement
< Product > > 
requirements_
 
unsigned max_cycles_
 

Constructor & Destructor Documentation

template<typename Product>
cauldron::Sieve< Product >::Sieve ( unsigned  max_cycles = MAX_CYCLES)
inlineexplicit
template<typename Product>
cauldron::Sieve< Product >::Sieve ( std::initializer_list< Requirement< Product >>  requirements,
unsigned  max_cycles = MAX_CYCLES 
)
inline
template<typename Product>
cauldron::Sieve< Product >::Sieve ( const std::vector< Requirement< Product >> &  requirements,
unsigned  max_cycles = MAX_CYCLES 
)
inlineexplicit

Member Function Documentation

template<typename Product>
bool cauldron::Sieve< Product >::satisfactory ( Product  product) const
inline
template<typename Product>
Sieve<Product> cauldron::Sieve< Product >::expand ( const Requirement< Product > &  requirement) const
inline
template<typename Product>
Product cauldron::Sieve< Product >::sift ( std::function< Product()>  producer) const
inline

Member Data Documentation

template<typename Product>
std::vector<Requirement<Product> > cauldron::Sieve< Product >::requirements_
protected
template<typename Product>
unsigned cauldron::Sieve< Product >::max_cycles_
protected

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