msl 1.3.0
Loading...
Searching...
No Matches
msl::graph::AbstractNode Class Referenceabstract

Detailed Description

Base class for all graph nodes.

#include <AbstractNode.h>

Public Types

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

virtual NLSStatus prepare (MrProt &protocol, SeqLim &limits, SeqExpo &exports)=0
 Prepare the node.
virtual NLSStatus run (MrProt &protocol, SeqLim &limits, SeqExpo &exports)=0
 Run the node.
Dictionary::ConstPointer registry () const
 Return the registry.
Dictionary::Pointerregistry ()
 Return the registry.
virtual AbstractNodesetRegistry (Dictionary::Pointer registry)
 Set the registry.
virtual void reset ()
 Reset to a default state.
virtual uint64_t duration () const =0
 Return the duration in microseconds, requires preparation.
virtual MrProtocolData::SeqExpoRFInfo rfInfo () const =0
 Return the RF information for SAR computation, requires preparation.
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.

Protected Member Functions

 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

Dictionary::Pointer _registry
 Registry attached to this node.

Member Function Documentation

◆ prepare()

virtual NLSStatus msl::graph::AbstractNode::prepare ( MrProt & protocol,
SeqLim & limits,
SeqExpo & exports )
pure virtual

◆ run()

virtual NLSStatus msl::graph::AbstractNode::run ( MrProt & protocol,
SeqLim & limits,
SeqExpo & exports )
pure virtual

◆ setRegistry()

virtual AbstractNode & msl::graph::AbstractNode::setRegistry ( Dictionary::Pointer registry)
virtual

Set the registry.

Reimplemented in msl::graph::Case< T >, and msl::graph::Node.

◆ reset()

◆ duration()

virtual uint64_t msl::graph::AbstractNode::duration ( ) const
pure virtual

Return the duration in microseconds, requires preparation.

Note
The SBB API uses a signed long, i.e. a max duration of 2^31 / 10^6 seconds, i.e. less than 36 minutes. For a total duration, this is insufficient, hence the use of uint64_t (max value over half a million years).

Implemented in msl::graph::Action, msl::graph::Block< T, Slices >, msl::graph::Case< T >, msl::graph::If, msl::graph::IteratorTemplate< T >, msl::graph::IteratorTemplate< msl::ConstIterator< T > >, msl::graph::IteratorTemplate< msl::Iterator< T > >, msl::graph::Loop, and msl::graph::Node.

◆ rfInfo()

virtual MrProtocolData::SeqExpoRFInfo msl::graph::AbstractNode::rfInfo ( ) const
pure virtual

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