DREAM3D
DREAM3D copied to clipboard
SVPipelineView keeps persistent Temp / Saved FilterPipelines
FilterPipeline has signals and methods for alerting to changes, execution, preflight status, etc. which can make tracking the same pipeline in multiple places more feasible.
Currently, new pipelines are generated every time one is requested, and SVPipelineView never keeps track of the "pipeline" it is working on other than during preflight or execution. At no other time does SVPipelineView actually have a pipeline. The only way for another class to know that a pipeline it knows about has been updated is to have a constant connection with SVPielineView to tell it what the FilterPipeline it knows about could tell it instead.
If SVPipelineView stored temp and saved versions of the pipeline, other classes could still be alerted to updates where desired. If a class does not want to be alerted, or at any point wants to quit being alerted, a FilterPipeline can be deep copied.
This should also include the pipeline name, as SVPipelineView does not store or ask for the pipeline name when another class requests a copy of the pipeline.
Guards should also be included in FilterPipeline to check if it is in preflight or execute when adding or removing filters. There is currently nothing stopping a class from executing a pipeline and, while it is running, adding or removing filters.