Lluvia
ll::ContainerNode Class Reference

#include <ContainerNode.h>

Inheritance diagram for ll::ContainerNode:
Collaboration diagram for ll::ContainerNode:

Public Member Functions

 ContainerNode (const std::weak_ptr< ll::Interpreter > &interpreter)
 
 ContainerNode (const std::weak_ptr< ll::Interpreter > &interpreter, const ll::ContainerNodeDescriptor &descriptor)
 
 ContainerNode (const ll::ContainerNode &)=delete
 
 ContainerNode (ll::ContainerNode &&)=delete
 
virtual ~ContainerNode ()=default
 
ll::ContainerNodeoperator= (const ll::ContainerNode &)=delete
 
ll::ContainerNodeoperator= (ll::ContainerNode &&)=delete
 
ll::NodeType getType () const noexcept override
 Gets the node type. More...
 
const ll::ContainerNodeDescriptorgetDescriptor () const noexcept
 
bool hasPort (const std::string &name) const noexcept override
 Returns whether or not a port exists with a given name. More...
 
std::shared_ptr< ll::ObjectgetPort (const std::string &name) const override
 Gets a port descriptor given its name. More...
 
void bind (const std::string &name, const std::shared_ptr< ll::Object > &obj) override
 Binds a ll::Object as port index for this node. More...
 
void bindNode (const std::string &name, const std::shared_ptr< ll::Node > &node)
 
std::shared_ptr< ll::NodegetNode (const std::string &name) const
 
void record (ll::CommandBuffer &commandBuffer) const override
 Records the operations required to run this node in a ll::CommandBuffer. More...
 
void setParameter (const std::string &name, const ll::Parameter &value) override
 Sets a parameter. More...
 
const ll::ParametergetParameter (const std::string &name) const override
 Gets a parameter. More...
 
- Public Member Functions inherited from ll::Node
virtual ~Node ()=default
 
void setState (const ll::NodeState tState)
 
ll::NodeState getState () const noexcept
 
void init ()
 

Protected Member Functions

void onInit () override
 

Protected Attributes

ll::ContainerNodeDescriptor m_descriptor
 
std::map< std::string, std::shared_ptr< ll::Object > > m_objects
 
std::map< std::string, std::shared_ptr< ll::Node > > m_nodes
 
std::weak_ptr< ll::Interpreterm_interpreter
 

Constructor & Destructor Documentation

◆ ContainerNode() [1/4]

ll::ContainerNode::ContainerNode ( const std::weak_ptr< ll::Interpreter > &  interpreter)

◆ ContainerNode() [2/4]

ll::ContainerNode::ContainerNode ( const std::weak_ptr< ll::Interpreter > &  interpreter,
const ll::ContainerNodeDescriptor descriptor 
)

◆ ContainerNode() [3/4]

ll::ContainerNode::ContainerNode ( const ll::ContainerNode )
delete

◆ ContainerNode() [4/4]

ll::ContainerNode::ContainerNode ( ll::ContainerNode &&  )
delete

◆ ~ContainerNode()

virtual ll::ContainerNode::~ContainerNode ( )
virtualdefault

Member Function Documentation

◆ bind()

void ll::ContainerNode::bind ( const std::string &  name,
const std::shared_ptr< ll::Object > &  obj 
)
overridevirtual

Binds a ll::Object as port index for this node.

Parameters
[in]nameThe port name.
[in]objThe object to bind.
Exceptions
std::system_errorif obj cannot be mapped as a port at position index.

Implements ll::Node.

◆ bindNode()

void ll::ContainerNode::bindNode ( const std::string &  name,
const std::shared_ptr< ll::Node > &  node 
)

◆ getDescriptor()

const ll::ContainerNodeDescriptor& ll::ContainerNode::getDescriptor ( ) const
noexcept

◆ getNode()

std::shared_ptr<ll::Node> ll::ContainerNode::getNode ( const std::string &  name) const

◆ getParameter()

const ll::Parameter& ll::ContainerNode::getParameter ( const std::string &  name) const
overridevirtual

Gets a parameter.

Parameters
[in]nameThe parameter name
Returns
The parameter.
Exceptions
std::system_errorWith error code ll::ErrorCode::KeyNotFound if name is not in the parameters table.

Implements ll::Node.

◆ getPort()

std::shared_ptr<ll::Object> ll::ContainerNode::getPort ( const std::string &  name) const
overridevirtual

Gets a port descriptor given its name.

Parameters
[in]nameThe name
Returns
The port descriptor.
Exceptions
std::system_errorWith error code ll::ErrorCode::KeyNotFound if name is not in the ports table.

Implements ll::Node.

◆ getType()

ll::NodeType ll::ContainerNode::getType ( ) const
overridevirtualnoexcept

Gets the node type.

Returns
The type.
See also
ll::NodeType

Implements ll::Node.

◆ hasPort()

bool ll::ContainerNode::hasPort ( const std::string &  name) const
overridevirtualnoexcept

Returns whether or not a port exists with a given name.

Parameters
[in]nameThe name of the port.
Returns
true if the port exists, false otherwise.

Implements ll::Node.

◆ onInit()

void ll::ContainerNode::onInit ( )
overrideprotectedvirtual

Implements ll::Node.

◆ operator=() [1/2]

ll::ContainerNode& ll::ContainerNode::operator= ( const ll::ContainerNode )
delete

◆ operator=() [2/2]

ll::ContainerNode& ll::ContainerNode::operator= ( ll::ContainerNode &&  )
delete

◆ record()

void ll::ContainerNode::record ( ll::CommandBuffer commandBuffer) const
overridevirtual

Records the operations required to run this node in a ll::CommandBuffer.

Parameters
[in]commandBufferThe command buffer.
Exceptions
std::system_errorwith corresponding error code and message.

Implements ll::Node.

◆ setParameter()

void ll::ContainerNode::setParameter ( const std::string &  name,
const ll::Parameter value 
)
overridevirtual

Sets a parameter.

Parameters
[in]nameThe name
[in]defaultValueThe value.
Returns
A reference to this object.

Implements ll::Node.

Member Data Documentation

◆ m_descriptor

ll::ContainerNodeDescriptor ll::ContainerNode::m_descriptor
protected

◆ m_interpreter

std::weak_ptr<ll::Interpreter> ll::ContainerNode::m_interpreter
protected

◆ m_nodes

std::map<std::string, std::shared_ptr<ll::Node> > ll::ContainerNode::m_nodes
protected

◆ m_objects

std::map<std::string, std::shared_ptr<ll::Object> > ll::ContainerNode::m_objects
protected

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