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:
24
25 RealTimeEvents(RealTimeEvents const &) = default;
26 RealTimeEvents(RealTimeEvents &&) = default;
27 RealTimeEvents & operator=(RealTimeEvents const &) = default;
28 RealTimeEvents & operator=(RealTimeEvents &&) = default;
29 virtual ~RealTimeEvents() = default;
30
32 sSLICE_POS const & slice() const;
33
35 virtual RealTimeEvents & setSlice(sSLICE_POS const & slice);
36
38 virtual NLSStatus prepare(
39 MrProt & protocol, SeqLim & limits, SeqExpo & exports) =0;
40
42 virtual NLSStatus run(
43 MrProt & protocol, SeqLim & limits, SeqExpo & exports) =0;
44
46 virtual long startTime() const = 0;
47
49 virtual long endTime() const = 0;
50
52 virtual MrProtocolData::SeqExpoRFInfo rfInfo() const = 0;
53
54protected:
56 sSLICE_POS _slice;
57};
58
60bool overlap(RealTimeEvents const & e1, RealTimeEvents const & e2);
61
63bool overlap(RealTimeEvents const & e1, long t);
64
66bool overlap(long t, RealTimeEvents const & e2);
67
68}
69
70#endif // _a81fa3a2_6522_4a40_ae88_c283650652a4
Base class for real-time events.
Definition RealTimeEvents.h:20
RealTimeEvents()
No-op constructor.
virtual NLSStatus prepare(MrProt &protocol, SeqLim &limits, SeqExpo &exports)=0
Prepare the real-time events.
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.
sSLICE_POS _slice
Slice specifications attached to this real time object.
Definition RealTimeEvents.h:56
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.