ServerMultiplex: Introduces a server mutiplexer
- Also moves all the existing Wemo* stuff over to support the multiplexer - Moves MainViewController to be the owner of the multiplexer, and its delegate
This commit is contained in:
@@ -7,3 +7,27 @@
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
protocol Server
|
||||
{
|
||||
var connected: Bool { get }
|
||||
|
||||
/// Designated initializer. Takes an API endpoint URL
|
||||
init(_ url: URL)
|
||||
|
||||
/// Attempts to connect to the server at the specified endpoint.
|
||||
func connect(_ completion: @escaping (Error?) -> Void)
|
||||
|
||||
/// Sets server's state as "disconnected"
|
||||
func disconnect(_ completion: (Error?) -> Void)
|
||||
|
||||
/// Fetches a list of all currently configured devices for this server, or returns an error.
|
||||
func fetchDevices(_ completion: @escaping (Result<[AnyDevice], Error>) -> Void)
|
||||
|
||||
/// Tells the server to set the state of a given device to the given state
|
||||
func toggleDevice(_ device: AnyDevice, state: DeviceState, completion: @escaping (Error?) -> Void)
|
||||
|
||||
/// Returns true if this is a device this server is responsible for
|
||||
func responsibleForDevice(_ device: AnyDevice) -> Bool
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user