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
 |