msl 1.3.0
Loading...
Searching...
No Matches
msl::graph Namespace Reference

Detailed Description

Graph-related objects and functions.

Classes

class  AbstractNode
 Base class for all graph nodes. More...
 
class  Action
 Node calling a function when run is called. More...
 
class  Block
 Node encapsulating a block (anything respecting the API of SeqBuildBlock). More...
 
class  Case
 Node encapsulating a switch/case structure based on a boolean key or a function key. More...
 
class  FlexibleFunctionAdapter
 Adapt a FlexibleFunction to its nominal form. More...
 
class  If
 Node running its children based on a boolean key or a function key. More...
 
class  IteratorTemplate
 Node encapsulating an msl::Iterator. More...
 
class  Loop
 Node encapsulating a loop structure, using a Counter from the registry. More...
 
class  Node
 Container node, prepare and run its children sequentially. More...
 

Typedefs

template<typename T >
using FlexibleFunction = boost::variant< std::function< T()>, std::function< T(Dictionary::Pointer)>, std::function< T(MrProt &)>, std::function< T(MrProt &, Dictionary::Pointer)>, std::function< T(MrProt &, SeqLim &, SeqExpo &)>, std::function< T(MrProt &, SeqLim &, SeqExpo &, Dictionary::Pointer)> >
 A graph function (e.g. Case or If), with flexible arguments.
 
template<typename T >
using ConstIterator = IteratorTemplate< msl::ConstIterator< T > >
 Const iterator node.
 
template<typename T >
using Iterator = IteratorTemplate< msl::Iterator< T > >
 Non-const iterator node.
 

Functions

template<typename T , typename U >
std::shared_ptr< T > NodeCast (std::shared_ptr< U > const &p)
 Up- or down-cast node pointers.
 
template<typename T >
std::function< T(MrProt &, SeqLim &, SeqExpo &, Dictionary::Pointer)> function_adapter (FlexibleFunction< T > const &f)
 Adapt a FlexibleFunction to its nominal form.
 

Typedef Documentation

◆ FlexibleFunction

template<typename T >
using msl::graph::FlexibleFunction = typedef boost::variant< std::function<T()>, std::function<T(Dictionary::Pointer)>, std::function<T(MrProt &)>, std::function<T(MrProt &, Dictionary::Pointer)>, std::function<T(MrProt &, SeqLim &, SeqExpo &)>, std::function<T(MrProt &, SeqLim &, SeqExpo &, Dictionary::Pointer)> >

A graph function (e.g. Case or If), with flexible arguments.

Note
Most of the Siemens API is not const-correct, hence the lack of const references

◆ ConstIterator

template<typename T >
using msl::graph::ConstIterator = typedef IteratorTemplate<msl::ConstIterator<T> >

Const iterator node.

◆ Iterator

template<typename T >
using msl::graph::Iterator = typedef IteratorTemplate<msl::Iterator<T> >

Non-const iterator node.

Function Documentation

◆ NodeCast()

template<typename T , typename U >
std::shared_ptr< T > msl::graph::NodeCast ( std::shared_ptr< U > const &  p)

Up- or down-cast node pointers.

◆ function_adapter()

template<typename T >
std::function< T(MrProt &, SeqLim &, SeqExpo &, Dictionary::Pointer)> msl::graph::function_adapter ( FlexibleFunction< T > const &  f)

Adapt a FlexibleFunction to its nominal form.