BlueQuartzSoftware / BlueQuartzSoftware/DREAM3D
SVPipelineView keeps persistent Temp / Saved FilterPipelines
- Dominant language
- C++
- Stars
- 189
- Forks
- 78
- PR merge metrics
- No merged PRs in 30d
Description
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.
Contributor guide
Research direction
Start by reading SVPipelineView and FilterPipeline to understand how pipelines are currently created, copied, preflighted, and executed. Trace the temporary and saved pipeline flows, then verify that pipeline names persist, shared instances can report changes, deep copies can stop sharing, and filters cannot be added or removed during preflight or execution.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100