55 lines
2.1 KiB
Swift
55 lines
2.1 KiB
Swift
|
//
|
||
|
// Delegate.swift
|
||
|
// MAVLink
|
||
|
//
|
||
|
// Created by Max Odnovolyk on 10/28/16.
|
||
|
// Copyright © 2016 Build Apps. All rights reserved.
|
||
|
//
|
||
|
|
||
|
import Foundation
|
||
|
import MAVLink
|
||
|
|
||
|
class Delegate {
|
||
|
typealias DidReceiveHandler = (Packet, Channel, MAVLink) -> Void
|
||
|
typealias DidFailToReceiveHandler = (Packet?, MAVLinkError, Channel, MAVLink) -> Void
|
||
|
typealias DidParseHandler = (Message, Packet, Channel, MAVLink) -> Void
|
||
|
typealias DidFailToParseMessageHandler = (Packet, MAVLinkError, Channel, MAVLink) -> Void
|
||
|
typealias DidFinalizeHandler = (Message, Packet, Data, Channel, MAVLink) -> Void
|
||
|
|
||
|
var didReceive: DidReceiveHandler?
|
||
|
var didFailToReceive: DidFailToReceiveHandler?
|
||
|
var didParse: DidParseHandler?
|
||
|
var didFailToParseMessage: DidFailToParseMessageHandler?
|
||
|
var didFinalize: DidFinalizeHandler?
|
||
|
|
||
|
init(didReceive: DidReceiveHandler? = nil, didFailToReceive: DidFailToReceiveHandler? = nil, didParse: DidParseHandler? = nil, didFailToParseMessage: DidFailToParseMessageHandler? = nil, didFinalize: DidFinalizeHandler? = nil) {
|
||
|
self.didReceive = didReceive
|
||
|
self.didFailToReceive = didFailToReceive
|
||
|
self.didParse = didParse
|
||
|
self.didFailToParseMessage = didFailToParseMessage
|
||
|
self.didFinalize = didFinalize
|
||
|
}
|
||
|
}
|
||
|
|
||
|
extension Delegate: MAVLinkDelegate {
|
||
|
func didReceive(packet: Packet, on channel: Channel, via link: MAVLink) {
|
||
|
didReceive?(packet, channel, link)
|
||
|
}
|
||
|
|
||
|
func didFailToReceive(packet: Packet?, with error: MAVLinkError, on channel: Channel, via link: MAVLink) {
|
||
|
didFailToReceive?(packet, error, channel, link)
|
||
|
}
|
||
|
|
||
|
func didParse(message: Message, from packet: Packet, on channel: Channel, via link: MAVLink) {
|
||
|
didParse?(message, packet, channel, link)
|
||
|
}
|
||
|
|
||
|
func didFailToParseMessage(from packet: Packet, with error: MAVLinkError, on channel: Channel, via link: MAVLink) {
|
||
|
didFailToParseMessage?(packet, error, channel, link)
|
||
|
}
|
||
|
|
||
|
func didFinalize(message: Message, from packet: Packet, to data: Data, on channel: Channel, in link: MAVLink) {
|
||
|
didFinalize?(message, packet, data, channel, link)
|
||
|
}
|
||
|
}
|