C++: Introduce RunCondition to Run Metadata
This MR changes/improves data transmission in a variety of situations:
- It adds a
interrupting_transmittermethod 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
INCOMPLETEcondition 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