70 throw std::runtime_error(
71 "SampleProvider::updateSample called before sample or builder was set");
Defines class MultiLayer.
void swap(OutputDataIterator< TValue, TContainer > &left, OutputDataIterator< TValue, TContainer > &right)
make Swappable
Defines class SampleProvider.
Base class for tree-like structures containing parameterized objects.
virtual void setParent(const INode *newParent)
const INode * parent() const
Our sample model: a stack of layers one below the other.
MultiLayer * clone() const final override
Returns a clone of multilayer with clones of all layers and interfaces between layers.
void setSBN(const std::shared_ptr< ISampleBuilder > &sample_builder)
Sets sample builder and borrows its parameters.
std::shared_ptr< ISampleBuilder > builder() const
Returns current sample builder.
void reset()
Resets to initial state by removing builder and its borrowed parameters.
std::unique_ptr< MultiLayer > createMultiLayer()
Creates a multilayer using sample builder.
Holds either a Sample, or a SampleBuilderNode (which holds an ISampleBuilder).
void setSample(const MultiLayer &multilayer)
void updateSample()
Generates new sample if sample builder defined.
std::unique_ptr< MultiLayer > m_multilayer
const MultiLayer * sample() const
Returns current sample.
void setParent(const INode *newParent) override
SampleProvider & operator=(const SampleProvider &other)
SampleBuilderNode m_sample_builder
std::vector< const INode * > getChildren() const override
Returns a vector of children (const).
void setBuilder(const std::shared_ptr< ISampleBuilder > &sample_builder)