gstreamer
Loading...
Searching...
No Matches
gSROPlugin.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
gSROData.h
"
4
13
23
class
GSROTiming
24
{
25
public
:
26
virtual
~GSROTiming
() =
default
;
27
36
[[nodiscard]]
virtual
std::optional<GSROTime>
37
earliest_remaining_time
(
GSROEventId
first_undelivered_event)
const
= 0;
38
};
39
47
class
GSROFrameSink
48
{
49
public
:
50
virtual
~GSROFrameSink
() =
default
;
51
virtual
void
write_frame
(
GSROFrame
frame
) = 0;
52
virtual
void
finish_output
() = 0;
53
};
54
78
class
GSROCratePlugin
79
{
80
public
:
81
explicit
GSROCratePlugin
(
GSROFrameSink
& sink) :
output
(sink) {}
82
virtual
~GSROCratePlugin
() =
default
;
83
84
GSROCratePlugin
(
const
GSROCratePlugin
&) =
delete
;
85
GSROCratePlugin
&
operator=
(
const
GSROCratePlugin
&) =
delete
;
86
GSROCratePlugin
(
GSROCratePlugin
&&) =
delete
;
87
GSROCratePlugin
&
operator=
(
GSROCratePlugin
&&) =
delete
;
88
89
virtual
void
consume_payload
(
GSROPayload
payload) = 0;
90
virtual
void
advance_time
(
GSROTime
safe_time) = 0;
91
virtual
void
finish_run
(
const
GSROEndContext
& context) = 0;
92
93
protected
:
94
GSROFrameSink
&
output
;
95
};
GSROCratePlugin::operator=
GSROCratePlugin & operator=(GSROCratePlugin &&)=delete
GSROCratePlugin::GSROCratePlugin
GSROCratePlugin(const GSROCratePlugin &)=delete
GSROCratePlugin::advance_time
virtual void advance_time(GSROTime safe_time)=0
GSROCratePlugin::finish_run
virtual void finish_run(const GSROEndContext &context)=0
GSROCratePlugin::GSROCratePlugin
GSROCratePlugin(GSROFrameSink &sink)
Definition
gSROPlugin.h:81
GSROCratePlugin::consume_payload
virtual void consume_payload(GSROPayload payload)=0
GSROCratePlugin::GSROCratePlugin
GSROCratePlugin(GSROCratePlugin &&)=delete
GSROCratePlugin::operator=
GSROCratePlugin & operator=(const GSROCratePlugin &)=delete
GSROCratePlugin::output
GSROFrameSink & output
Definition
gSROPlugin.h:94
GSROCratePlugin::~GSROCratePlugin
virtual ~GSROCratePlugin()=default
GSROFrameSink
Output destination called exclusively by its owning crate thread.
Definition
gSROPlugin.h:48
GSROFrameSink::write_frame
virtual void write_frame(GSROFrame frame)=0
GSROFrameSink::finish_output
virtual void finish_output()=0
GSROFrameSink::~GSROFrameSink
virtual ~GSROFrameSink()=default
GSROTiming
Implementation-defined bound used by GEMC to establish safe input progress.
Definition
gSROPlugin.h:24
GSROTiming::earliest_remaining_time
virtual std::optional< GSROTime > earliest_remaining_time(GSROEventId first_undelivered_event) const =0
Lower bound for every possible payload from this event and all subsequent events.
GSROTiming::~GSROTiming
virtual ~GSROTiming()=default
gSROData.h
Transport types for the SRO interfaces, upcoming in the next release.
GSROTime
std::chrono::duration< std::int64_t, std::nano > GSROTime
Definition
gSROData.h:20
GSROEventId
std::uint64_t GSROEventId
Definition
gSROData.h:19
frame
frame
GSROEndContext
Input-delivery state passed to the implementation at orderly shutdown.
Definition
gSROData.h:94
GSROFrame
An implementation-produced frame, transferred by move to the output sink.
Definition
gSROData.h:74
GSROPayload
One worker-produced contribution, transferred by move to its destination crate.
Definition
gSROData.h:58
sro
gSROPlugin.h
Generated by
1.15.0