24 const std::string& default_name =
"SampleBuilderNode";
27 SampleBuilderNode::SampleBuilderNode()
29 setName(default_name);
33 :
INode(), m_sample_builder(other.m_sample_builder)
35 setName(other.getName());
41 m_sample_builder = other.m_sample_builder;
42 setName(other.getName());
52 throw std::runtime_error(
"SampleContainer::setSampleBuilder() -> Error. "
53 "Attempt to set null sample builder.");
55 m_sample_builder = sample_builder;
56 setName(m_sample_builder->getName());
57 borrow_builder_parameters();
64 setName(default_name);
66 m_sample_builder.reset();
73 ASSERT(m_sample_builder);
74 return std::unique_ptr<MultiLayer>(m_sample_builder->buildSample());
81 return m_sample_builder;
86 SampleBuilderNode::operator bool()
const
88 return m_sample_builder.get() !=
nullptr;
93 void SampleBuilderNode::borrow_builder_parameters()
97 if (!m_sample_builder)
100 m_sample_builder->parameterPool()->copyToExternalPool(
"",
parameterPool());
Defines the macro ASSERT.
Defines pure virtual base class ISampleBuilder.
Defines class MultiLayer.
Defines class ParameterPool.
Defines class SampleBuilderNode.
Base class for tree-like structures containing parameterized objects.
ParameterPool * parameterPool() const
Returns pointer to the parameter pool.
void clear()
Clears the parameter map.
Wraps an ISampleBuilder, and puts it in an INode tree.
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.