protocol DiscoveryController : SendableManages Discovery Candidates for all Structures in a User Account.
This protocol is used to manage the Discovery Candidates for all Structures in a User Account. This includes fetching, caching and freshing the candidates.
Note
This protocol exists to facilitate eventual SRL migration.-
Returns the Discovery candidates for the given Structure.
Note
Initially the Discovery API is non streaming. The expected usage is:
let candidates = try await discoveryController.candidates(for: structure, includeDescendants: false).first()Declaration
Swift
func candidates(for structure: Structure, includeDescendants: Bool) -> any Query<AnyNodeCandidate>Parameters
includeDescendantsWhether to include candidates for all the objects within the specified Structure.
Return Value
The Discovery candidates for the given Structure.
-
Returns the Discovery candidates for the given Device.
Note
Initially the Discovery API is non streaming. The expected usage is:
let candidates = try await discoveryController.candidates(for: device).first()Declaration
Swift
func candidates(for device: HomeDevice) throws -> any Query<AnyNodeCandidate>Return Value
The Discovery candidates for the given home object.