|
|
|
|
@ -14,97 +14,106 @@ public enum WebSocketProtoError: Error {
|
|
|
|
|
|
|
|
|
|
@objc public class WebSocketProtoWebSocketRequestMessage: NSObject {
|
|
|
|
|
|
|
|
|
|
@objc public let verb: String?
|
|
|
|
|
@objc public let path: String?
|
|
|
|
|
@objc public let body: Data?
|
|
|
|
|
@objc public let headers: [String]
|
|
|
|
|
@objc public let requestId: UInt64
|
|
|
|
|
|
|
|
|
|
@objc public init(verb: String?,
|
|
|
|
|
path: String?,
|
|
|
|
|
body: Data?,
|
|
|
|
|
headers: [String],
|
|
|
|
|
requestId: UInt64) {
|
|
|
|
|
self.verb = verb
|
|
|
|
|
self.path = path
|
|
|
|
|
self.body = body
|
|
|
|
|
self.headers = headers
|
|
|
|
|
self.requestId = requestId
|
|
|
|
|
}
|
|
|
|
|
// MARK: - WebSocketProtoWebSocketRequestMessageBuilder
|
|
|
|
|
|
|
|
|
|
@objc
|
|
|
|
|
public func serializedData() throws -> Data {
|
|
|
|
|
return try self.asProtobuf.serializedData()
|
|
|
|
|
}
|
|
|
|
|
@objc public class WebSocketProtoWebSocketRequestMessageBuilder: NSObject {
|
|
|
|
|
|
|
|
|
|
@objc public class func parseData(_ serializedData: Data) throws -> WebSocketProtoWebSocketRequestMessage {
|
|
|
|
|
let proto = try WebSocketProtos_WebSocketRequestMessage(serializedData: serializedData)
|
|
|
|
|
return try parseProto(proto)
|
|
|
|
|
}
|
|
|
|
|
private var proto = WebSocketProtos_WebSocketRequestMessage()
|
|
|
|
|
|
|
|
|
|
fileprivate class func parseProto(_ proto: WebSocketProtos_WebSocketRequestMessage) throws -> WebSocketProtoWebSocketRequestMessage {
|
|
|
|
|
var verb: String? = nil
|
|
|
|
|
if proto.hasVerb {
|
|
|
|
|
verb = proto.verb
|
|
|
|
|
@objc public override init() {}
|
|
|
|
|
|
|
|
|
|
@objc public func setVerb(_ valueParam: String) {
|
|
|
|
|
proto.verb = valueParam
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var path: String? = nil
|
|
|
|
|
if proto.hasPath {
|
|
|
|
|
path = proto.path
|
|
|
|
|
@objc public func setPath(_ valueParam: String) {
|
|
|
|
|
proto.path = valueParam
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var body: Data? = nil
|
|
|
|
|
if proto.hasBody {
|
|
|
|
|
body = proto.body
|
|
|
|
|
@objc public func setBody(_ valueParam: Data) {
|
|
|
|
|
proto.body = valueParam
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var headers: [String] = []
|
|
|
|
|
for item in proto.headers {
|
|
|
|
|
let wrapped = item
|
|
|
|
|
headers.append(wrapped)
|
|
|
|
|
@objc public func addHeaders(_ valueParam: String) {
|
|
|
|
|
var items = proto.headers
|
|
|
|
|
items.append(valueParam)
|
|
|
|
|
proto.headers = items
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var requestId: UInt64 = 0
|
|
|
|
|
if proto.hasRequestId {
|
|
|
|
|
requestId = proto.requestId
|
|
|
|
|
@objc public func setRequestId(_ valueParam: UInt64) {
|
|
|
|
|
proto.requestId = valueParam
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// MARK: - Begin Validation Logic for WebSocketProtoWebSocketRequestMessage -
|
|
|
|
|
@objc public func build() throws -> WebSocketProtoWebSocketRequestMessage {
|
|
|
|
|
let wrapper = try WebSocketProtoWebSocketRequestMessage.parseProto(proto)
|
|
|
|
|
return wrapper
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// MARK: - End Validation Logic for WebSocketProtoWebSocketRequestMessage -
|
|
|
|
|
fileprivate let proto: WebSocketProtos_WebSocketRequestMessage
|
|
|
|
|
|
|
|
|
|
let result = WebSocketProtoWebSocketRequestMessage(verb: verb,
|
|
|
|
|
path: path,
|
|
|
|
|
body: body,
|
|
|
|
|
headers: headers,
|
|
|
|
|
requestId: requestId)
|
|
|
|
|
return result
|
|
|
|
|
@objc public var verb: String? {
|
|
|
|
|
guard proto.hasVerb else {
|
|
|
|
|
return nil
|
|
|
|
|
}
|
|
|
|
|
return proto.verb
|
|
|
|
|
}
|
|
|
|
|
@objc public var hasVerb: Bool {
|
|
|
|
|
return proto.hasVerb
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fileprivate var asProtobuf: WebSocketProtos_WebSocketRequestMessage {
|
|
|
|
|
let proto = WebSocketProtos_WebSocketRequestMessage.with { (builder) in
|
|
|
|
|
if let verb = self.verb {
|
|
|
|
|
builder.verb = verb
|
|
|
|
|
}
|
|
|
|
|
@objc public var path: String? {
|
|
|
|
|
guard proto.hasPath else {
|
|
|
|
|
return nil
|
|
|
|
|
}
|
|
|
|
|
return proto.path
|
|
|
|
|
}
|
|
|
|
|
@objc public var hasPath: Bool {
|
|
|
|
|
return proto.hasPath
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if let path = self.path {
|
|
|
|
|
builder.path = path
|
|
|
|
|
}
|
|
|
|
|
@objc public var body: Data? {
|
|
|
|
|
guard proto.hasBody else {
|
|
|
|
|
return nil
|
|
|
|
|
}
|
|
|
|
|
return proto.body
|
|
|
|
|
}
|
|
|
|
|
@objc public var hasBody: Bool {
|
|
|
|
|
return proto.hasBody
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if let body = self.body {
|
|
|
|
|
builder.body = body
|
|
|
|
|
}
|
|
|
|
|
@objc public var headers: [String] {
|
|
|
|
|
return proto.headers
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var headersUnwrapped = [String]()
|
|
|
|
|
for item in headers {
|
|
|
|
|
headersUnwrapped.append(item)
|
|
|
|
|
}
|
|
|
|
|
builder.headers = headersUnwrapped
|
|
|
|
|
@objc public var requestId: UInt64 {
|
|
|
|
|
return proto.requestId
|
|
|
|
|
}
|
|
|
|
|
@objc public var hasRequestId: Bool {
|
|
|
|
|
return proto.hasRequestId
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
builder.requestId = self.requestId
|
|
|
|
|
}
|
|
|
|
|
private init(proto: WebSocketProtos_WebSocketRequestMessage) {
|
|
|
|
|
self.proto = proto
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return proto
|
|
|
|
|
@objc
|
|
|
|
|
public func serializedData() throws -> Data {
|
|
|
|
|
return try self.proto.serializedData()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@objc public class func parseData(_ serializedData: Data) throws -> WebSocketProtoWebSocketRequestMessage {
|
|
|
|
|
let proto = try WebSocketProtos_WebSocketRequestMessage(serializedData: serializedData)
|
|
|
|
|
return try parseProto(proto)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fileprivate class func parseProto(_ proto: WebSocketProtos_WebSocketRequestMessage) throws -> WebSocketProtoWebSocketRequestMessage {
|
|
|
|
|
// MARK: - Begin Validation Logic for WebSocketProtoWebSocketRequestMessage -
|
|
|
|
|
|
|
|
|
|
// MARK: - End Validation Logic for WebSocketProtoWebSocketRequestMessage -
|
|
|
|
|
|
|
|
|
|
let result = WebSocketProtoWebSocketRequestMessage(proto: proto)
|
|
|
|
|
return result
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -112,95 +121,103 @@ public enum WebSocketProtoError: Error {
|
|
|
|
|
|
|
|
|
|
@objc public class WebSocketProtoWebSocketResponseMessage: NSObject {
|
|
|
|
|
|
|
|
|
|
@objc public let requestId: UInt64
|
|
|
|
|
@objc public let status: UInt32
|
|
|
|
|
@objc public let message: String?
|
|
|
|
|
@objc public let headers: [String]
|
|
|
|
|
@objc public let body: Data?
|
|
|
|
|
// MARK: - WebSocketProtoWebSocketResponseMessageBuilder
|
|
|
|
|
|
|
|
|
|
@objc public init(requestId: UInt64,
|
|
|
|
|
status: UInt32,
|
|
|
|
|
message: String?,
|
|
|
|
|
headers: [String],
|
|
|
|
|
body: Data?) {
|
|
|
|
|
self.requestId = requestId
|
|
|
|
|
self.status = status
|
|
|
|
|
self.message = message
|
|
|
|
|
self.headers = headers
|
|
|
|
|
self.body = body
|
|
|
|
|
}
|
|
|
|
|
@objc public class WebSocketProtoWebSocketResponseMessageBuilder: NSObject {
|
|
|
|
|
|
|
|
|
|
@objc
|
|
|
|
|
public func serializedData() throws -> Data {
|
|
|
|
|
return try self.asProtobuf.serializedData()
|
|
|
|
|
}
|
|
|
|
|
private var proto = WebSocketProtos_WebSocketResponseMessage()
|
|
|
|
|
|
|
|
|
|
@objc public class func parseData(_ serializedData: Data) throws -> WebSocketProtoWebSocketResponseMessage {
|
|
|
|
|
let proto = try WebSocketProtos_WebSocketResponseMessage(serializedData: serializedData)
|
|
|
|
|
return try parseProto(proto)
|
|
|
|
|
}
|
|
|
|
|
@objc public override init() {}
|
|
|
|
|
|
|
|
|
|
fileprivate class func parseProto(_ proto: WebSocketProtos_WebSocketResponseMessage) throws -> WebSocketProtoWebSocketResponseMessage {
|
|
|
|
|
var requestId: UInt64 = 0
|
|
|
|
|
if proto.hasRequestId {
|
|
|
|
|
requestId = proto.requestId
|
|
|
|
|
@objc public func setRequestId(_ valueParam: UInt64) {
|
|
|
|
|
proto.requestId = valueParam
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var status: UInt32 = 0
|
|
|
|
|
if proto.hasStatus {
|
|
|
|
|
status = proto.status
|
|
|
|
|
@objc public func setStatus(_ valueParam: UInt32) {
|
|
|
|
|
proto.status = valueParam
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var message: String? = nil
|
|
|
|
|
if proto.hasMessage {
|
|
|
|
|
message = proto.message
|
|
|
|
|
@objc public func setMessage(_ valueParam: String) {
|
|
|
|
|
proto.message = valueParam
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var headers: [String] = []
|
|
|
|
|
for item in proto.headers {
|
|
|
|
|
let wrapped = item
|
|
|
|
|
headers.append(wrapped)
|
|
|
|
|
@objc public func addHeaders(_ valueParam: String) {
|
|
|
|
|
var items = proto.headers
|
|
|
|
|
items.append(valueParam)
|
|
|
|
|
proto.headers = items
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var body: Data? = nil
|
|
|
|
|
if proto.hasBody {
|
|
|
|
|
body = proto.body
|
|
|
|
|
@objc public func setBody(_ valueParam: Data) {
|
|
|
|
|
proto.body = valueParam
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// MARK: - Begin Validation Logic for WebSocketProtoWebSocketResponseMessage -
|
|
|
|
|
@objc public func build() throws -> WebSocketProtoWebSocketResponseMessage {
|
|
|
|
|
let wrapper = try WebSocketProtoWebSocketResponseMessage.parseProto(proto)
|
|
|
|
|
return wrapper
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// MARK: - End Validation Logic for WebSocketProtoWebSocketResponseMessage -
|
|
|
|
|
fileprivate let proto: WebSocketProtos_WebSocketResponseMessage
|
|
|
|
|
|
|
|
|
|
let result = WebSocketProtoWebSocketResponseMessage(requestId: requestId,
|
|
|
|
|
status: status,
|
|
|
|
|
message: message,
|
|
|
|
|
headers: headers,
|
|
|
|
|
body: body)
|
|
|
|
|
return result
|
|
|
|
|
@objc public var requestId: UInt64 {
|
|
|
|
|
return proto.requestId
|
|
|
|
|
}
|
|
|
|
|
@objc public var hasRequestId: Bool {
|
|
|
|
|
return proto.hasRequestId
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fileprivate var asProtobuf: WebSocketProtos_WebSocketResponseMessage {
|
|
|
|
|
let proto = WebSocketProtos_WebSocketResponseMessage.with { (builder) in
|
|
|
|
|
builder.requestId = self.requestId
|
|
|
|
|
|
|
|
|
|
builder.status = self.status
|
|
|
|
|
@objc public var status: UInt32 {
|
|
|
|
|
return proto.status
|
|
|
|
|
}
|
|
|
|
|
@objc public var hasStatus: Bool {
|
|
|
|
|
return proto.hasStatus
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if let message = self.message {
|
|
|
|
|
builder.message = message
|
|
|
|
|
}
|
|
|
|
|
@objc public var message: String? {
|
|
|
|
|
guard proto.hasMessage else {
|
|
|
|
|
return nil
|
|
|
|
|
}
|
|
|
|
|
return proto.message
|
|
|
|
|
}
|
|
|
|
|
@objc public var hasMessage: Bool {
|
|
|
|
|
return proto.hasMessage
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var headersUnwrapped = [String]()
|
|
|
|
|
for item in headers {
|
|
|
|
|
headersUnwrapped.append(item)
|
|
|
|
|
}
|
|
|
|
|
builder.headers = headersUnwrapped
|
|
|
|
|
@objc public var headers: [String] {
|
|
|
|
|
return proto.headers
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if let body = self.body {
|
|
|
|
|
builder.body = body
|
|
|
|
|
}
|
|
|
|
|
@objc public var body: Data? {
|
|
|
|
|
guard proto.hasBody else {
|
|
|
|
|
return nil
|
|
|
|
|
}
|
|
|
|
|
return proto.body
|
|
|
|
|
}
|
|
|
|
|
@objc public var hasBody: Bool {
|
|
|
|
|
return proto.hasBody
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private init(proto: WebSocketProtos_WebSocketResponseMessage) {
|
|
|
|
|
self.proto = proto
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@objc
|
|
|
|
|
public func serializedData() throws -> Data {
|
|
|
|
|
return try self.proto.serializedData()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@objc public class func parseData(_ serializedData: Data) throws -> WebSocketProtoWebSocketResponseMessage {
|
|
|
|
|
let proto = try WebSocketProtos_WebSocketResponseMessage(serializedData: serializedData)
|
|
|
|
|
return try parseProto(proto)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fileprivate class func parseProto(_ proto: WebSocketProtos_WebSocketResponseMessage) throws -> WebSocketProtoWebSocketResponseMessage {
|
|
|
|
|
// MARK: - Begin Validation Logic for WebSocketProtoWebSocketResponseMessage -
|
|
|
|
|
|
|
|
|
|
// MARK: - End Validation Logic for WebSocketProtoWebSocketResponseMessage -
|
|
|
|
|
|
|
|
|
|
return proto
|
|
|
|
|
let result = WebSocketProtoWebSocketResponseMessage(proto: proto)
|
|
|
|
|
return result
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -232,21 +249,55 @@ public enum WebSocketProtoError: Error {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@objc public let type: WebSocketProtoWebSocketMessageType
|
|
|
|
|
// MARK: - WebSocketProtoWebSocketMessageBuilder
|
|
|
|
|
|
|
|
|
|
@objc public class WebSocketProtoWebSocketMessageBuilder: NSObject {
|
|
|
|
|
|
|
|
|
|
private var proto = WebSocketProtos_WebSocketMessage()
|
|
|
|
|
|
|
|
|
|
@objc public override init() {}
|
|
|
|
|
|
|
|
|
|
@objc public func setType(_ valueParam: WebSocketProtoWebSocketMessageType) {
|
|
|
|
|
proto.type = WebSocketProtoWebSocketMessageTypeUnwrap(valueParam)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@objc public func setRequest(_ valueParam: WebSocketProtoWebSocketRequestMessage) {
|
|
|
|
|
proto.request = valueParam.proto
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@objc public func setResponse(_ valueParam: WebSocketProtoWebSocketResponseMessage) {
|
|
|
|
|
proto.response = valueParam.proto
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@objc public func build() throws -> WebSocketProtoWebSocketMessage {
|
|
|
|
|
let wrapper = try WebSocketProtoWebSocketMessage.parseProto(proto)
|
|
|
|
|
return wrapper
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fileprivate let proto: WebSocketProtos_WebSocketMessage
|
|
|
|
|
|
|
|
|
|
@objc public let request: WebSocketProtoWebSocketRequestMessage?
|
|
|
|
|
@objc public let response: WebSocketProtoWebSocketResponseMessage?
|
|
|
|
|
|
|
|
|
|
@objc public init(type: WebSocketProtoWebSocketMessageType,
|
|
|
|
|
request: WebSocketProtoWebSocketRequestMessage?,
|
|
|
|
|
response: WebSocketProtoWebSocketResponseMessage?) {
|
|
|
|
|
self.type = type
|
|
|
|
|
@objc public var type: WebSocketProtoWebSocketMessageType {
|
|
|
|
|
return WebSocketProtoWebSocketMessage.WebSocketProtoWebSocketMessageTypeWrap(proto.type)
|
|
|
|
|
}
|
|
|
|
|
@objc public var hasType: Bool {
|
|
|
|
|
return proto.hasType
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private init(proto: WebSocketProtos_WebSocketMessage,
|
|
|
|
|
request: WebSocketProtoWebSocketRequestMessage?,
|
|
|
|
|
response: WebSocketProtoWebSocketResponseMessage?) {
|
|
|
|
|
self.proto = proto
|
|
|
|
|
self.request = request
|
|
|
|
|
self.response = response
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@objc
|
|
|
|
|
public func serializedData() throws -> Data {
|
|
|
|
|
return try self.asProtobuf.serializedData()
|
|
|
|
|
return try self.proto.serializedData()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@objc public class func parseData(_ serializedData: Data) throws -> WebSocketProtoWebSocketMessage {
|
|
|
|
|
@ -255,11 +306,6 @@ public enum WebSocketProtoError: Error {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fileprivate class func parseProto(_ proto: WebSocketProtos_WebSocketMessage) throws -> WebSocketProtoWebSocketMessage {
|
|
|
|
|
var type: WebSocketProtoWebSocketMessageType = .unknown
|
|
|
|
|
if proto.hasType {
|
|
|
|
|
type = WebSocketProtoWebSocketMessageTypeWrap(proto.type)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var request: WebSocketProtoWebSocketRequestMessage? = nil
|
|
|
|
|
if proto.hasRequest {
|
|
|
|
|
request = try WebSocketProtoWebSocketRequestMessage.parseProto(proto.request)
|
|
|
|
|
@ -274,25 +320,9 @@ public enum WebSocketProtoError: Error {
|
|
|
|
|
|
|
|
|
|
// MARK: - End Validation Logic for WebSocketProtoWebSocketMessage -
|
|
|
|
|
|
|
|
|
|
let result = WebSocketProtoWebSocketMessage(type: type,
|
|
|
|
|
let result = WebSocketProtoWebSocketMessage(proto: proto,
|
|
|
|
|
request: request,
|
|
|
|
|
response: response)
|
|
|
|
|
return result
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fileprivate var asProtobuf: WebSocketProtos_WebSocketMessage {
|
|
|
|
|
let proto = WebSocketProtos_WebSocketMessage.with { (builder) in
|
|
|
|
|
builder.type = WebSocketProtoWebSocketMessage.WebSocketProtoWebSocketMessageTypeUnwrap(self.type)
|
|
|
|
|
|
|
|
|
|
if let request = self.request {
|
|
|
|
|
builder.request = request.asProtobuf
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if let response = self.response {
|
|
|
|
|
builder.response = response.asProtobuf
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return proto
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|