DefaultVehicleProvider
public class DefaultVehicleProvider : VehicleProvider
Provides a thread-safe implementation of the VehicleProvider.
Provides the option to update a vehicle or specified vehicle properties and to subscribe to property 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
vehicleThe current vehicle to be provided. If not specified the default value is
CarwithCombustionEngine.
-
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 property updates and these properties 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 a vehicle update observer for all vehicle property updates. The call is expected on the main queue.
Throws
Throws:VehicleError.alreadyRegisteredObserverupon adding the same observer more than once.Declaration
Swift
public func addObserver(_ observer: some VehicleUpdateObserver) throwsParameters
observerThe observer to be registered.
-
Registers a vehicle update observer for specific vehicle property updates. The call is expected on the main queue.
Throws
Throws:VehicleError.alreadyRegisteredObserverupon adding the same observer more than once.Declaration
Swift
public func addObserver( _ observer: some VehicleUpdateObserver, for trackedPropertyIDs: [PropertyID] ) throwsParameters
observerThe observer to be registered.
trackedPropertyIDsIdentifiers of vehicle properties whose changes will trigger the notification.
-
Removes a previously registered observer. The call is expected on the main queue.
Declaration
Swift
public func removeObserver(_ observer: some VehicleUpdateObserver)Parameters
observerThe registered observer.
-
Updates the vehicle state with specified properties only.
Throws
VehicleError.invalidVehicleProperty, if the vehiclepropertiesare not valid for the current vehicle type.Updating vehicle properties notifies observers of the latest vehicle state. If an observer is registered for multiple vehicle property updates and these properties are updated at the same time, the observer is only notified once.
The call is expected on the main queue.
Declaration
Swift
public func updateVehicleState(with properties: [VehicleProperty]) throwsParameters
propertiesThe vehicle properties to update.
DefaultVehicleProvider Class Reference