Added propagation control functions and fix implicit string conversion in headers.#367
Added propagation control functions and fix implicit string conversion in headers.#367rayment wants to merge 7 commits intopaceholder:masterfrom
Conversation
Added the ability to explicitly control propagation of data in DataFlowGraphModel through the use of a new virtual function canPropagate(ConnectionId), and another function propagate(NodeId) to request a propagation without having to update input/output data. These functions are both virtual so that deriviative dataflow models can specify their own control model. Signed-off-by: Finn Rayment <finn@rayment.fr>
The library will fail to compile if QT_NO_CAST_FROM_ASCII is set in any project that uses it due to implicit conversion of const char * to QString. Wrapping the constants moves string initialisation to compile-time and succeeds build. Signed-off-by: Finn Rayment <finn@rayment.fr>
|
I've added another commit which surrounds strings that are present in headers with Just thought it would be useful to add here rather than open another PR... |
Signed-off-by: Finn Rayment <finn@rayment.fr>
Signed-off-by: Finn Rayment <finn@rayment.fr>
|
Hi @paceholder, I understand you are probably busy with life at the moment (aren't we all?) but I was hoping to ask you to review this change when you have the chance (I'm mostly worried about |
Signed-off-by: Finn Rayment <finn@rayment.fr>
I've added the ability to explicitly control propagation of data in
DataFlowGraphModelthrough the use of a new virtual functioncanPropagate(ConnectionId), and another functionpropagate(NodeId)to request a propagation without having to update connections or input/output. The user can also changeonOutPortDataUpdatedandpropagateEmptyDataTowith deriviative functions to change the output of the propagation for each connection.These functions are both virtual so that derivative dataflow models can specify their own control model, but this may go against the design of
DataFlowGraphModel. Feel free to deny or change as you wish. As an example:My project has nodes of text data ranging in the gigabytes. I use a global execution state to control when data is propagated and clone node outputs when there is more than one connection stemming from an output. This can be achieved with custom functions: