msl 1.1.0
 
Loading...
Searching...
No Matches
msl::graph::Case< T > Class Template Reference

Node encapsulating a switch/case structure based on a boolean key or a function key. More...

#include <Case.h>

Inheritance diagram for msl::graph::Case< T >:
msl::graph::AbstractNode

Public Types

using Map = std::unordered_map<T, AbstractNode::Pointer>
 
using Function
 

Public Member Functions

 DECLARE_POINTERS (Case< T >)
 
NLSStatus prepare (MrProt &protocol, SeqLim &limits, SeqExpo &exports) override
 Prepare the selected child, throw an exception if unknown value.
 
NLSStatus run (MrProt &protocol, SeqLim &limits, SeqExpo &exports) override
 Run the selected child, throw an exception if unknown value.
 
CasesetRegistry (Dictionary::Pointer registry) override
 Set the registry to this node and its children.
 
uint64_t duration () const override
 Return the duration of the selected child, throw an exception if unknown value.
 
MrProtocolData::SeqExpoRFInfo rfInfo () const override
 Return the RF information of the selected child, throw an exception if unknown value.
 
- 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.
 
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

static Pointer New (std::string const &key, Map const &cases, Dictionary::Pointer registry={})
 

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>
class msl::graph::Case< T >

Node encapsulating a switch/case structure based on a boolean key or a function key.

Member Typedef Documentation

◆ Map

template<typename T>
using msl::graph::Case< T >::Map = std::unordered_map<T, AbstractNode::Pointer>

◆ Function

template<typename T>
using msl::graph::Case< T >::Function
Initial value:
boost::variant<
std::function<T()>,
std::function<T(MrProt &)>,
std::function<T(MrProt &, SeqLim &, SeqExpo &)>>

Member Function Documentation

◆ DECLARE_POINTERS()

template<typename T>
msl::graph::Case< T >::DECLARE_POINTERS ( Case< T > )

◆ New()

template<typename T>
static Pointer msl::graph::Case< T >::New ( std::string const & key,
Map const & cases,
Dictionary::Pointer registry = {} )
inlinestatic

◆ prepare()

template<typename T>
NLSStatus msl::graph::Case< T >::prepare ( MrProt & protocol,
SeqLim & limits,
SeqExpo & exports )
inlineoverridevirtual

Prepare the selected child, throw an exception if unknown value.

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.

◆ run()

template<typename T>
NLSStatus msl::graph::Case< T >::run ( MrProt & protocol,
SeqLim & limits,
SeqExpo & exports )
inlineoverridevirtual

Run the selected child, throw an exception if unknown value.

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.

◆ setRegistry()

template<typename T>
Case & msl::graph::Case< T >::setRegistry ( Dictionary::Pointer registry)
inlineoverridevirtual

Set the registry to this node and its children.

Reimplemented from msl::graph::AbstractNode.

◆ duration()

template<typename T>
uint64_t msl::graph::Case< T >::duration ( ) const
inlineoverridevirtual

Return the duration of the selected child, throw an exception if unknown value.

Implements msl::graph::AbstractNode.

◆ rfInfo()

template<typename T>
MrProtocolData::SeqExpoRFInfo msl::graph::Case< T >::rfInfo ( ) const
inlineoverridevirtual

Return the RF information of the selected child, throw an exception if unknown value.

Implements msl::graph::AbstractNode.


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