msl 1.3.0
Loading...
Searching...
No Matches
msl::graph::If Class Reference

Detailed Description

Node running its children based on a boolean key, a function key, or a function stored in the node.

#include <If.h>

Public Types

using Pointer = std::shared_ptr<If>
 Reference-counted pointer to If.
using ConstPointer = std::shared_ptr<If const>
 Reference-counted constant pointer to If.
using Function = FlexibleFunction<bool>
 Test function.
Public Types inherited from msl::graph::Node
using Pointer = std::shared_ptr<Node>
 Reference-counted pointer to Node.
using ConstPointer = std::shared_ptr<Node const>
 Reference-counted constant pointer to Node.
using Siblings = std::vector<AbstractNode::Pointer>
 Child container.
Public Types inherited from msl::graph::AbstractNode
using Pointer = std::shared_ptr<AbstractNode>
 Reference-counted pointer to AbstractNode.
using ConstPointer = std::shared_ptr<AbstractNode const>
 Reference-counted constant pointer to AbstractNode.

Public Member Functions

NLSStatus prepare (MrProt &protocol, SeqLim &limits, SeqExpo &exports) override
 Prepare the children if the boolean is true.
NLSStatus run (MrProt &protocol, SeqLim &limits, SeqExpo &exports) override
 Run the children if the boolean is true.
uint64_t duration () const override
 Return the sum of the duration of the children if the boolean is true, 0 otherwise.
MrProtocolData::SeqExpoRFInfo rfInfo () const override
 Return the sum of the RF information of the children if the boolean is true, empty RF information otherwise.
Public Member Functions inherited from msl::graph::Node
NLSStatus prepare (MrProt &protocol, SeqLim &limits, SeqExpo &exports) override
 Prepare all children in order.
NLSStatus run (MrProt &protocol, SeqLim &limits, SeqExpo &exports) override
 Run all children in order.
NodesetRegistry (Dictionary::Pointer registry) override
 Set the registry to this node and its children.
void reset () override
 Reset children to a default state.
uint64_t duration () const override
 Return the sum of the duration of the children.
MrProtocolData::SeqExpoRFInfo rfInfo () const override
 Return the sum of the RF information of the children.
bool empty () const
 Check whether this node has children.
std::size_t size () const
 Return the number of children.
template<typename T>
T & appendChild (std::shared_ptr< T > const &child)
 Append a child in last position, return the child.
void appendChildren (Siblings const &siblings)
 Append children after the last position.
NodedeleteChild (std::size_t index)
 Remove a child.
NodeclearChildren ()
 Remove all children.
AbstractNode::ConstPointer child (std::size_t index) const
 Return a child at given position.
AbstractNode::Pointer child (std::size_t index)
 Return a child at given position.
Public Member Functions inherited from msl::graph::AbstractNode
Dictionary::ConstPointer registry () const
 Return the registry.
Dictionary::Pointerregistry ()
 Return the registry.
template<typename T>
T const & get (std::string const &key) const
 Return an object from the dictionary.
template<typename T>
T & get (std::string const &key)
 Return an object from the dictionary.
template<typename T>
AbstractNodeset (std::string const &key, T &&value)
 Store an object in the dictionary, create it if needed.
boost::typeindex::type_info const & type (std::string const &key) const
 Return the type of an object in the dictionary.

Static Public Member Functions

static Pointer New (std::string const &key, Dictionary::Pointer registry={})
 Create an If node without children.
static Pointer New (Function const &function, Dictionary::Pointer registry={})
 Create an If node without children.
template<typename T>
static Pointer New (std::string const &key, T const &child, Dictionary::Pointer registry={})
 Create an If node with a single child.
template<typename T>
static Pointer New (Function const &function, T const &child, Dictionary::Pointer registry={})
 Create an If node with a single child.
static Pointer New (std::string const &key, Siblings const &siblings, Dictionary::Pointer registry={})
 Create an If node with multiple children.
static Pointer New (Function const &function, Siblings const &siblings, Dictionary::Pointer registry={})
 Create an If node with multiple children.
Static Public Member Functions inherited from msl::graph::Node
static Pointer New (Dictionary::Pointer registry={})
 Create a node with no child.
template<typename T>
static Pointer New (T const &child, Dictionary::Pointer registry={})
 Create a node with a single child.
static Pointer New (Siblings const &siblings, Dictionary::Pointer registry={})
 Create a node with multiple children.

Additional Inherited Members

Protected Member Functions inherited from msl::graph::Node
 Node (Dictionary::Pointer registry={})
 Create a node with no child.
template<typename T>
 Node (T const &child, Dictionary::Pointer registry={})
 Create a node with a single child.
 Node (Siblings const &siblings, Dictionary::Pointer registry={})
 Create a node with multiple children.
 Node (Node const &)=default
 Node (Node &&)=default
Nodeoperator= (Node const &)=default
Nodeoperator= (Node &&)=default
Protected Member Functions inherited from msl::graph::AbstractNode
 AbstractNode (Dictionary::Pointer registry={})
 Create a node with the given registry.
 AbstractNode (AbstractNode const &)=default
 AbstractNode (AbstractNode &&)=default
AbstractNodeoperator= (AbstractNode const &)=default
AbstractNodeoperator= (AbstractNode &&)=default
Protected Attributes inherited from msl::graph::Node
Siblings _children
 Children of this node.
Protected Attributes inherited from msl::graph::AbstractNode
Dictionary::Pointer _registry
 Registry attached to this node.

Member Function Documentation

◆ prepare()

NLSStatus msl::graph::If::prepare ( MrProt & protocol,
SeqLim & limits,
SeqExpo & exports )
overridevirtual

Prepare the children if the boolean is true.

Implements msl::graph::AbstractNode.

◆ run()

NLSStatus msl::graph::If::run ( MrProt & protocol,
SeqLim & limits,
SeqExpo & exports )
overridevirtual

Run the children if the boolean is true.

Implements msl::graph::AbstractNode.

◆ duration()

uint64_t msl::graph::If::duration ( ) const
overridevirtual

Return the sum of the duration of the children if the boolean is true, 0 otherwise.

Warning
The protocol, limits, and exports used in the last call to prepare or run must still be reachable if the condition is given by a function

Implements msl::graph::AbstractNode.

◆ rfInfo()

MrProtocolData::SeqExpoRFInfo msl::graph::If::rfInfo ( ) const
overridevirtual

Return the sum of the RF information of the children if the boolean is true, empty RF information otherwise.

Warning
The protocol, limits, and exports used in the last call to prepare or run must still be reachable if the condition is given by a function

Implements msl::graph::AbstractNode.


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