msl 1.1.0
 
Loading...
Searching...
No Matches
msl::graph::Block< T, Slices > Class Template Reference

Node encapsulating a block (anything respecting the API of SeqBuildBlock). More...

#include <Block.h>

Inheritance diagram for msl::graph::Block< T, Slices >:
msl::graph::AbstractNode

Public Types

using Pointer = std::shared_ptr<Block<T, Slices>>
 
using ConstPointer = std::shared_ptr<Block<T const, Slices>>
 

Public Member Functions

virtual ~Block ()=default
 
NLSStatus prepare (MrProt &protocol, SeqLim &limits, SeqExpo &exports) override
 Prepare the block.
 
NLSStatus run (MrProt &protocol, SeqLim &limits, SeqExpo &exports) override
 Run the block with the slice referenced by the counter.
 
uint64_t duration () const override
 Return the duration of the block.
 
MrProtocolData::SeqExpoRFInfo rfInfo () const override
 Return the RF information of the block.
 
- Public Member Functions inherited from msl::graph::AbstractNode
 DECLARE_POINTERS (AbstractNode)
 
virtual ~AbstractNode ()=default
 
Dictionary::ConstPointer registry () const
 Return the registry.
 
Dictionary::Pointer registry ()
 Return the registry.
 
virtual AbstractNodesetRegistry (Dictionary::Pointer registry)
 Set 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.
 
boost::typeindex::type_info const & type (std::string const &key) const
 Return the type of an object in the dictionary.
 

Static Public Member Functions

template<typename ... Args>
static Pointer New (std::string const &slice, Args &&... args)
 

Public Attributes

block
 

Additional Inherited Members

- Protected Member Functions inherited from msl::graph::AbstractNode
 AbstractNode (Dictionary::Pointer registry={})
 
 AbstractNode (AbstractNode const &)=default
 
 AbstractNode (AbstractNode &&)=default
 
AbstractNodeoperator= (AbstractNode const &)=default
 
AbstractNodeoperator= (AbstractNode &&)=default
 
- Protected Attributes inherited from msl::graph::AbstractNode
Dictionary::Pointer _registry
 

Detailed Description

template<typename T, typename Slices = std::vector<sSLICE_POS>>
class msl::graph::Block< T, Slices >

Node encapsulating a block (anything respecting the API of SeqBuildBlock).

Required part of the SeqBuildBlock API

  • prepare (potentially implemented via prepSBB for classes inherited from SeqBuildBlock)
  • run (potentially implemented via runSBB for classes inherited from SeqBuildBlock)
  • getDurationPerRequest
  • getRFInfoPerRequest

Since SeqBuildBlock::run requires a sSLICE_POS, this node is linked to a counter which provides the index of the slice.

Member Typedef Documentation

◆ Pointer

template<typename T, typename Slices = std::vector<sSLICE_POS>>
using msl::graph::Block< T, Slices >::Pointer = std::shared_ptr<Block<T, Slices>>

◆ ConstPointer

template<typename T, typename Slices = std::vector<sSLICE_POS>>
using msl::graph::Block< T, Slices >::ConstPointer = std::shared_ptr<Block<T const, Slices>>

Constructor & Destructor Documentation

◆ ~Block()

template<typename T, typename Slices = std::vector<sSLICE_POS>>
virtual msl::graph::Block< T, Slices >::~Block ( )
virtualdefault

Member Function Documentation

◆ New()

template<typename T, typename Slices = std::vector<sSLICE_POS>>
template<typename ... Args>
static Pointer msl::graph::Block< T, Slices >::New ( std::string const & slice,
Args &&... args )
inlinestatic

◆ prepare()

template<typename T, typename Slices = std::vector<sSLICE_POS>>
NLSStatus msl::graph::Block< T, Slices >::prepare ( MrProt & protocol,
SeqLim & limits,
SeqExpo & exports )
inlineoverridevirtual

Prepare the block.

Implements msl::graph::AbstractNode.

◆ run()

template<typename T, typename Slices = std::vector<sSLICE_POS>>
NLSStatus msl::graph::Block< T, Slices >::run ( MrProt & protocol,
SeqLim & limits,
SeqExpo & exports )
inlineoverridevirtual

Run the block with the slice referenced by the counter.

Implements msl::graph::AbstractNode.

◆ duration()

template<typename T, typename Slices = std::vector<sSLICE_POS>>
uint64_t msl::graph::Block< T, Slices >::duration ( ) const
inlineoverridevirtual

Return the duration of the block.

Implements msl::graph::AbstractNode.

◆ rfInfo()

template<typename T, typename Slices = std::vector<sSLICE_POS>>
MrProtocolData::SeqExpoRFInfo msl::graph::Block< T, Slices >::rfInfo ( ) const
inlineoverridevirtual

Return the RF information of the block.

Implements msl::graph::AbstractNode.

Member Data Documentation

◆ block

template<typename T, typename Slices = std::vector<sSLICE_POS>>
T msl::graph::Block< T, Slices >::block

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