4#ifndef _c98760d2_f8bf_472c_9671_9d8322e26b0e
5#define _c98760d2_f8bf_472c_9671_9d8322e26b0e
10#include <MrMeasSrv/MeasUtils/NLSStatus.h>
12#include <MrProtSrv/Domain/CoreNative/SeqLim.h>
13#include <MrProtSrv/Domain/MrProtData/MrProt/MrProt.h>
14#include <MrProtSrv/Domain/MrProtData/MrProt/SeqIF/SeqExpo.h>
15#include <MrProtSrv/Domain/MrProtData/MrProt/SeqIF/SeqExpoRFBlockInfo.h>
36 MrProt & protocol, SeqLim & limits, SeqExpo & exports) = 0;
39 virtual NLSStatus
run(
40 MrProt & protocol, SeqLim & limits, SeqExpo & exports) = 0;
61 virtual MrProtocolData::SeqExpoRFInfo
rfInfo()
const = 0;
65 T
const &
get(std::string
const & key)
const
67 return this->_registry->get<T>(key);
72 T &
get(std::string
const & key)
74 return this->_registry->get<T>(key);
78 boost::typeindex::type_info
const &
type(std::string
const & key)
const;
91template<
typename T,
typename U>
92std::shared_ptr<T>
NodeCast(std::shared_ptr<U>
const & p)
94 return std::dynamic_pointer_cast<T>(p);
#define DECLARE_POINTERS(name)
Declare pointer type aliases.
Definition Dictionary.h:18
std::shared_ptr< Dictionary > Pointer
Reference-counted pointer to Dictionary
Definition Dictionary.h:39
std::shared_ptr< Dictionary const > ConstPointer
Reference-counted constant pointer to Dictionary
Definition Dictionary.h:39
Base class for all graph nodes.
Definition AbstractNode.h:28
virtual NLSStatus run(MrProt &protocol, SeqLim &limits, SeqExpo &exports)=0
Run the node.
T & get(std::string const &key)
Return an object from the dictionary.
Definition AbstractNode.h:72
boost::typeindex::type_info const & type(std::string const &key) const
Return the type of an object in the dictionary.
virtual uint64_t duration() const =0
Return the duration in microseconds, requires preparation.
Dictionary::ConstPointer registry() const
Return the registry.
T const & get(std::string const &key) const
Return an object from the dictionary.
Definition AbstractNode.h:65
Dictionary::Pointer registry()
Return the registry.
virtual ~AbstractNode()=default
virtual AbstractNode & setRegistry(Dictionary::Pointer registry)
Set the registry.
virtual NLSStatus prepare(MrProt &protocol, SeqLim &limits, SeqExpo &exports)=0
Prepare the node.
virtual MrProtocolData::SeqExpoRFInfo rfInfo() const =0
Return the RF information for SAR computation, requires preparation.
std::shared_ptr< T > NodeCast(std::shared_ptr< U > const &p)
Up- or down-cast node pointers.
Definition AbstractNode.h:92
Top-level namespace of the msl library.
Definition acceleration.h:17