Skip to content

Are ISimulator and IClientSimulatorImpl well named? #462

@interim17

Description

@interim17

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    maintenanceCode cleanup/refactoring, test coverage, etc.

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions