You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Outputs of type std::vector< T > should be able to decompose the vector to multiple data of type T.
Inputs of type std::vector< T > should be able to compose the vector by multiple data of type T.
Outputs know the count of vector elements. This count can be stored in a config file variable of type std::size_t.
Inputs need to know, how many data they should collect before they become available for the input. This can be express as numeric value in the config file or by a config file variable of type std::size_t. Furthermore, inputs need to know how they should proceed if a previous module failed. The default behavior should ne to skip the correct amount of data. The alternative ('greedy') behavior is just to ignore the fail.
For the default behavior we need information from the previous output how much data is affected by the fail.
Alternative: Therefor we need a noexcept prepare call before the exec call to set the expected output count. In most cases this can be done by the amount of data of another input and can be implemented on user side by calling a standard function generator with just naming this input.
Alternative: (need Type dimensions for modules #18 implemented) The current design is, that inputs and outputs always hold a std::vector< T >. We change this type to std::vector< std::optional< T > > and the exec-function must know all its inputs and outputs. Also the relationship of the counts of elements in its inputs must be known. Then the exec-function can be called once per input-set. This way an exception will affect only one data-set and the output can be set or keeps in an std::optional empty state.
std::vector< T >
should be able to decompose the vector to multiple data of typeT
.std::vector< T >
should be able to compose the vector by multiple data of typeT
.Outputs know the count of vector elements. This count can be stored in a config file variable of type std::size_t.
Inputs need to know, how many data they should collect before they become available for the input. This can be express as numeric value in the config file or by a config file variable of type std::size_t. Furthermore, inputs need to know how they should proceed if a previous module failed. The default behavior should ne to skip the correct amount of data. The alternative ('greedy') behavior is just to ignore the fail.
For the default behavior we need information from the previous output how much data is affected by the fail.
noexcept
prepare call before the exec call to set the expected output count. In most cases this can be done by the amount of data of another input and can be implemented on user side by calling a standard function generator with just naming this input.std::vector< T >
. We change this type tostd::vector< std::optional< T > >
and the exec-function must know all its inputs and outputs. Also the relationship of the counts of elements in its inputs must be known. Then the exec-function can be called once per input-set. This way an exception will affect only one data-set and the output can be set or keeps in anstd::optional
empty state.Proposed syntax for config file:
output '=' ( ['#' '>' variable] '>' )* '>' variable
input '=' ( (count | '#' ('<' | '&') variable) ['greedy'] '<' )* ('<' | '&') variable
Legend:
The text was updated successfully, but these errors were encountered: