Makes it so we don't have to wait for all servers to be connected before fetching
This commit is contained in:
@@ -54,15 +54,9 @@ class ServerMultiplex
|
||||
|
||||
public func refreshDevices()
|
||||
{
|
||||
ensureConnection { (error: Error?) in
|
||||
if let error = error {
|
||||
self.handleError(error)
|
||||
} else {
|
||||
self.servers.forEach { (server: Server) in
|
||||
server.fetchDevices { (result: Result<[AnyDevice], Error>) in
|
||||
self.handleServerFetchResult(result)
|
||||
}
|
||||
}
|
||||
self.servers.forEach { (server: Server) in
|
||||
server.fetchDevices { (result: Result<[AnyDevice], Error>) in
|
||||
self.handleServerFetchResult(result)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -70,25 +64,6 @@ class ServerMultiplex
|
||||
|
||||
extension ServerMultiplex
|
||||
{
|
||||
private func ensureConnection(then: @escaping (Error?) -> Void)
|
||||
{
|
||||
let disconnectedServers = servers.filter { $0.connected == false }
|
||||
var disconnectedServerCount = disconnectedServers.count
|
||||
|
||||
if disconnectedServerCount > 0 {
|
||||
disconnectedServers.forEach { (server: Server) in
|
||||
server.connect { (error: Error?) in
|
||||
disconnectedServerCount -= 1
|
||||
if disconnectedServerCount == 0 {
|
||||
then(error)
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
then(nil)
|
||||
}
|
||||
}
|
||||
|
||||
private func handleServerFetchResult(_ result: Result<[AnyDevice], Error>)
|
||||
{
|
||||
switch result {
|
||||
|
||||
Reference in New Issue
Block a user