mirror of https://github.com/oxen-io/session-ios
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			410 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Swift
		
	
			
		
		
	
	
			410 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Swift
		
	
//
 | 
						|
//  Copyright (c) 2018 Open Whisper Systems. All rights reserved.
 | 
						|
//
 | 
						|
 | 
						|
import Foundation
 | 
						|
 | 
						|
// WARNING: This code is generated. Only edit within the markers.
 | 
						|
 | 
						|
public enum SignalIOSProtoError: Error {
 | 
						|
    case invalidProtobuf(description: String)
 | 
						|
}
 | 
						|
 | 
						|
// MARK: - SignalIOSProtoBackupSnapshotBackupEntity
 | 
						|
 | 
						|
@objc public class SignalIOSProtoBackupSnapshotBackupEntity: NSObject {
 | 
						|
 | 
						|
    // MARK: - SignalIOSProtoBackupSnapshotBackupEntityType
 | 
						|
 | 
						|
    @objc public enum SignalIOSProtoBackupSnapshotBackupEntityType: Int32 {
 | 
						|
        case unknown = 0
 | 
						|
        case migration = 1
 | 
						|
        case thread = 2
 | 
						|
        case interaction = 3
 | 
						|
        case attachment = 4
 | 
						|
        case misc = 5
 | 
						|
    }
 | 
						|
 | 
						|
    private class func SignalIOSProtoBackupSnapshotBackupEntityTypeWrap(_ value: IOSProtos_BackupSnapshot.BackupEntity.TypeEnum) -> SignalIOSProtoBackupSnapshotBackupEntityType {
 | 
						|
        switch value {
 | 
						|
        case .unknown: return .unknown
 | 
						|
        case .migration: return .migration
 | 
						|
        case .thread: return .thread
 | 
						|
        case .interaction: return .interaction
 | 
						|
        case .attachment: return .attachment
 | 
						|
        case .misc: return .misc
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    private class func SignalIOSProtoBackupSnapshotBackupEntityTypeUnwrap(_ value: SignalIOSProtoBackupSnapshotBackupEntityType) -> IOSProtos_BackupSnapshot.BackupEntity.TypeEnum {
 | 
						|
        switch value {
 | 
						|
        case .unknown: return .unknown
 | 
						|
        case .migration: return .migration
 | 
						|
        case .thread: return .thread
 | 
						|
        case .interaction: return .interaction
 | 
						|
        case .attachment: return .attachment
 | 
						|
        case .misc: return .misc
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    // MARK: - SignalIOSProtoBackupSnapshotBackupEntityBuilder
 | 
						|
 | 
						|
    @objc public class func builder(type: SignalIOSProtoBackupSnapshotBackupEntityType, entityData: Data, collection: String, key: String) -> SignalIOSProtoBackupSnapshotBackupEntityBuilder {
 | 
						|
        return SignalIOSProtoBackupSnapshotBackupEntityBuilder(type: type, entityData: entityData, collection: collection, key: key)
 | 
						|
    }
 | 
						|
 | 
						|
    // asBuilder() constructs a builder that reflects the proto's contents.
 | 
						|
    @objc public func asBuilder() -> SignalIOSProtoBackupSnapshotBackupEntityBuilder {
 | 
						|
        let builder = SignalIOSProtoBackupSnapshotBackupEntityBuilder(type: type, entityData: entityData, collection: collection, key: key)
 | 
						|
        return builder
 | 
						|
    }
 | 
						|
 | 
						|
    @objc public class SignalIOSProtoBackupSnapshotBackupEntityBuilder: NSObject {
 | 
						|
 | 
						|
        private var proto = IOSProtos_BackupSnapshot.BackupEntity()
 | 
						|
 | 
						|
        @objc fileprivate override init() {}
 | 
						|
 | 
						|
        @objc fileprivate init(type: SignalIOSProtoBackupSnapshotBackupEntityType, entityData: Data, collection: String, key: String) {
 | 
						|
            super.init()
 | 
						|
 | 
						|
            setType(type)
 | 
						|
            setEntityData(entityData)
 | 
						|
            setCollection(collection)
 | 
						|
            setKey(key)
 | 
						|
        }
 | 
						|
 | 
						|
        @objc public func setType(_ valueParam: SignalIOSProtoBackupSnapshotBackupEntityType) {
 | 
						|
            proto.type = SignalIOSProtoBackupSnapshotBackupEntityTypeUnwrap(valueParam)
 | 
						|
        }
 | 
						|
 | 
						|
        @objc public func setEntityData(_ valueParam: Data) {
 | 
						|
            proto.entityData = valueParam
 | 
						|
        }
 | 
						|
 | 
						|
        @objc public func setCollection(_ valueParam: String) {
 | 
						|
            proto.collection = valueParam
 | 
						|
        }
 | 
						|
 | 
						|
        @objc public func setKey(_ valueParam: String) {
 | 
						|
            proto.key = valueParam
 | 
						|
        }
 | 
						|
 | 
						|
        @objc public func build() throws -> SignalIOSProtoBackupSnapshotBackupEntity {
 | 
						|
            return try SignalIOSProtoBackupSnapshotBackupEntity.parseProto(proto)
 | 
						|
        }
 | 
						|
 | 
						|
        @objc public func buildSerializedData() throws -> Data {
 | 
						|
            return try SignalIOSProtoBackupSnapshotBackupEntity.parseProto(proto).serializedData()
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    fileprivate let proto: IOSProtos_BackupSnapshot.BackupEntity
 | 
						|
 | 
						|
    @objc public let type: SignalIOSProtoBackupSnapshotBackupEntityType
 | 
						|
 | 
						|
    @objc public let entityData: Data
 | 
						|
 | 
						|
    @objc public let collection: String
 | 
						|
 | 
						|
    @objc public let key: String
 | 
						|
 | 
						|
    private init(proto: IOSProtos_BackupSnapshot.BackupEntity,
 | 
						|
                 type: SignalIOSProtoBackupSnapshotBackupEntityType,
 | 
						|
                 entityData: Data,
 | 
						|
                 collection: String,
 | 
						|
                 key: String) {
 | 
						|
        self.proto = proto
 | 
						|
        self.type = type
 | 
						|
        self.entityData = entityData
 | 
						|
        self.collection = collection
 | 
						|
        self.key = key
 | 
						|
    }
 | 
						|
 | 
						|
    @objc
 | 
						|
    public func serializedData() throws -> Data {
 | 
						|
        return try self.proto.serializedData()
 | 
						|
    }
 | 
						|
 | 
						|
    @objc public class func parseData(_ serializedData: Data) throws -> SignalIOSProtoBackupSnapshotBackupEntity {
 | 
						|
        let proto = try IOSProtos_BackupSnapshot.BackupEntity(serializedData: serializedData)
 | 
						|
        return try parseProto(proto)
 | 
						|
    }
 | 
						|
 | 
						|
    fileprivate class func parseProto(_ proto: IOSProtos_BackupSnapshot.BackupEntity) throws -> SignalIOSProtoBackupSnapshotBackupEntity {
 | 
						|
        guard proto.hasType else {
 | 
						|
            throw SignalIOSProtoError.invalidProtobuf(description: "\(logTag) missing required field: type")
 | 
						|
        }
 | 
						|
        let type = SignalIOSProtoBackupSnapshotBackupEntityTypeWrap(proto.type)
 | 
						|
 | 
						|
        guard proto.hasEntityData else {
 | 
						|
            throw SignalIOSProtoError.invalidProtobuf(description: "\(logTag) missing required field: entityData")
 | 
						|
        }
 | 
						|
        let entityData = proto.entityData
 | 
						|
 | 
						|
        guard proto.hasCollection else {
 | 
						|
            throw SignalIOSProtoError.invalidProtobuf(description: "\(logTag) missing required field: collection")
 | 
						|
        }
 | 
						|
        let collection = proto.collection
 | 
						|
 | 
						|
        guard proto.hasKey else {
 | 
						|
            throw SignalIOSProtoError.invalidProtobuf(description: "\(logTag) missing required field: key")
 | 
						|
        }
 | 
						|
        let key = proto.key
 | 
						|
 | 
						|
        // MARK: - Begin Validation Logic for SignalIOSProtoBackupSnapshotBackupEntity -
 | 
						|
 | 
						|
        // MARK: - End Validation Logic for SignalIOSProtoBackupSnapshotBackupEntity -
 | 
						|
 | 
						|
        let result = SignalIOSProtoBackupSnapshotBackupEntity(proto: proto,
 | 
						|
                                                              type: type,
 | 
						|
                                                              entityData: entityData,
 | 
						|
                                                              collection: collection,
 | 
						|
                                                              key: key)
 | 
						|
        return result
 | 
						|
    }
 | 
						|
 | 
						|
    @objc public override var debugDescription: String {
 | 
						|
        return "\(proto)"
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
#if DEBUG
 | 
						|
 | 
						|
extension SignalIOSProtoBackupSnapshotBackupEntity {
 | 
						|
    @objc public func serializedDataIgnoringErrors() -> Data? {
 | 
						|
        return try! self.serializedData()
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
extension SignalIOSProtoBackupSnapshotBackupEntity.SignalIOSProtoBackupSnapshotBackupEntityBuilder {
 | 
						|
    @objc public func buildIgnoringErrors() -> SignalIOSProtoBackupSnapshotBackupEntity? {
 | 
						|
        return try! self.build()
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
#endif
 | 
						|
 | 
						|
// MARK: - SignalIOSProtoBackupSnapshot
 | 
						|
 | 
						|
@objc public class SignalIOSProtoBackupSnapshot: NSObject {
 | 
						|
 | 
						|
    // MARK: - SignalIOSProtoBackupSnapshotBuilder
 | 
						|
 | 
						|
    @objc public class func builder() -> SignalIOSProtoBackupSnapshotBuilder {
 | 
						|
        return SignalIOSProtoBackupSnapshotBuilder()
 | 
						|
    }
 | 
						|
 | 
						|
    // asBuilder() constructs a builder that reflects the proto's contents.
 | 
						|
    @objc public func asBuilder() -> SignalIOSProtoBackupSnapshotBuilder {
 | 
						|
        let builder = SignalIOSProtoBackupSnapshotBuilder()
 | 
						|
        builder.setEntity(entity)
 | 
						|
        return builder
 | 
						|
    }
 | 
						|
 | 
						|
    @objc public class SignalIOSProtoBackupSnapshotBuilder: NSObject {
 | 
						|
 | 
						|
        private var proto = IOSProtos_BackupSnapshot()
 | 
						|
 | 
						|
        @objc fileprivate override init() {}
 | 
						|
 | 
						|
        @objc public func addEntity(_ valueParam: SignalIOSProtoBackupSnapshotBackupEntity) {
 | 
						|
            var items = proto.entity
 | 
						|
            items.append(valueParam.proto)
 | 
						|
            proto.entity = items
 | 
						|
        }
 | 
						|
 | 
						|
        @objc public func setEntity(_ wrappedItems: [SignalIOSProtoBackupSnapshotBackupEntity]) {
 | 
						|
            proto.entity = wrappedItems.map { $0.proto }
 | 
						|
        }
 | 
						|
 | 
						|
        @objc public func build() throws -> SignalIOSProtoBackupSnapshot {
 | 
						|
            return try SignalIOSProtoBackupSnapshot.parseProto(proto)
 | 
						|
        }
 | 
						|
 | 
						|
        @objc public func buildSerializedData() throws -> Data {
 | 
						|
            return try SignalIOSProtoBackupSnapshot.parseProto(proto).serializedData()
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    fileprivate let proto: IOSProtos_BackupSnapshot
 | 
						|
 | 
						|
    @objc public let entity: [SignalIOSProtoBackupSnapshotBackupEntity]
 | 
						|
 | 
						|
    private init(proto: IOSProtos_BackupSnapshot,
 | 
						|
                 entity: [SignalIOSProtoBackupSnapshotBackupEntity]) {
 | 
						|
        self.proto = proto
 | 
						|
        self.entity = entity
 | 
						|
    }
 | 
						|
 | 
						|
    @objc
 | 
						|
    public func serializedData() throws -> Data {
 | 
						|
        return try self.proto.serializedData()
 | 
						|
    }
 | 
						|
 | 
						|
    @objc public class func parseData(_ serializedData: Data) throws -> SignalIOSProtoBackupSnapshot {
 | 
						|
        let proto = try IOSProtos_BackupSnapshot(serializedData: serializedData)
 | 
						|
        return try parseProto(proto)
 | 
						|
    }
 | 
						|
 | 
						|
    fileprivate class func parseProto(_ proto: IOSProtos_BackupSnapshot) throws -> SignalIOSProtoBackupSnapshot {
 | 
						|
        var entity: [SignalIOSProtoBackupSnapshotBackupEntity] = []
 | 
						|
        entity = try proto.entity.map { try SignalIOSProtoBackupSnapshotBackupEntity.parseProto($0) }
 | 
						|
 | 
						|
        // MARK: - Begin Validation Logic for SignalIOSProtoBackupSnapshot -
 | 
						|
 | 
						|
        // MARK: - End Validation Logic for SignalIOSProtoBackupSnapshot -
 | 
						|
 | 
						|
        let result = SignalIOSProtoBackupSnapshot(proto: proto,
 | 
						|
                                                  entity: entity)
 | 
						|
        return result
 | 
						|
    }
 | 
						|
 | 
						|
    @objc public override var debugDescription: String {
 | 
						|
        return "\(proto)"
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
#if DEBUG
 | 
						|
 | 
						|
extension SignalIOSProtoBackupSnapshot {
 | 
						|
    @objc public func serializedDataIgnoringErrors() -> Data? {
 | 
						|
        return try! self.serializedData()
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
extension SignalIOSProtoBackupSnapshot.SignalIOSProtoBackupSnapshotBuilder {
 | 
						|
    @objc public func buildIgnoringErrors() -> SignalIOSProtoBackupSnapshot? {
 | 
						|
        return try! self.build()
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
#endif
 | 
						|
 | 
						|
// MARK: - SignalIOSProtoDeviceName
 | 
						|
 | 
						|
@objc public class SignalIOSProtoDeviceName: NSObject {
 | 
						|
 | 
						|
    // MARK: - SignalIOSProtoDeviceNameBuilder
 | 
						|
 | 
						|
    @objc public class func builder(ephemeralPublic: Data, syntheticIv: Data, ciphertext: Data) -> SignalIOSProtoDeviceNameBuilder {
 | 
						|
        return SignalIOSProtoDeviceNameBuilder(ephemeralPublic: ephemeralPublic, syntheticIv: syntheticIv, ciphertext: ciphertext)
 | 
						|
    }
 | 
						|
 | 
						|
    // asBuilder() constructs a builder that reflects the proto's contents.
 | 
						|
    @objc public func asBuilder() -> SignalIOSProtoDeviceNameBuilder {
 | 
						|
        let builder = SignalIOSProtoDeviceNameBuilder(ephemeralPublic: ephemeralPublic, syntheticIv: syntheticIv, ciphertext: ciphertext)
 | 
						|
        return builder
 | 
						|
    }
 | 
						|
 | 
						|
    @objc public class SignalIOSProtoDeviceNameBuilder: NSObject {
 | 
						|
 | 
						|
        private var proto = IOSProtos_DeviceName()
 | 
						|
 | 
						|
        @objc fileprivate override init() {}
 | 
						|
 | 
						|
        @objc fileprivate init(ephemeralPublic: Data, syntheticIv: Data, ciphertext: Data) {
 | 
						|
            super.init()
 | 
						|
 | 
						|
            setEphemeralPublic(ephemeralPublic)
 | 
						|
            setSyntheticIv(syntheticIv)
 | 
						|
            setCiphertext(ciphertext)
 | 
						|
        }
 | 
						|
 | 
						|
        @objc public func setEphemeralPublic(_ valueParam: Data) {
 | 
						|
            proto.ephemeralPublic = valueParam
 | 
						|
        }
 | 
						|
 | 
						|
        @objc public func setSyntheticIv(_ valueParam: Data) {
 | 
						|
            proto.syntheticIv = valueParam
 | 
						|
        }
 | 
						|
 | 
						|
        @objc public func setCiphertext(_ valueParam: Data) {
 | 
						|
            proto.ciphertext = valueParam
 | 
						|
        }
 | 
						|
 | 
						|
        @objc public func build() throws -> SignalIOSProtoDeviceName {
 | 
						|
            return try SignalIOSProtoDeviceName.parseProto(proto)
 | 
						|
        }
 | 
						|
 | 
						|
        @objc public func buildSerializedData() throws -> Data {
 | 
						|
            return try SignalIOSProtoDeviceName.parseProto(proto).serializedData()
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    fileprivate let proto: IOSProtos_DeviceName
 | 
						|
 | 
						|
    @objc public let ephemeralPublic: Data
 | 
						|
 | 
						|
    @objc public let syntheticIv: Data
 | 
						|
 | 
						|
    @objc public let ciphertext: Data
 | 
						|
 | 
						|
    private init(proto: IOSProtos_DeviceName,
 | 
						|
                 ephemeralPublic: Data,
 | 
						|
                 syntheticIv: Data,
 | 
						|
                 ciphertext: Data) {
 | 
						|
        self.proto = proto
 | 
						|
        self.ephemeralPublic = ephemeralPublic
 | 
						|
        self.syntheticIv = syntheticIv
 | 
						|
        self.ciphertext = ciphertext
 | 
						|
    }
 | 
						|
 | 
						|
    @objc
 | 
						|
    public func serializedData() throws -> Data {
 | 
						|
        return try self.proto.serializedData()
 | 
						|
    }
 | 
						|
 | 
						|
    @objc public class func parseData(_ serializedData: Data) throws -> SignalIOSProtoDeviceName {
 | 
						|
        let proto = try IOSProtos_DeviceName(serializedData: serializedData)
 | 
						|
        return try parseProto(proto)
 | 
						|
    }
 | 
						|
 | 
						|
    fileprivate class func parseProto(_ proto: IOSProtos_DeviceName) throws -> SignalIOSProtoDeviceName {
 | 
						|
        guard proto.hasEphemeralPublic else {
 | 
						|
            throw SignalIOSProtoError.invalidProtobuf(description: "\(logTag) missing required field: ephemeralPublic")
 | 
						|
        }
 | 
						|
        let ephemeralPublic = proto.ephemeralPublic
 | 
						|
 | 
						|
        guard proto.hasSyntheticIv else {
 | 
						|
            throw SignalIOSProtoError.invalidProtobuf(description: "\(logTag) missing required field: syntheticIv")
 | 
						|
        }
 | 
						|
        let syntheticIv = proto.syntheticIv
 | 
						|
 | 
						|
        guard proto.hasCiphertext else {
 | 
						|
            throw SignalIOSProtoError.invalidProtobuf(description: "\(logTag) missing required field: ciphertext")
 | 
						|
        }
 | 
						|
        let ciphertext = proto.ciphertext
 | 
						|
 | 
						|
        // MARK: - Begin Validation Logic for SignalIOSProtoDeviceName -
 | 
						|
 | 
						|
        // MARK: - End Validation Logic for SignalIOSProtoDeviceName -
 | 
						|
 | 
						|
        let result = SignalIOSProtoDeviceName(proto: proto,
 | 
						|
                                              ephemeralPublic: ephemeralPublic,
 | 
						|
                                              syntheticIv: syntheticIv,
 | 
						|
                                              ciphertext: ciphertext)
 | 
						|
        return result
 | 
						|
    }
 | 
						|
 | 
						|
    @objc public override var debugDescription: String {
 | 
						|
        return "\(proto)"
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
#if DEBUG
 | 
						|
 | 
						|
extension SignalIOSProtoDeviceName {
 | 
						|
    @objc public func serializedDataIgnoringErrors() -> Data? {
 | 
						|
        return try! self.serializedData()
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
extension SignalIOSProtoDeviceName.SignalIOSProtoDeviceNameBuilder {
 | 
						|
    @objc public func buildIgnoringErrors() -> SignalIOSProtoDeviceName? {
 | 
						|
        return try! self.build()
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
#endif
 |