25 lines
770 B
Swift
25 lines
770 B
Swift
import Foundation
|
|
|
|
public struct BncsMessageComposer: MessageComposer {
|
|
var data: Foundation.Data = Foundation.Data()
|
|
|
|
public init() {}
|
|
|
|
public func build(messageIdentifier: BncsMessageIdentifier) -> BncsMessage {
|
|
precondition(messageIdentifier != .None)
|
|
|
|
var fullMessageComposer = RawMessageComposer()
|
|
fullMessageComposer.write(0xFF as UInt8)
|
|
fullMessageComposer.write(messageIdentifier.rawValue)
|
|
fullMessageComposer.write(UInt16(4 + data.count))
|
|
fullMessageComposer.write(data)
|
|
|
|
do {
|
|
return try BncsMessage(data: fullMessageComposer.data)
|
|
} catch (let error) {
|
|
preconditionFailure("BncsMessageComposer is composing invalid BncsMessage's: \(error)")
|
|
}
|
|
}
|
|
|
|
}
|