DefaultVehicleProvider
public class DefaultVehicleProvider : VehicleProvider
Provides a thread-safe implementation of the VehicleProvider
.
Provides option to update vehicle or specified vehicle parameters only and subscribe to parameter changes.
Important
This is a Public Preview API. It may be changed or removed at any time.-
Initializes default vehicle provider.
Declaration
Swift
public init(vehicle: Vehicle = Car(combustionEngine: CombustionEngine()))
Parameters
vehicle
The current vehicle to be provided. If not specified the default value is
Car
withCombustionEngine
.
-
Snapshot of the current vehicle state.
Declaration
Swift
public var vehicleSnapshot: Vehicle { get }
-
Represents current vehicle state.
Setting a different vehicle notifies observers of the latest vehicle state. If an observer is registered for multiple vehicle parameter updates and these parameters are updated at the same time, the observer is only notified once.
Setting the new vehicle is only expected to occur on the main queue.
Declaration
Swift
public var vehicle: Vehicle { get set }
-
Registers vehicle update observer for all vehicle parameter updates. It is expected to be called on the main queue.
Throws
Throws:VehicleError.alreadyRegisteredObserver
upon adding the same observer more than once.Declaration
Swift
public func addObserver(_ observer: some VehicleUpdateObserver) throws
Parameters
observer
The observer to be registered.
-
Registers vehicle update observer for specific vehicle parameter updates. It is expected to be called on the main queue.
Throws
Throws:VehicleError.alreadyRegisteredObserver
upon adding the same observer more than once.Declaration
Swift
public func addObserver( _ observer: some VehicleUpdateObserver, for options: [VehicleUpdateOption] ) throws
Parameters
observer
The observer to be registered.
options
Specify which parameter changes should trigger observer notifications.
-
Removes a previously registered observer. It is expected to be called on the main queue.
Declaration
Swift
public func removeObserver(_ observer: some VehicleUpdateObserver)
Parameters
observer
The registered observer.
-
Updates the vehicle state with specified parameters only.
Throws
VehicleError.invalidVehicleParameter
If vehicleparameters
are not valid for the current vehicle type.Updating vehicle parameters notifies observers of the latest vehicle state. If an observer is registered for multiple vehicle parameter updates and these parameters are updated at the same time, the observer is only notified once.
It is expected to be called on the main queue.
Declaration
Swift
public func updateVehicleState(with parameters: [VehicleParameter]) throws
Parameters
parameters
The vehicle parameters update.