TL;DR seems to be:
hv.streams.Pipe must be per-session
hv.DynamicMap must be per-session
- We need one periodic-callback per session. Pushing to all pipes from a single callback does not work. Each session's callback pushes to that session's pipes.
If the above is true (I am still not certain that this is the case!) then we need to restructure a number of things. First, Plotter subclasses do substantial work. Currently they are called by the DynamicMap, which would now become per-session. Currently we have:
periodic_callback -> Orchestrator -> DataService -> Pipe -> DynamicMap (uses Plotter)
We probably want something like:
background_thread -> Orchestrator -> DataService -> Plotter -> PlotDataService
# per session
periodic_callback -> PlotDataService.get_data -> Pipe -> DynamicMap
These are still early ideas.
TL;DR seems to be:
hv.streams.Pipemust be per-sessionhv.DynamicMapmust be per-sessionIf the above is true (I am still not certain that this is the case!) then we need to restructure a number of things. First,
Plottersubclasses do substantial work. Currently they are called by theDynamicMap, which would now become per-session. Currently we have:We probably want something like:
These are still early ideas.