msl 1.3.0
Loading...
Searching...
No Matches
RealTimeEvents.h
Go to the documentation of this file.
1// Copyright 2025 Julien Lamy, ICube, Université de Strasbourg-CNRS.
2// Part of msl, distributed under the terms of the MIT license.
3
4#ifndef _a81fa3a2_6522_4a40_ae88_c283650652a4
5#define _a81fa3a2_6522_4a40_ae88_c283650652a4
6
7#include <MrMeasSrv/MeasUtils/NLSStatus.h>
8#include <MrMeasSrv/SeqIF/libRT/sSLICE_POS.h>
9
10#include <MrProtSrv/Domain/CoreNative/SeqLim.h>
11#include <MrProtSrv/Domain/MrProtData/MrProt/MrProt.h>
12#include <MrProtSrv/Domain/MrProtData/MrProt/SeqIF/SeqExpo.h>
13#include <MrProtSrv/Domain/MrProtData/MrProt/SeqIF/SeqExpoRFBlockInfo.h>
14
15namespace msl
16{
17
20{
21public:
23
24 RealTimeEvents(RealTimeEvents const &) = default;
28 virtual ~RealTimeEvents() = default;
29
31 sSLICE_POS const & slice() const;
32
34 virtual RealTimeEvents & setSlice(sSLICE_POS const & slice);
35
37 virtual NLSStatus prepare(
38 MrProt & protocol, SeqLim & limits, SeqExpo & exports) =0;
39
41 virtual NLSStatus run(
42 MrProt & protocol, SeqLim & limits, SeqExpo & exports) =0;
43
45 virtual long startTime() const = 0;
46
48 virtual long endTime() const = 0;
49
51 virtual MrProtocolData::SeqExpoRFInfo rfInfo() const = 0;
52
53protected:
54 sSLICE_POS _slice;
55};
56
58bool overlap(RealTimeEvents const & e1, RealTimeEvents const & e2);
59
61bool overlap(RealTimeEvents const & e1, long t);
62
64bool overlap(long t, RealTimeEvents const & e2);
65
66}
67
68#endif // _a81fa3a2_6522_4a40_ae88_c283650652a4
Base class for real-time events.
Definition RealTimeEvents.h:20
virtual ~RealTimeEvents()=default
RealTimeEvents & operator=(RealTimeEvents const &)=default
RealTimeEvents & operator=(RealTimeEvents &&)=default
virtual NLSStatus prepare(MrProt &protocol, SeqLim &limits, SeqExpo &exports)=0
Prepare the real-time events.
RealTimeEvents(RealTimeEvents &&)=default
virtual NLSStatus run(MrProt &protocol, SeqLim &limits, SeqExpo &exports)=0
Run the real-time events.
virtual MrProtocolData::SeqExpoRFInfo rfInfo() const =0
Return the RF information for SAR computation.
virtual long startTime() const =0
Return the start time of the events.
virtual RealTimeEvents & setSlice(sSLICE_POS const &slice)
Set the slice used in prepare and run.
virtual long endTime() const =0
Return the end time of the events.
sSLICE_POS const & slice() const
Return the slice used in prepare and run.
RealTimeEvents(RealTimeEvents const &)=default
Top-level namespace of the msl library.
Definition acceleration.h:17
bool overlap(RealTimeEvents const &e1, RealTimeEvents const &e2)
Test whether e2 begins before e1 ends.