data/method/mavlink/pymavlink/generator/swift/Tests/MAVLinkTests/Delegate.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)
}
}