What needs to happen?
ISimulator
The three current implementations of ISimulator are client, remote and local, and they manage streaming, requesting, and handling frame data and metadata from various data sources that may be:
- Octopus serving a precomputed trajectory
- Octopus serving a converted file
- or Octopus serving frames from a procedural simulation.
- a local file
- a local procedural simulator
- a third party remote API
These instances do not simulate anything, or do business logic related to simulation. They manage the connection between a data source and the controller.
Possible names for what is currently called ISimulator:
IDataProvider
IDataStreamManager
ISimulationStream
ISimulationDataPipeline
IDataBroker
IFrameProvider
ISimulationDataSource
IClientSimulatorImpl
Is somewhat a contradiction in terms as it is an interface that defines a set of methods that are required to be present on procedural simulations, but is not an implementation it is an interface/contract.
It's also confusing that ClientSimulator implements ISimulator and the various procedural simulators implement IClientSimulatorImpl. Internally ClientSimulator refers to these procedural simulations as localSimulator.
It does make sense to call these instances "simulators" as they actually do the business logic involved in simulating something.
Possible names for what is currently called IClientSimulatorImpl:
ISimulator honestly more accurate, but maybe confusing to people familiar with the old system
ISimulationEngine
IProceduralSimulator
Why should we do this?
Decide if its worth renaming here.
When does this need to get done?
What needs to happen?
ISimulatorThe three current implementations of
ISimulatorare client, remote and local, and they manage streaming, requesting, and handling frame data and metadata from various data sources that may be:These instances do not simulate anything, or do business logic related to simulation. They manage the connection between a data source and the controller.
Possible names for what is currently called
ISimulator:IDataProviderIDataStreamManagerISimulationStreamISimulationDataPipelineIDataBrokerIFrameProviderISimulationDataSourceIClientSimulatorImplIs somewhat a contradiction in terms as it is an interface that defines a set of methods that are required to be present on procedural simulations, but is not an implementation it is an interface/contract.
It's also confusing that
ClientSimulatorimplementsISimulatorand the various procedural simulators implementIClientSimulatorImpl. InternallyClientSimulatorrefers to these procedural simulations aslocalSimulator.It does make sense to call these instances "simulators" as they actually do the business logic involved in simulating something.
Possible names for what is currently called
IClientSimulatorImpl:ISimulatorhonestly more accurate, but maybe confusing to people familiar with the old systemISimulationEngineIProceduralSimulatorWhy should we do this?
Decide if its worth renaming here.
When does this need to get done?