Files
2024-11-29 23:10:03 +09:00

36 lines
1.1 KiB
Swift

import Foundation
/// 6.2. CLIENT_SETUP and SERVER_SETUP
struct MoQTClientSetup: MoQTControlMessage {
let type: MoQTMessageType = .clientSetup
let supprtedVersions: [MoQTVersion]
let setupParameters: [MoQTSetupParameter]
var payload: Data {
get throws {
var payload = MoQTPayload()
payload.putInt(supprtedVersions.count)
for version in supprtedVersions {
payload.putInt(version.rawValue)
}
payload.putInt(setupParameters.count)
for parameter in setupParameters {
payload.putData(try parameter.payload)
}
return payload.data
}
}
}
extension MoQTClientSetup {
init(supportedVersions: [MoQTVersion], role: MoQTSetupRole, path: String?) {
self.supprtedVersions = supportedVersions
var setupParameters: [MoQTSetupParameter] = .init()
setupParameters.append(.init(key: .role, value: role))
if let path {
setupParameters.append(.init(key: .path, value: path))
}
self.setupParameters = setupParameters
}
}