C++: Introduce RunCondition to Run Metadata
This MR changes/improves data transmission in a variety of situations:
- It adds a
interrupting_transmitter
method which sends an EOR if the previous state wasRUN
. This closes #142 (closed). - Receivers now also generate a substitute EOR when no EOR is received in
stopping
, there is no reason this should not be the same as ininterrupting
.. - Receivers now keep track of missed messages per-transmitter, not only globally.
- There is a new code ("condition") added to the metadata of the run indicating the condition of the data. The following values are added as text and code:
-
GOOD
(1): The run has concluded normally, no other information has been provided by the sender -
TAINTED
(2): The run has concluded normally, but the data has been marked as tainted by the sender -
INCOMPLETE
(3): The run has concluded normally, but the receiver has noticed missing messages in the sequence -
INTERRUPTED
(4): The run has been interrupted by this sender because of a failure condition elsewhere in the Constellation -
ABORTED
(5): The run has been aborted by the sender and the EOR message has been appended by the receiver
-
- Transmitter have the possibility to mark a run as
TAINTED
- the idea here is that the code noticed something being odd and can tag the run. - Receiver sets the
INCOMPLETE
condition tag to the run metadata (overwriting anything from the transmitter) if there are missing sequences recorded for that connection. - Tests for data transmission in tainted-run, transmitter-interrupted and transmitter-failed runs are added
- Documents data concepts
Edited by Simon Spannagel