bases module¶
-
namespace
cauldron¶ - template <typename Value, class Derived>
-
class
CloneHelper¶ - #include <bases.h>
Helper class for implementing
Strategy::clonemethod using curiously recurring template pattern .- Template Parameters
Value: type of values generated by strategy.Derived: derivative strategy class.
Inherits from cauldron::Strategy< Value >
- template <typename Value>
-
class
Filtered¶ - #include <bases.h>
Strategy which filters out values that satisfies defined
strategies::Requirementinstances.Hereafter a requirement is an unary predicate .
- Template Parameters
Value: type of values generated by strategy.
Inherits from cauldron::CloneHelper< Value, Filtered< Value > >
Public Functions
-
Filtered(const Filtered<Value> &strategy)¶ Default copy constructor doesn’t fit since we’re using
std::unique_ptras class member which is not copyable.
-
Filtered<Value>
filter(const Requirement<Value> &requirement) const¶ Returns a new strategy that generates values from the strategy which satisfy provided
strategies::Requirementinstance.Note that if the
requirementis too hard to satisfy this might result in failing withOutOfCycles.
-
Value
operator()() const¶ Generates value that satisfies defined
strategies::Requirementinstances.- Exceptions
strategies::OutOfCycles:
- template <typename Value>
-
class
Mapped¶ - #include <bases.h>
Strategy which modifies values with defined
strategies::Converterinstances.Hereafter a converter is an operator .
- Template Parameters
Value: type of values generated by strategy.
Inherits from cauldron::CloneHelper< Value, Mapped< Value > >
Public Functions
-
Mapped(const Mapped<Value> &strategy)¶ Default copy constructor doesn’t fit since we’re using
std::unique_ptras class member which is not copyable.
-
Mapped<Value>
map(const Converter<Value> &converter) const¶ Returns a new strategy that generates values from the strategy modified with provided
strategies::Converterinstance.
-
Value
operator()() const¶ Generates value and modifies it with defined
strategies::Converterinstances.
- template <typename Value>
-
class
Strategy¶ - #include <bases.h>
Strategies base class.
Hereafter strategy is an object which encapsulates an algorithm for generating specific type of values.
- Template Parameters
Value: type of values generated by strategy.
Subclassed by cauldron::CloneHelper< Value, Derived >, cauldron::CloneHelper< Value, Filtered< Value > >, cauldron::CloneHelper< Value, Floats< Value > >, cauldron::CloneHelper< Value, Integers< Value > >, cauldron::CloneHelper< Value, Just< Value > >, cauldron::CloneHelper< Value, Mapped< Value > >, cauldron::CloneHelper< Value, Union< Value > >
Public Functions
-
virtual Value
operator()() const = 0¶ Generates data.
-
virtual Union<Value>
operator||(const Strategy<Value> &strategy) const¶ Returns a new strategy that generates values from either original strategy or provided one.
-
virtual Union<Value>
operator||(const Union<Value> &strategy) const¶ Same result as for any other strategy. Basically added for possible overriding with support of strategies’ union associativity.
-
virtual Filtered<Value>
filter(const Requirement<Value> &requirement) const¶ Returns a new strategy that generates values from the strategy which satisfy provided
strategies::Requirementinstance.Note that if the
requirementis too hard to satisfy this might result in failing withOutOfCycles.
- template <class Value>
-
class
Union¶ - #include <bases.h>
Union of strategies. Generates values from any one of given strategies.
- Template Parameters
Value: type of values generated by strategy.
Inherits from cauldron::CloneHelper< Value, Union< Value > >
Public Functions
-
Union(const Union<Value> &strategy)¶ Default copy constructor doesn’t fit since we’re using
std::unique_ptrin class member which is not copyable.
-
Value
operator()() const¶ Generates value from one of
strategies_elements.