session-ios/SessionMessagingKit/Protos/Generated/SNProto.swift

3335 lines
103 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 SNProtoError: Error {
case invalidProtobuf(description: String)
}
// MARK: - SNProtoEnvelope
@objc public class SNProtoEnvelope: NSObject {
// MARK: - SNProtoEnvelopeType
@objc public enum SNProtoEnvelopeType: Int32 {
case sessionMessage = 6
case closedGroupMessage = 7
}
private class func SNProtoEnvelopeTypeWrap(_ value: SessionProtos_Envelope.TypeEnum) -> SNProtoEnvelopeType {
switch value {
case .sessionMessage: return .sessionMessage
case .closedGroupMessage: return .closedGroupMessage
}
}
private class func SNProtoEnvelopeTypeUnwrap(_ value: SNProtoEnvelopeType) -> SessionProtos_Envelope.TypeEnum {
switch value {
case .sessionMessage: return .sessionMessage
case .closedGroupMessage: return .closedGroupMessage
}
}
// MARK: - SNProtoEnvelopeBuilder
@objc public class func builder(type: SNProtoEnvelopeType, timestamp: UInt64) -> SNProtoEnvelopeBuilder {
return SNProtoEnvelopeBuilder(type: type, timestamp: timestamp)
}
// asBuilder() constructs a builder that reflects the proto's contents.
@objc public func asBuilder() -> SNProtoEnvelopeBuilder {
let builder = SNProtoEnvelopeBuilder(type: type, timestamp: timestamp)
if let _value = source {
builder.setSource(_value)
}
if hasSourceDevice {
builder.setSourceDevice(sourceDevice)
}
if let _value = content {
builder.setContent(_value)
}
if hasServerTimestamp {
builder.setServerTimestamp(serverTimestamp)
}
return builder
}
@objc public class SNProtoEnvelopeBuilder: NSObject {
private var proto = SessionProtos_Envelope()
@objc fileprivate override init() {}
@objc fileprivate init(type: SNProtoEnvelopeType, timestamp: UInt64) {
super.init()
setType(type)
setTimestamp(timestamp)
}
@objc public func setType(_ valueParam: SNProtoEnvelopeType) {
proto.type = SNProtoEnvelopeTypeUnwrap(valueParam)
}
@objc public func setSource(_ valueParam: String) {
proto.source = valueParam
}
@objc public func setSourceDevice(_ valueParam: UInt32) {
proto.sourceDevice = valueParam
}
@objc public func setTimestamp(_ valueParam: UInt64) {
proto.timestamp = valueParam
}
@objc public func setContent(_ valueParam: Data) {
proto.content = valueParam
}
@objc public func setServerTimestamp(_ valueParam: UInt64) {
proto.serverTimestamp = valueParam
}
@objc public func build() throws -> SNProtoEnvelope {
return try SNProtoEnvelope.parseProto(proto)
}
@objc public func buildSerializedData() throws -> Data {
return try SNProtoEnvelope.parseProto(proto).serializedData()
}
}
fileprivate let proto: SessionProtos_Envelope
@objc public let type: SNProtoEnvelopeType
@objc public let timestamp: UInt64
@objc public var source: String? {
guard proto.hasSource else {
return nil
}
return proto.source
}
@objc public var hasSource: Bool {
return proto.hasSource
}
@objc public var sourceDevice: UInt32 {
return proto.sourceDevice
}
@objc public var hasSourceDevice: Bool {
return proto.hasSourceDevice
}
@objc public var content: Data? {
guard proto.hasContent else {
return nil
}
return proto.content
}
@objc public var hasContent: Bool {
return proto.hasContent
}
@objc public var serverTimestamp: UInt64 {
return proto.serverTimestamp
}
@objc public var hasServerTimestamp: Bool {
return proto.hasServerTimestamp
}
private init(proto: SessionProtos_Envelope,
type: SNProtoEnvelopeType,
timestamp: UInt64) {
self.proto = proto
self.type = type
self.timestamp = timestamp
}
@objc
public func serializedData() throws -> Data {
return try self.proto.serializedData()
}
@objc public class func parseData(_ serializedData: Data) throws -> SNProtoEnvelope {
let proto = try SessionProtos_Envelope(serializedData: serializedData)
return try parseProto(proto)
}
fileprivate class func parseProto(_ proto: SessionProtos_Envelope) throws -> SNProtoEnvelope {
guard proto.hasType else {
throw SNProtoError.invalidProtobuf(description: "\(logTag) missing required field: type")
}
let type = SNProtoEnvelopeTypeWrap(proto.type)
guard proto.hasTimestamp else {
throw SNProtoError.invalidProtobuf(description: "\(logTag) missing required field: timestamp")
}
let timestamp = proto.timestamp
// MARK: - Begin Validation Logic for SNProtoEnvelope -
// MARK: - End Validation Logic for SNProtoEnvelope -
let result = SNProtoEnvelope(proto: proto,
type: type,
timestamp: timestamp)
return result
}
@objc public override var debugDescription: String {
return "\(proto)"
}
}
#if DEBUG
extension SNProtoEnvelope {
@objc public func serializedDataIgnoringErrors() -> Data? {
return try! self.serializedData()
}
}
extension SNProtoEnvelope.SNProtoEnvelopeBuilder {
@objc public func buildIgnoringErrors() -> SNProtoEnvelope? {
return try! self.build()
}
}
#endif
// MARK: - SNProtoTypingMessage
@objc public class SNProtoTypingMessage: NSObject {
// MARK: - SNProtoTypingMessageAction
@objc public enum SNProtoTypingMessageAction: Int32 {
case started = 0
case stopped = 1
}
private class func SNProtoTypingMessageActionWrap(_ value: SessionProtos_TypingMessage.Action) -> SNProtoTypingMessageAction {
switch value {
case .started: return .started
case .stopped: return .stopped
}
}
private class func SNProtoTypingMessageActionUnwrap(_ value: SNProtoTypingMessageAction) -> SessionProtos_TypingMessage.Action {
switch value {
case .started: return .started
case .stopped: return .stopped
}
}
// MARK: - SNProtoTypingMessageBuilder
@objc public class func builder(timestamp: UInt64, action: SNProtoTypingMessageAction) -> SNProtoTypingMessageBuilder {
return SNProtoTypingMessageBuilder(timestamp: timestamp, action: action)
}
// asBuilder() constructs a builder that reflects the proto's contents.
@objc public func asBuilder() -> SNProtoTypingMessageBuilder {
let builder = SNProtoTypingMessageBuilder(timestamp: timestamp, action: action)
return builder
}
@objc public class SNProtoTypingMessageBuilder: NSObject {
private var proto = SessionProtos_TypingMessage()
@objc fileprivate override init() {}
@objc fileprivate init(timestamp: UInt64, action: SNProtoTypingMessageAction) {
super.init()
setTimestamp(timestamp)
setAction(action)
}
@objc public func setTimestamp(_ valueParam: UInt64) {
proto.timestamp = valueParam
}
@objc public func setAction(_ valueParam: SNProtoTypingMessageAction) {
proto.action = SNProtoTypingMessageActionUnwrap(valueParam)
}
@objc public func build() throws -> SNProtoTypingMessage {
return try SNProtoTypingMessage.parseProto(proto)
}
@objc public func buildSerializedData() throws -> Data {
return try SNProtoTypingMessage.parseProto(proto).serializedData()
}
}
fileprivate let proto: SessionProtos_TypingMessage
@objc public let timestamp: UInt64
@objc public let action: SNProtoTypingMessageAction
private init(proto: SessionProtos_TypingMessage,
timestamp: UInt64,
action: SNProtoTypingMessageAction) {
self.proto = proto
self.timestamp = timestamp
self.action = action
}
@objc
public func serializedData() throws -> Data {
return try self.proto.serializedData()
}
@objc public class func parseData(_ serializedData: Data) throws -> SNProtoTypingMessage {
let proto = try SessionProtos_TypingMessage(serializedData: serializedData)
return try parseProto(proto)
}
fileprivate class func parseProto(_ proto: SessionProtos_TypingMessage) throws -> SNProtoTypingMessage {
guard proto.hasTimestamp else {
throw SNProtoError.invalidProtobuf(description: "\(logTag) missing required field: timestamp")
}
let timestamp = proto.timestamp
guard proto.hasAction else {
throw SNProtoError.invalidProtobuf(description: "\(logTag) missing required field: action")
}
let action = SNProtoTypingMessageActionWrap(proto.action)
// MARK: - Begin Validation Logic for SNProtoTypingMessage -
// MARK: - End Validation Logic for SNProtoTypingMessage -
let result = SNProtoTypingMessage(proto: proto,
timestamp: timestamp,
action: action)
return result
}
@objc public override var debugDescription: String {
return "\(proto)"
}
}
#if DEBUG
extension SNProtoTypingMessage {
@objc public func serializedDataIgnoringErrors() -> Data? {
return try! self.serializedData()
}
}
extension SNProtoTypingMessage.SNProtoTypingMessageBuilder {
@objc public func buildIgnoringErrors() -> SNProtoTypingMessage? {
return try! self.build()
}
}
#endif
// MARK: - SNProtoUnsendRequest
@objc public class SNProtoUnsendRequest: NSObject {
// MARK: - SNProtoUnsendRequestBuilder
@objc public class func builder(timestamp: UInt64, author: String) -> SNProtoUnsendRequestBuilder {
return SNProtoUnsendRequestBuilder(timestamp: timestamp, author: author)
}
// asBuilder() constructs a builder that reflects the proto's contents.
@objc public func asBuilder() -> SNProtoUnsendRequestBuilder {
let builder = SNProtoUnsendRequestBuilder(timestamp: timestamp, author: author)
return builder
}
@objc public class SNProtoUnsendRequestBuilder: NSObject {
private var proto = SessionProtos_UnsendRequest()
@objc fileprivate override init() {}
@objc fileprivate init(timestamp: UInt64, author: String) {
super.init()
setTimestamp(timestamp)
setAuthor(author)
}
@objc public func setTimestamp(_ valueParam: UInt64) {
proto.timestamp = valueParam
}
@objc public func setAuthor(_ valueParam: String) {
proto.author = valueParam
}
@objc public func build() throws -> SNProtoUnsendRequest {
return try SNProtoUnsendRequest.parseProto(proto)
}
@objc public func buildSerializedData() throws -> Data {
return try SNProtoUnsendRequest.parseProto(proto).serializedData()
}
}
fileprivate let proto: SessionProtos_UnsendRequest
@objc public let timestamp: UInt64
@objc public let author: String
private init(proto: SessionProtos_UnsendRequest,
timestamp: UInt64,
author: String) {
self.proto = proto
self.timestamp = timestamp
self.author = author
}
@objc
public func serializedData() throws -> Data {
return try self.proto.serializedData()
}
@objc public class func parseData(_ serializedData: Data) throws -> SNProtoUnsendRequest {
let proto = try SessionProtos_UnsendRequest(serializedData: serializedData)
return try parseProto(proto)
}
fileprivate class func parseProto(_ proto: SessionProtos_UnsendRequest) throws -> SNProtoUnsendRequest {
guard proto.hasTimestamp else {
throw SNProtoError.invalidProtobuf(description: "\(logTag) missing required field: timestamp")
}
let timestamp = proto.timestamp
guard proto.hasAuthor else {
throw SNProtoError.invalidProtobuf(description: "\(logTag) missing required field: author")
}
let author = proto.author
// MARK: - Begin Validation Logic for SNProtoUnsendRequest -
// MARK: - End Validation Logic for SNProtoUnsendRequest -
let result = SNProtoUnsendRequest(proto: proto,
timestamp: timestamp,
author: author)
return result
}
@objc public override var debugDescription: String {
return "\(proto)"
}
}
#if DEBUG
extension SNProtoUnsendRequest {
@objc public func serializedDataIgnoringErrors() -> Data? {
return try! self.serializedData()
}
}
extension SNProtoUnsendRequest.SNProtoUnsendRequestBuilder {
@objc public func buildIgnoringErrors() -> SNProtoUnsendRequest? {
return try! self.build()
}
}
#endif
// MARK: - SNProtoContent
@objc public class SNProtoContent: NSObject {
// MARK: - SNProtoContentBuilder
@objc public class func builder() -> SNProtoContentBuilder {
return SNProtoContentBuilder()
}
// asBuilder() constructs a builder that reflects the proto's contents.
@objc public func asBuilder() -> SNProtoContentBuilder {
let builder = SNProtoContentBuilder()
if let _value = dataMessage {
builder.setDataMessage(_value)
}
if let _value = receiptMessage {
builder.setReceiptMessage(_value)
}
if let _value = typingMessage {
builder.setTypingMessage(_value)
}
if let _value = configurationMessage {
builder.setConfigurationMessage(_value)
}
if let _value = dataExtractionNotification {
builder.setDataExtractionNotification(_value)
}
if let _value = unsendRequest {
builder.setUnsendRequest(_value)
}
return builder
}
@objc public class SNProtoContentBuilder: NSObject {
private var proto = SessionProtos_Content()
@objc fileprivate override init() {}
@objc public func setDataMessage(_ valueParam: SNProtoDataMessage) {
proto.dataMessage = valueParam.proto
}
@objc public func setReceiptMessage(_ valueParam: SNProtoReceiptMessage) {
proto.receiptMessage = valueParam.proto
}
@objc public func setTypingMessage(_ valueParam: SNProtoTypingMessage) {
proto.typingMessage = valueParam.proto
}
@objc public func setConfigurationMessage(_ valueParam: SNProtoConfigurationMessage) {
proto.configurationMessage = valueParam.proto
}
@objc public func setDataExtractionNotification(_ valueParam: SNProtoDataExtractionNotification) {
proto.dataExtractionNotification = valueParam.proto
}
@objc public func setUnsendRequest(_ valueParam: SNProtoUnsendRequest) {
proto.unsendRequest = valueParam.proto
}
@objc public func build() throws -> SNProtoContent {
return try SNProtoContent.parseProto(proto)
}
@objc public func buildSerializedData() throws -> Data {
return try SNProtoContent.parseProto(proto).serializedData()
}
}
fileprivate let proto: SessionProtos_Content
@objc public let dataMessage: SNProtoDataMessage?
@objc public let receiptMessage: SNProtoReceiptMessage?
@objc public let typingMessage: SNProtoTypingMessage?
@objc public let configurationMessage: SNProtoConfigurationMessage?
@objc public let dataExtractionNotification: SNProtoDataExtractionNotification?
@objc public let unsendRequest: SNProtoUnsendRequest?
private init(proto: SessionProtos_Content,
dataMessage: SNProtoDataMessage?,
receiptMessage: SNProtoReceiptMessage?,
typingMessage: SNProtoTypingMessage?,
configurationMessage: SNProtoConfigurationMessage?,
dataExtractionNotification: SNProtoDataExtractionNotification?,
unsendRequest: SNProtoUnsendRequest?) {
self.proto = proto
self.dataMessage = dataMessage
self.receiptMessage = receiptMessage
self.typingMessage = typingMessage
self.configurationMessage = configurationMessage
self.dataExtractionNotification = dataExtractionNotification
self.unsendRequest = unsendRequest
}
@objc
public func serializedData() throws -> Data {
return try self.proto.serializedData()
}
@objc public class func parseData(_ serializedData: Data) throws -> SNProtoContent {
let proto = try SessionProtos_Content(serializedData: serializedData)
return try parseProto(proto)
}
fileprivate class func parseProto(_ proto: SessionProtos_Content) throws -> SNProtoContent {
var dataMessage: SNProtoDataMessage? = nil
if proto.hasDataMessage {
dataMessage = try SNProtoDataMessage.parseProto(proto.dataMessage)
}
var receiptMessage: SNProtoReceiptMessage? = nil
if proto.hasReceiptMessage {
receiptMessage = try SNProtoReceiptMessage.parseProto(proto.receiptMessage)
}
var typingMessage: SNProtoTypingMessage? = nil
if proto.hasTypingMessage {
typingMessage = try SNProtoTypingMessage.parseProto(proto.typingMessage)
}
var configurationMessage: SNProtoConfigurationMessage? = nil
if proto.hasConfigurationMessage {
configurationMessage = try SNProtoConfigurationMessage.parseProto(proto.configurationMessage)
}
var dataExtractionNotification: SNProtoDataExtractionNotification? = nil
if proto.hasDataExtractionNotification {
dataExtractionNotification = try SNProtoDataExtractionNotification.parseProto(proto.dataExtractionNotification)
}
var unsendRequest: SNProtoUnsendRequest? = nil
if proto.hasUnsendRequest {
unsendRequest = try SNProtoUnsendRequest.parseProto(proto.unsendRequest)
}
// MARK: - Begin Validation Logic for SNProtoContent -
// MARK: - End Validation Logic for SNProtoContent -
let result = SNProtoContent(proto: proto,
dataMessage: dataMessage,
receiptMessage: receiptMessage,
typingMessage: typingMessage,
configurationMessage: configurationMessage,
dataExtractionNotification: dataExtractionNotification,
unsendRequest: unsendRequest)
return result
}
@objc public override var debugDescription: String {
return "\(proto)"
}
}
#if DEBUG
extension SNProtoContent {
@objc public func serializedDataIgnoringErrors() -> Data? {
return try! self.serializedData()
}
}
extension SNProtoContent.SNProtoContentBuilder {
@objc public func buildIgnoringErrors() -> SNProtoContent? {
return try! self.build()
}
}
#endif
// MARK: - SNProtoKeyPair
@objc public class SNProtoKeyPair: NSObject {
// MARK: - SNProtoKeyPairBuilder
@objc public class func builder(publicKey: Data, privateKey: Data) -> SNProtoKeyPairBuilder {
return SNProtoKeyPairBuilder(publicKey: publicKey, privateKey: privateKey)
}
// asBuilder() constructs a builder that reflects the proto's contents.
@objc public func asBuilder() -> SNProtoKeyPairBuilder {
let builder = SNProtoKeyPairBuilder(publicKey: publicKey, privateKey: privateKey)
return builder
}
@objc public class SNProtoKeyPairBuilder: NSObject {
private var proto = SessionProtos_KeyPair()
@objc fileprivate override init() {}
@objc fileprivate init(publicKey: Data, privateKey: Data) {
super.init()
setPublicKey(publicKey)
setPrivateKey(privateKey)
}
@objc public func setPublicKey(_ valueParam: Data) {
proto.publicKey = valueParam
}
@objc public func setPrivateKey(_ valueParam: Data) {
proto.privateKey = valueParam
}
@objc public func build() throws -> SNProtoKeyPair {
return try SNProtoKeyPair.parseProto(proto)
}
@objc public func buildSerializedData() throws -> Data {
return try SNProtoKeyPair.parseProto(proto).serializedData()
}
}
fileprivate let proto: SessionProtos_KeyPair
@objc public let publicKey: Data
@objc public let privateKey: Data
private init(proto: SessionProtos_KeyPair,
publicKey: Data,
privateKey: Data) {
self.proto = proto
self.publicKey = publicKey
self.privateKey = privateKey
}
@objc
public func serializedData() throws -> Data {
return try self.proto.serializedData()
}
@objc public class func parseData(_ serializedData: Data) throws -> SNProtoKeyPair {
let proto = try SessionProtos_KeyPair(serializedData: serializedData)
return try parseProto(proto)
}
fileprivate class func parseProto(_ proto: SessionProtos_KeyPair) throws -> SNProtoKeyPair {
guard proto.hasPublicKey else {
throw SNProtoError.invalidProtobuf(description: "\(logTag) missing required field: publicKey")
}
let publicKey = proto.publicKey
guard proto.hasPrivateKey else {
throw SNProtoError.invalidProtobuf(description: "\(logTag) missing required field: privateKey")
}
let privateKey = proto.privateKey
// MARK: - Begin Validation Logic for SNProtoKeyPair -
// MARK: - End Validation Logic for SNProtoKeyPair -
let result = SNProtoKeyPair(proto: proto,
publicKey: publicKey,
privateKey: privateKey)
return result
}
@objc public override var debugDescription: String {
return "\(proto)"
}
}
#if DEBUG
extension SNProtoKeyPair {
@objc public func serializedDataIgnoringErrors() -> Data? {
return try! self.serializedData()
}
}
extension SNProtoKeyPair.SNProtoKeyPairBuilder {
@objc public func buildIgnoringErrors() -> SNProtoKeyPair? {
return try! self.build()
}
}
#endif
// MARK: - SNProtoDataExtractionNotification
@objc public class SNProtoDataExtractionNotification: NSObject {
// MARK: - SNProtoDataExtractionNotificationType
@objc public enum SNProtoDataExtractionNotificationType: Int32 {
case screenshot = 1
case mediaSaved = 2
}
private class func SNProtoDataExtractionNotificationTypeWrap(_ value: SessionProtos_DataExtractionNotification.TypeEnum) -> SNProtoDataExtractionNotificationType {
switch value {
case .screenshot: return .screenshot
case .mediaSaved: return .mediaSaved
}
}
private class func SNProtoDataExtractionNotificationTypeUnwrap(_ value: SNProtoDataExtractionNotificationType) -> SessionProtos_DataExtractionNotification.TypeEnum {
switch value {
case .screenshot: return .screenshot
case .mediaSaved: return .mediaSaved
}
}
// MARK: - SNProtoDataExtractionNotificationBuilder
@objc public class func builder(type: SNProtoDataExtractionNotificationType) -> SNProtoDataExtractionNotificationBuilder {
return SNProtoDataExtractionNotificationBuilder(type: type)
}
// asBuilder() constructs a builder that reflects the proto's contents.
@objc public func asBuilder() -> SNProtoDataExtractionNotificationBuilder {
let builder = SNProtoDataExtractionNotificationBuilder(type: type)
if hasTimestamp {
builder.setTimestamp(timestamp)
}
return builder
}
@objc public class SNProtoDataExtractionNotificationBuilder: NSObject {
private var proto = SessionProtos_DataExtractionNotification()
@objc fileprivate override init() {}
@objc fileprivate init(type: SNProtoDataExtractionNotificationType) {
super.init()
setType(type)
}
@objc public func setType(_ valueParam: SNProtoDataExtractionNotificationType) {
proto.type = SNProtoDataExtractionNotificationTypeUnwrap(valueParam)
}
@objc public func setTimestamp(_ valueParam: UInt64) {
proto.timestamp = valueParam
}
@objc public func build() throws -> SNProtoDataExtractionNotification {
return try SNProtoDataExtractionNotification.parseProto(proto)
}
@objc public func buildSerializedData() throws -> Data {
return try SNProtoDataExtractionNotification.parseProto(proto).serializedData()
}
}
fileprivate let proto: SessionProtos_DataExtractionNotification
@objc public let type: SNProtoDataExtractionNotificationType
@objc public var timestamp: UInt64 {
return proto.timestamp
}
@objc public var hasTimestamp: Bool {
return proto.hasTimestamp
}
private init(proto: SessionProtos_DataExtractionNotification,
type: SNProtoDataExtractionNotificationType) {
self.proto = proto
self.type = type
}
@objc
public func serializedData() throws -> Data {
return try self.proto.serializedData()
}
@objc public class func parseData(_ serializedData: Data) throws -> SNProtoDataExtractionNotification {
let proto = try SessionProtos_DataExtractionNotification(serializedData: serializedData)
return try parseProto(proto)
}
fileprivate class func parseProto(_ proto: SessionProtos_DataExtractionNotification) throws -> SNProtoDataExtractionNotification {
guard proto.hasType else {
throw SNProtoError.invalidProtobuf(description: "\(logTag) missing required field: type")
}
let type = SNProtoDataExtractionNotificationTypeWrap(proto.type)
// MARK: - Begin Validation Logic for SNProtoDataExtractionNotification -
// MARK: - End Validation Logic for SNProtoDataExtractionNotification -
let result = SNProtoDataExtractionNotification(proto: proto,
type: type)
return result
}
@objc public override var debugDescription: String {
return "\(proto)"
}
}
#if DEBUG
extension SNProtoDataExtractionNotification {
@objc public func serializedDataIgnoringErrors() -> Data? {
return try! self.serializedData()
}
}
extension SNProtoDataExtractionNotification.SNProtoDataExtractionNotificationBuilder {
@objc public func buildIgnoringErrors() -> SNProtoDataExtractionNotification? {
return try! self.build()
}
}
#endif
// MARK: - SNProtoDataMessageQuoteQuotedAttachment
@objc public class SNProtoDataMessageQuoteQuotedAttachment: NSObject {
// MARK: - SNProtoDataMessageQuoteQuotedAttachmentFlags
@objc public enum SNProtoDataMessageQuoteQuotedAttachmentFlags: Int32 {
case voiceMessage = 1
}
private class func SNProtoDataMessageQuoteQuotedAttachmentFlagsWrap(_ value: SessionProtos_DataMessage.Quote.QuotedAttachment.Flags) -> SNProtoDataMessageQuoteQuotedAttachmentFlags {
switch value {
case .voiceMessage: return .voiceMessage
}
}
private class func SNProtoDataMessageQuoteQuotedAttachmentFlagsUnwrap(_ value: SNProtoDataMessageQuoteQuotedAttachmentFlags) -> SessionProtos_DataMessage.Quote.QuotedAttachment.Flags {
switch value {
case .voiceMessage: return .voiceMessage
}
}
// MARK: - SNProtoDataMessageQuoteQuotedAttachmentBuilder
@objc public class func builder() -> SNProtoDataMessageQuoteQuotedAttachmentBuilder {
return SNProtoDataMessageQuoteQuotedAttachmentBuilder()
}
// asBuilder() constructs a builder that reflects the proto's contents.
@objc public func asBuilder() -> SNProtoDataMessageQuoteQuotedAttachmentBuilder {
let builder = SNProtoDataMessageQuoteQuotedAttachmentBuilder()
if let _value = contentType {
builder.setContentType(_value)
}
if let _value = fileName {
builder.setFileName(_value)
}
if let _value = thumbnail {
builder.setThumbnail(_value)
}
if hasFlags {
builder.setFlags(flags)
}
return builder
}
@objc public class SNProtoDataMessageQuoteQuotedAttachmentBuilder: NSObject {
private var proto = SessionProtos_DataMessage.Quote.QuotedAttachment()
@objc fileprivate override init() {}
@objc public func setContentType(_ valueParam: String) {
proto.contentType = valueParam
}
@objc public func setFileName(_ valueParam: String) {
proto.fileName = valueParam
}
@objc public func setThumbnail(_ valueParam: SNProtoAttachmentPointer) {
proto.thumbnail = valueParam.proto
}
@objc public func setFlags(_ valueParam: UInt32) {
proto.flags = valueParam
}
@objc public func build() throws -> SNProtoDataMessageQuoteQuotedAttachment {
return try SNProtoDataMessageQuoteQuotedAttachment.parseProto(proto)
}
@objc public func buildSerializedData() throws -> Data {
return try SNProtoDataMessageQuoteQuotedAttachment.parseProto(proto).serializedData()
}
}
fileprivate let proto: SessionProtos_DataMessage.Quote.QuotedAttachment
@objc public let thumbnail: SNProtoAttachmentPointer?
@objc public var contentType: String? {
guard proto.hasContentType else {
return nil
}
return proto.contentType
}
@objc public var hasContentType: Bool {
return proto.hasContentType
}
@objc public var fileName: String? {
guard proto.hasFileName else {
return nil
}
return proto.fileName
}
@objc public var hasFileName: Bool {
return proto.hasFileName
}
@objc public var flags: UInt32 {
return proto.flags
}
@objc public var hasFlags: Bool {
return proto.hasFlags
}
private init(proto: SessionProtos_DataMessage.Quote.QuotedAttachment,
thumbnail: SNProtoAttachmentPointer?) {
self.proto = proto
self.thumbnail = thumbnail
}
@objc
public func serializedData() throws -> Data {
return try self.proto.serializedData()
}
@objc public class func parseData(_ serializedData: Data) throws -> SNProtoDataMessageQuoteQuotedAttachment {
let proto = try SessionProtos_DataMessage.Quote.QuotedAttachment(serializedData: serializedData)
return try parseProto(proto)
}
fileprivate class func parseProto(_ proto: SessionProtos_DataMessage.Quote.QuotedAttachment) throws -> SNProtoDataMessageQuoteQuotedAttachment {
var thumbnail: SNProtoAttachmentPointer? = nil
if proto.hasThumbnail {
thumbnail = try SNProtoAttachmentPointer.parseProto(proto.thumbnail)
}
// MARK: - Begin Validation Logic for SNProtoDataMessageQuoteQuotedAttachment -
// MARK: - End Validation Logic for SNProtoDataMessageQuoteQuotedAttachment -
let result = SNProtoDataMessageQuoteQuotedAttachment(proto: proto,
thumbnail: thumbnail)
return result
}
@objc public override var debugDescription: String {
return "\(proto)"
}
}
#if DEBUG
extension SNProtoDataMessageQuoteQuotedAttachment {
@objc public func serializedDataIgnoringErrors() -> Data? {
return try! self.serializedData()
}
}
extension SNProtoDataMessageQuoteQuotedAttachment.SNProtoDataMessageQuoteQuotedAttachmentBuilder {
@objc public func buildIgnoringErrors() -> SNProtoDataMessageQuoteQuotedAttachment? {
return try! self.build()
}
}
#endif
// MARK: - SNProtoDataMessageQuote
@objc public class SNProtoDataMessageQuote: NSObject {
// MARK: - SNProtoDataMessageQuoteBuilder
@objc public class func builder(id: UInt64, author: String) -> SNProtoDataMessageQuoteBuilder {
return SNProtoDataMessageQuoteBuilder(id: id, author: author)
}
// asBuilder() constructs a builder that reflects the proto's contents.
@objc public func asBuilder() -> SNProtoDataMessageQuoteBuilder {
let builder = SNProtoDataMessageQuoteBuilder(id: id, author: author)
if let _value = text {
builder.setText(_value)
}
builder.setAttachments(attachments)
return builder
}
@objc public class SNProtoDataMessageQuoteBuilder: NSObject {
private var proto = SessionProtos_DataMessage.Quote()
@objc fileprivate override init() {}
@objc fileprivate init(id: UInt64, author: String) {
super.init()
setId(id)
setAuthor(author)
}
@objc public func setId(_ valueParam: UInt64) {
proto.id = valueParam
}
@objc public func setAuthor(_ valueParam: String) {
proto.author = valueParam
}
@objc public func setText(_ valueParam: String) {
proto.text = valueParam
}
@objc public func addAttachments(_ valueParam: SNProtoDataMessageQuoteQuotedAttachment) {
var items = proto.attachments
items.append(valueParam.proto)
proto.attachments = items
}
@objc public func setAttachments(_ wrappedItems: [SNProtoDataMessageQuoteQuotedAttachment]) {
proto.attachments = wrappedItems.map { $0.proto }
}
@objc public func build() throws -> SNProtoDataMessageQuote {
return try SNProtoDataMessageQuote.parseProto(proto)
}
@objc public func buildSerializedData() throws -> Data {
return try SNProtoDataMessageQuote.parseProto(proto).serializedData()
}
}
fileprivate let proto: SessionProtos_DataMessage.Quote
@objc public let id: UInt64
@objc public let author: String
@objc public let attachments: [SNProtoDataMessageQuoteQuotedAttachment]
@objc public var text: String? {
guard proto.hasText else {
return nil
}
return proto.text
}
@objc public var hasText: Bool {
return proto.hasText
}
private init(proto: SessionProtos_DataMessage.Quote,
id: UInt64,
author: String,
attachments: [SNProtoDataMessageQuoteQuotedAttachment]) {
self.proto = proto
self.id = id
self.author = author
self.attachments = attachments
}
@objc
public func serializedData() throws -> Data {
return try self.proto.serializedData()
}
@objc public class func parseData(_ serializedData: Data) throws -> SNProtoDataMessageQuote {
let proto = try SessionProtos_DataMessage.Quote(serializedData: serializedData)
return try parseProto(proto)
}
fileprivate class func parseProto(_ proto: SessionProtos_DataMessage.Quote) throws -> SNProtoDataMessageQuote {
guard proto.hasID else {
throw SNProtoError.invalidProtobuf(description: "\(logTag) missing required field: id")
}
let id = proto.id
guard proto.hasAuthor else {
throw SNProtoError.invalidProtobuf(description: "\(logTag) missing required field: author")
}
let author = proto.author
var attachments: [SNProtoDataMessageQuoteQuotedAttachment] = []
attachments = try proto.attachments.map { try SNProtoDataMessageQuoteQuotedAttachment.parseProto($0) }
// MARK: - Begin Validation Logic for SNProtoDataMessageQuote -
// MARK: - End Validation Logic for SNProtoDataMessageQuote -
let result = SNProtoDataMessageQuote(proto: proto,
id: id,
author: author,
attachments: attachments)
return result
}
@objc public override var debugDescription: String {
return "\(proto)"
}
}
#if DEBUG
extension SNProtoDataMessageQuote {
@objc public func serializedDataIgnoringErrors() -> Data? {
return try! self.serializedData()
}
}
extension SNProtoDataMessageQuote.SNProtoDataMessageQuoteBuilder {
@objc public func buildIgnoringErrors() -> SNProtoDataMessageQuote? {
return try! self.build()
}
}
#endif
// MARK: - SNProtoDataMessagePreview
@objc public class SNProtoDataMessagePreview: NSObject {
// MARK: - SNProtoDataMessagePreviewBuilder
@objc public class func builder(url: String) -> SNProtoDataMessagePreviewBuilder {
return SNProtoDataMessagePreviewBuilder(url: url)
}
// asBuilder() constructs a builder that reflects the proto's contents.
@objc public func asBuilder() -> SNProtoDataMessagePreviewBuilder {
let builder = SNProtoDataMessagePreviewBuilder(url: url)
if let _value = title {
builder.setTitle(_value)
}
if let _value = image {
builder.setImage(_value)
}
return builder
}
@objc public class SNProtoDataMessagePreviewBuilder: NSObject {
private var proto = SessionProtos_DataMessage.Preview()
@objc fileprivate override init() {}
@objc fileprivate init(url: String) {
super.init()
setUrl(url)
}
@objc public func setUrl(_ valueParam: String) {
proto.url = valueParam
}
@objc public func setTitle(_ valueParam: String) {
proto.title = valueParam
}
@objc public func setImage(_ valueParam: SNProtoAttachmentPointer) {
proto.image = valueParam.proto
}
@objc public func build() throws -> SNProtoDataMessagePreview {
return try SNProtoDataMessagePreview.parseProto(proto)
}
@objc public func buildSerializedData() throws -> Data {
return try SNProtoDataMessagePreview.parseProto(proto).serializedData()
}
}
fileprivate let proto: SessionProtos_DataMessage.Preview
@objc public let url: String
@objc public let image: SNProtoAttachmentPointer?
@objc public var title: String? {
guard proto.hasTitle else {
return nil
}
return proto.title
}
@objc public var hasTitle: Bool {
return proto.hasTitle
}
private init(proto: SessionProtos_DataMessage.Preview,
url: String,
image: SNProtoAttachmentPointer?) {
self.proto = proto
self.url = url
self.image = image
}
@objc
public func serializedData() throws -> Data {
return try self.proto.serializedData()
}
@objc public class func parseData(_ serializedData: Data) throws -> SNProtoDataMessagePreview {
let proto = try SessionProtos_DataMessage.Preview(serializedData: serializedData)
return try parseProto(proto)
}
fileprivate class func parseProto(_ proto: SessionProtos_DataMessage.Preview) throws -> SNProtoDataMessagePreview {
guard proto.hasURL else {
throw SNProtoError.invalidProtobuf(description: "\(logTag) missing required field: url")
}
let url = proto.url
var image: SNProtoAttachmentPointer? = nil
if proto.hasImage {
image = try SNProtoAttachmentPointer.parseProto(proto.image)
}
// MARK: - Begin Validation Logic for SNProtoDataMessagePreview -
// MARK: - End Validation Logic for SNProtoDataMessagePreview -
let result = SNProtoDataMessagePreview(proto: proto,
url: url,
image: image)
return result
}
@objc public override var debugDescription: String {
return "\(proto)"
}
}
#if DEBUG
extension SNProtoDataMessagePreview {
@objc public func serializedDataIgnoringErrors() -> Data? {
return try! self.serializedData()
}
}
extension SNProtoDataMessagePreview.SNProtoDataMessagePreviewBuilder {
@objc public func buildIgnoringErrors() -> SNProtoDataMessagePreview? {
return try! self.build()
}
}
#endif
// MARK: - SNProtoDataMessageLokiProfile
@objc public class SNProtoDataMessageLokiProfile: NSObject {
// MARK: - SNProtoDataMessageLokiProfileBuilder
@objc public class func builder() -> SNProtoDataMessageLokiProfileBuilder {
return SNProtoDataMessageLokiProfileBuilder()
}
// asBuilder() constructs a builder that reflects the proto's contents.
@objc public func asBuilder() -> SNProtoDataMessageLokiProfileBuilder {
let builder = SNProtoDataMessageLokiProfileBuilder()
if let _value = displayName {
builder.setDisplayName(_value)
}
if let _value = profilePicture {
builder.setProfilePicture(_value)
}
return builder
}
@objc public class SNProtoDataMessageLokiProfileBuilder: NSObject {
private var proto = SessionProtos_DataMessage.LokiProfile()
@objc fileprivate override init() {}
@objc public func setDisplayName(_ valueParam: String) {
proto.displayName = valueParam
}
@objc public func setProfilePicture(_ valueParam: String) {
proto.profilePicture = valueParam
}
@objc public func build() throws -> SNProtoDataMessageLokiProfile {
return try SNProtoDataMessageLokiProfile.parseProto(proto)
}
@objc public func buildSerializedData() throws -> Data {
return try SNProtoDataMessageLokiProfile.parseProto(proto).serializedData()
}
}
fileprivate let proto: SessionProtos_DataMessage.LokiProfile
@objc public var displayName: String? {
guard proto.hasDisplayName else {
return nil
}
return proto.displayName
}
@objc public var hasDisplayName: Bool {
return proto.hasDisplayName
}
@objc public var profilePicture: String? {
guard proto.hasProfilePicture else {
return nil
}
return proto.profilePicture
}
@objc public var hasProfilePicture: Bool {
return proto.hasProfilePicture
}
private init(proto: SessionProtos_DataMessage.LokiProfile) {
self.proto = proto
}
@objc
public func serializedData() throws -> Data {
return try self.proto.serializedData()
}
@objc public class func parseData(_ serializedData: Data) throws -> SNProtoDataMessageLokiProfile {
let proto = try SessionProtos_DataMessage.LokiProfile(serializedData: serializedData)
return try parseProto(proto)
}
fileprivate class func parseProto(_ proto: SessionProtos_DataMessage.LokiProfile) throws -> SNProtoDataMessageLokiProfile {
// MARK: - Begin Validation Logic for SNProtoDataMessageLokiProfile -
// MARK: - End Validation Logic for SNProtoDataMessageLokiProfile -
let result = SNProtoDataMessageLokiProfile(proto: proto)
return result
}
@objc public override var debugDescription: String {
return "\(proto)"
}
}
#if DEBUG
extension SNProtoDataMessageLokiProfile {
@objc public func serializedDataIgnoringErrors() -> Data? {
return try! self.serializedData()
}
}
extension SNProtoDataMessageLokiProfile.SNProtoDataMessageLokiProfileBuilder {
@objc public func buildIgnoringErrors() -> SNProtoDataMessageLokiProfile? {
return try! self.build()
}
}
#endif
// MARK: - SNProtoDataMessageOpenGroupInvitation
@objc public class SNProtoDataMessageOpenGroupInvitation: NSObject {
// MARK: - SNProtoDataMessageOpenGroupInvitationBuilder
@objc public class func builder(url: String, name: String) -> SNProtoDataMessageOpenGroupInvitationBuilder {
return SNProtoDataMessageOpenGroupInvitationBuilder(url: url, name: name)
}
// asBuilder() constructs a builder that reflects the proto's contents.
@objc public func asBuilder() -> SNProtoDataMessageOpenGroupInvitationBuilder {
let builder = SNProtoDataMessageOpenGroupInvitationBuilder(url: url, name: name)
return builder
}
@objc public class SNProtoDataMessageOpenGroupInvitationBuilder: NSObject {
private var proto = SessionProtos_DataMessage.OpenGroupInvitation()
@objc fileprivate override init() {}
@objc fileprivate init(url: String, name: String) {
super.init()
setUrl(url)
setName(name)
}
@objc public func setUrl(_ valueParam: String) {
proto.url = valueParam
}
@objc public func setName(_ valueParam: String) {
proto.name = valueParam
}
@objc public func build() throws -> SNProtoDataMessageOpenGroupInvitation {
return try SNProtoDataMessageOpenGroupInvitation.parseProto(proto)
}
@objc public func buildSerializedData() throws -> Data {
return try SNProtoDataMessageOpenGroupInvitation.parseProto(proto).serializedData()
}
}
fileprivate let proto: SessionProtos_DataMessage.OpenGroupInvitation
@objc public let url: String
@objc public let name: String
private init(proto: SessionProtos_DataMessage.OpenGroupInvitation,
url: String,
name: String) {
self.proto = proto
self.url = url
self.name = name
}
@objc
public func serializedData() throws -> Data {
return try self.proto.serializedData()
}
@objc public class func parseData(_ serializedData: Data) throws -> SNProtoDataMessageOpenGroupInvitation {
let proto = try SessionProtos_DataMessage.OpenGroupInvitation(serializedData: serializedData)
return try parseProto(proto)
}
fileprivate class func parseProto(_ proto: SessionProtos_DataMessage.OpenGroupInvitation) throws -> SNProtoDataMessageOpenGroupInvitation {
guard proto.hasURL else {
throw SNProtoError.invalidProtobuf(description: "\(logTag) missing required field: url")
}
let url = proto.url
guard proto.hasName else {
throw SNProtoError.invalidProtobuf(description: "\(logTag) missing required field: name")
}
let name = proto.name
// MARK: - Begin Validation Logic for SNProtoDataMessageOpenGroupInvitation -
// MARK: - End Validation Logic for SNProtoDataMessageOpenGroupInvitation -
let result = SNProtoDataMessageOpenGroupInvitation(proto: proto,
url: url,
name: name)
return result
}
@objc public override var debugDescription: String {
return "\(proto)"
}
}
#if DEBUG
extension SNProtoDataMessageOpenGroupInvitation {
@objc public func serializedDataIgnoringErrors() -> Data? {
return try! self.serializedData()
}
}
extension SNProtoDataMessageOpenGroupInvitation.SNProtoDataMessageOpenGroupInvitationBuilder {
@objc public func buildIgnoringErrors() -> SNProtoDataMessageOpenGroupInvitation? {
return try! self.build()
}
}
#endif
// MARK: - SNProtoDataMessageClosedGroupControlMessageKeyPairWrapper
@objc public class SNProtoDataMessageClosedGroupControlMessageKeyPairWrapper: NSObject {
// MARK: - SNProtoDataMessageClosedGroupControlMessageKeyPairWrapperBuilder
@objc public class func builder(publicKey: Data, encryptedKeyPair: Data) -> SNProtoDataMessageClosedGroupControlMessageKeyPairWrapperBuilder {
return SNProtoDataMessageClosedGroupControlMessageKeyPairWrapperBuilder(publicKey: publicKey, encryptedKeyPair: encryptedKeyPair)
}
// asBuilder() constructs a builder that reflects the proto's contents.
@objc public func asBuilder() -> SNProtoDataMessageClosedGroupControlMessageKeyPairWrapperBuilder {
let builder = SNProtoDataMessageClosedGroupControlMessageKeyPairWrapperBuilder(publicKey: publicKey, encryptedKeyPair: encryptedKeyPair)
return builder
}
@objc public class SNProtoDataMessageClosedGroupControlMessageKeyPairWrapperBuilder: NSObject {
private var proto = SessionProtos_DataMessage.ClosedGroupControlMessage.KeyPairWrapper()
@objc fileprivate override init() {}
@objc fileprivate init(publicKey: Data, encryptedKeyPair: Data) {
super.init()
setPublicKey(publicKey)
setEncryptedKeyPair(encryptedKeyPair)
}
@objc public func setPublicKey(_ valueParam: Data) {
proto.publicKey = valueParam
}
@objc public func setEncryptedKeyPair(_ valueParam: Data) {
proto.encryptedKeyPair = valueParam
}
@objc public func build() throws -> SNProtoDataMessageClosedGroupControlMessageKeyPairWrapper {
return try SNProtoDataMessageClosedGroupControlMessageKeyPairWrapper.parseProto(proto)
}
@objc public func buildSerializedData() throws -> Data {
return try SNProtoDataMessageClosedGroupControlMessageKeyPairWrapper.parseProto(proto).serializedData()
}
}
fileprivate let proto: SessionProtos_DataMessage.ClosedGroupControlMessage.KeyPairWrapper
@objc public let publicKey: Data
@objc public let encryptedKeyPair: Data
private init(proto: SessionProtos_DataMessage.ClosedGroupControlMessage.KeyPairWrapper,
publicKey: Data,
encryptedKeyPair: Data) {
self.proto = proto
self.publicKey = publicKey
self.encryptedKeyPair = encryptedKeyPair
}
@objc
public func serializedData() throws -> Data {
return try self.proto.serializedData()
}
@objc public class func parseData(_ serializedData: Data) throws -> SNProtoDataMessageClosedGroupControlMessageKeyPairWrapper {
let proto = try SessionProtos_DataMessage.ClosedGroupControlMessage.KeyPairWrapper(serializedData: serializedData)
return try parseProto(proto)
}
fileprivate class func parseProto(_ proto: SessionProtos_DataMessage.ClosedGroupControlMessage.KeyPairWrapper) throws -> SNProtoDataMessageClosedGroupControlMessageKeyPairWrapper {
guard proto.hasPublicKey else {
throw SNProtoError.invalidProtobuf(description: "\(logTag) missing required field: publicKey")
}
let publicKey = proto.publicKey
guard proto.hasEncryptedKeyPair else {
throw SNProtoError.invalidProtobuf(description: "\(logTag) missing required field: encryptedKeyPair")
}
let encryptedKeyPair = proto.encryptedKeyPair
// MARK: - Begin Validation Logic for SNProtoDataMessageClosedGroupControlMessageKeyPairWrapper -
// MARK: - End Validation Logic for SNProtoDataMessageClosedGroupControlMessageKeyPairWrapper -
let result = SNProtoDataMessageClosedGroupControlMessageKeyPairWrapper(proto: proto,
publicKey: publicKey,
encryptedKeyPair: encryptedKeyPair)
return result
}
@objc public override var debugDescription: String {
return "\(proto)"
}
}
#if DEBUG
extension SNProtoDataMessageClosedGroupControlMessageKeyPairWrapper {
@objc public func serializedDataIgnoringErrors() -> Data? {
return try! self.serializedData()
}
}
extension SNProtoDataMessageClosedGroupControlMessageKeyPairWrapper.SNProtoDataMessageClosedGroupControlMessageKeyPairWrapperBuilder {
@objc public func buildIgnoringErrors() -> SNProtoDataMessageClosedGroupControlMessageKeyPairWrapper? {
return try! self.build()
}
}
#endif
// MARK: - SNProtoDataMessageClosedGroupControlMessage
@objc public class SNProtoDataMessageClosedGroupControlMessage: NSObject {
// MARK: - SNProtoDataMessageClosedGroupControlMessageType
@objc public enum SNProtoDataMessageClosedGroupControlMessageType: Int32 {
case new = 1
case encryptionKeyPair = 3
case nameChange = 4
case membersAdded = 5
case membersRemoved = 6
case memberLeft = 7
case encryptionKeyPairRequest = 8
}
private class func SNProtoDataMessageClosedGroupControlMessageTypeWrap(_ value: SessionProtos_DataMessage.ClosedGroupControlMessage.TypeEnum) -> SNProtoDataMessageClosedGroupControlMessageType {
switch value {
case .new: return .new
case .encryptionKeyPair: return .encryptionKeyPair
case .nameChange: return .nameChange
case .membersAdded: return .membersAdded
case .membersRemoved: return .membersRemoved
case .memberLeft: return .memberLeft
case .encryptionKeyPairRequest: return .encryptionKeyPairRequest
}
}
private class func SNProtoDataMessageClosedGroupControlMessageTypeUnwrap(_ value: SNProtoDataMessageClosedGroupControlMessageType) -> SessionProtos_DataMessage.ClosedGroupControlMessage.TypeEnum {
switch value {
case .new: return .new
case .encryptionKeyPair: return .encryptionKeyPair
case .nameChange: return .nameChange
case .membersAdded: return .membersAdded
case .membersRemoved: return .membersRemoved
case .memberLeft: return .memberLeft
case .encryptionKeyPairRequest: return .encryptionKeyPairRequest
}
}
// MARK: - SNProtoDataMessageClosedGroupControlMessageBuilder
@objc public class func builder(type: SNProtoDataMessageClosedGroupControlMessageType) -> SNProtoDataMessageClosedGroupControlMessageBuilder {
return SNProtoDataMessageClosedGroupControlMessageBuilder(type: type)
}
// asBuilder() constructs a builder that reflects the proto's contents.
@objc public func asBuilder() -> SNProtoDataMessageClosedGroupControlMessageBuilder {
let builder = SNProtoDataMessageClosedGroupControlMessageBuilder(type: type)
if let _value = publicKey {
builder.setPublicKey(_value)
}
if let _value = name {
builder.setName(_value)
}
if let _value = encryptionKeyPair {
builder.setEncryptionKeyPair(_value)
}
builder.setMembers(members)
builder.setAdmins(admins)
builder.setWrappers(wrappers)
if hasExpirationTimer {
builder.setExpirationTimer(expirationTimer)
}
return builder
}
@objc public class SNProtoDataMessageClosedGroupControlMessageBuilder: NSObject {
private var proto = SessionProtos_DataMessage.ClosedGroupControlMessage()
@objc fileprivate override init() {}
@objc fileprivate init(type: SNProtoDataMessageClosedGroupControlMessageType) {
super.init()
setType(type)
}
@objc public func setType(_ valueParam: SNProtoDataMessageClosedGroupControlMessageType) {
proto.type = SNProtoDataMessageClosedGroupControlMessageTypeUnwrap(valueParam)
}
@objc public func setPublicKey(_ valueParam: Data) {
proto.publicKey = valueParam
}
@objc public func setName(_ valueParam: String) {
proto.name = valueParam
}
@objc public func setEncryptionKeyPair(_ valueParam: SNProtoKeyPair) {
proto.encryptionKeyPair = valueParam.proto
}
@objc public func addMembers(_ valueParam: Data) {
var items = proto.members
items.append(valueParam)
proto.members = items
}
@objc public func setMembers(_ wrappedItems: [Data]) {
proto.members = wrappedItems
}
@objc public func addAdmins(_ valueParam: Data) {
var items = proto.admins
items.append(valueParam)
proto.admins = items
}
@objc public func setAdmins(_ wrappedItems: [Data]) {
proto.admins = wrappedItems
}
@objc public func addWrappers(_ valueParam: SNProtoDataMessageClosedGroupControlMessageKeyPairWrapper) {
var items = proto.wrappers
items.append(valueParam.proto)
proto.wrappers = items
}
@objc public func setWrappers(_ wrappedItems: [SNProtoDataMessageClosedGroupControlMessageKeyPairWrapper]) {
proto.wrappers = wrappedItems.map { $0.proto }
}
@objc public func setExpirationTimer(_ valueParam: UInt32) {
proto.expirationTimer = valueParam
}
@objc public func build() throws -> SNProtoDataMessageClosedGroupControlMessage {
return try SNProtoDataMessageClosedGroupControlMessage.parseProto(proto)
}
@objc public func buildSerializedData() throws -> Data {
return try SNProtoDataMessageClosedGroupControlMessage.parseProto(proto).serializedData()
}
}
fileprivate let proto: SessionProtos_DataMessage.ClosedGroupControlMessage
@objc public let type: SNProtoDataMessageClosedGroupControlMessageType
@objc public let encryptionKeyPair: SNProtoKeyPair?
@objc public let wrappers: [SNProtoDataMessageClosedGroupControlMessageKeyPairWrapper]
@objc public var publicKey: Data? {
guard proto.hasPublicKey else {
return nil
}
return proto.publicKey
}
@objc public var hasPublicKey: Bool {
return proto.hasPublicKey
}
@objc public var name: String? {
guard proto.hasName else {
return nil
}
return proto.name
}
@objc public var hasName: Bool {
return proto.hasName
}
@objc public var members: [Data] {
return proto.members
}
@objc public var admins: [Data] {
return proto.admins
}
@objc public var expirationTimer: UInt32 {
return proto.expirationTimer
}
@objc public var hasExpirationTimer: Bool {
return proto.hasExpirationTimer
}
private init(proto: SessionProtos_DataMessage.ClosedGroupControlMessage,
type: SNProtoDataMessageClosedGroupControlMessageType,
encryptionKeyPair: SNProtoKeyPair?,
wrappers: [SNProtoDataMessageClosedGroupControlMessageKeyPairWrapper]) {
self.proto = proto
self.type = type
self.encryptionKeyPair = encryptionKeyPair
self.wrappers = wrappers
}
@objc
public func serializedData() throws -> Data {
return try self.proto.serializedData()
}
@objc public class func parseData(_ serializedData: Data) throws -> SNProtoDataMessageClosedGroupControlMessage {
let proto = try SessionProtos_DataMessage.ClosedGroupControlMessage(serializedData: serializedData)
return try parseProto(proto)
}
fileprivate class func parseProto(_ proto: SessionProtos_DataMessage.ClosedGroupControlMessage) throws -> SNProtoDataMessageClosedGroupControlMessage {
guard proto.hasType else {
throw SNProtoError.invalidProtobuf(description: "\(logTag) missing required field: type")
}
let type = SNProtoDataMessageClosedGroupControlMessageTypeWrap(proto.type)
var encryptionKeyPair: SNProtoKeyPair? = nil
if proto.hasEncryptionKeyPair {
encryptionKeyPair = try SNProtoKeyPair.parseProto(proto.encryptionKeyPair)
}
var wrappers: [SNProtoDataMessageClosedGroupControlMessageKeyPairWrapper] = []
wrappers = try proto.wrappers.map { try SNProtoDataMessageClosedGroupControlMessageKeyPairWrapper.parseProto($0) }
// MARK: - Begin Validation Logic for SNProtoDataMessageClosedGroupControlMessage -
// MARK: - End Validation Logic for SNProtoDataMessageClosedGroupControlMessage -
let result = SNProtoDataMessageClosedGroupControlMessage(proto: proto,
type: type,
encryptionKeyPair: encryptionKeyPair,
wrappers: wrappers)
return result
}
@objc public override var debugDescription: String {
return "\(proto)"
}
}
#if DEBUG
extension SNProtoDataMessageClosedGroupControlMessage {
@objc public func serializedDataIgnoringErrors() -> Data? {
return try! self.serializedData()
}
}
extension SNProtoDataMessageClosedGroupControlMessage.SNProtoDataMessageClosedGroupControlMessageBuilder {
@objc public func buildIgnoringErrors() -> SNProtoDataMessageClosedGroupControlMessage? {
return try! self.build()
}
}
#endif
// MARK: - SNProtoDataMessage
@objc public class SNProtoDataMessage: NSObject {
// MARK: - SNProtoDataMessageFlags
@objc public enum SNProtoDataMessageFlags: Int32 {
case expirationTimerUpdate = 2
}
private class func SNProtoDataMessageFlagsWrap(_ value: SessionProtos_DataMessage.Flags) -> SNProtoDataMessageFlags {
switch value {
case .expirationTimerUpdate: return .expirationTimerUpdate
}
}
private class func SNProtoDataMessageFlagsUnwrap(_ value: SNProtoDataMessageFlags) -> SessionProtos_DataMessage.Flags {
switch value {
case .expirationTimerUpdate: return .expirationTimerUpdate
}
}
// MARK: - SNProtoDataMessageBuilder
@objc public class func builder() -> SNProtoDataMessageBuilder {
return SNProtoDataMessageBuilder()
}
// asBuilder() constructs a builder that reflects the proto's contents.
@objc public func asBuilder() -> SNProtoDataMessageBuilder {
let builder = SNProtoDataMessageBuilder()
if let _value = body {
builder.setBody(_value)
}
builder.setAttachments(attachments)
if let _value = group {
builder.setGroup(_value)
}
if hasFlags {
builder.setFlags(flags)
}
if hasExpireTimer {
builder.setExpireTimer(expireTimer)
}
if let _value = profileKey {
builder.setProfileKey(_value)
}
if hasTimestamp {
builder.setTimestamp(timestamp)
}
if let _value = quote {
builder.setQuote(_value)
}
builder.setPreview(preview)
if let _value = profile {
builder.setProfile(_value)
}
if let _value = openGroupInvitation {
builder.setOpenGroupInvitation(_value)
}
if let _value = closedGroupControlMessage {
builder.setClosedGroupControlMessage(_value)
}
if let _value = syncTarget {
builder.setSyncTarget(_value)
}
return builder
}
@objc public class SNProtoDataMessageBuilder: NSObject {
private var proto = SessionProtos_DataMessage()
@objc fileprivate override init() {}
@objc public func setBody(_ valueParam: String) {
proto.body = valueParam
}
@objc public func addAttachments(_ valueParam: SNProtoAttachmentPointer) {
var items = proto.attachments
items.append(valueParam.proto)
proto.attachments = items
}
@objc public func setAttachments(_ wrappedItems: [SNProtoAttachmentPointer]) {
proto.attachments = wrappedItems.map { $0.proto }
}
@objc public func setGroup(_ valueParam: SNProtoGroupContext) {
proto.group = valueParam.proto
}
@objc public func setFlags(_ valueParam: UInt32) {
proto.flags = valueParam
}
@objc public func setExpireTimer(_ valueParam: UInt32) {
proto.expireTimer = valueParam
}
@objc public func setProfileKey(_ valueParam: Data) {
proto.profileKey = valueParam
}
@objc public func setTimestamp(_ valueParam: UInt64) {
proto.timestamp = valueParam
}
@objc public func setQuote(_ valueParam: SNProtoDataMessageQuote) {
proto.quote = valueParam.proto
}
@objc public func addPreview(_ valueParam: SNProtoDataMessagePreview) {
var items = proto.preview
items.append(valueParam.proto)
proto.preview = items
}
@objc public func setPreview(_ wrappedItems: [SNProtoDataMessagePreview]) {
proto.preview = wrappedItems.map { $0.proto }
}
@objc public func setProfile(_ valueParam: SNProtoDataMessageLokiProfile) {
proto.profile = valueParam.proto
}
@objc public func setOpenGroupInvitation(_ valueParam: SNProtoDataMessageOpenGroupInvitation) {
proto.openGroupInvitation = valueParam.proto
}
@objc public func setClosedGroupControlMessage(_ valueParam: SNProtoDataMessageClosedGroupControlMessage) {
proto.closedGroupControlMessage = valueParam.proto
}
@objc public func setSyncTarget(_ valueParam: String) {
proto.syncTarget = valueParam
}
@objc public func build() throws -> SNProtoDataMessage {
return try SNProtoDataMessage.parseProto(proto)
}
@objc public func buildSerializedData() throws -> Data {
return try SNProtoDataMessage.parseProto(proto).serializedData()
}
}
fileprivate let proto: SessionProtos_DataMessage
@objc public let attachments: [SNProtoAttachmentPointer]
@objc public let group: SNProtoGroupContext?
@objc public let quote: SNProtoDataMessageQuote?
@objc public let preview: [SNProtoDataMessagePreview]
@objc public let profile: SNProtoDataMessageLokiProfile?
@objc public let openGroupInvitation: SNProtoDataMessageOpenGroupInvitation?
@objc public let closedGroupControlMessage: SNProtoDataMessageClosedGroupControlMessage?
@objc public var body: String? {
guard proto.hasBody else {
return nil
}
return proto.body
}
@objc public var hasBody: Bool {
return proto.hasBody
}
@objc public var flags: UInt32 {
return proto.flags
}
@objc public var hasFlags: Bool {
return proto.hasFlags
}
@objc public var expireTimer: UInt32 {
return proto.expireTimer
}
@objc public var hasExpireTimer: Bool {
return proto.hasExpireTimer
}
@objc public var profileKey: Data? {
guard proto.hasProfileKey else {
return nil
}
return proto.profileKey
}
@objc public var hasProfileKey: Bool {
return proto.hasProfileKey
}
@objc public var timestamp: UInt64 {
return proto.timestamp
}
@objc public var hasTimestamp: Bool {
return proto.hasTimestamp
}
@objc public var syncTarget: String? {
guard proto.hasSyncTarget else {
return nil
}
return proto.syncTarget
}
@objc public var hasSyncTarget: Bool {
return proto.hasSyncTarget
}
private init(proto: SessionProtos_DataMessage,
attachments: [SNProtoAttachmentPointer],
group: SNProtoGroupContext?,
quote: SNProtoDataMessageQuote?,
preview: [SNProtoDataMessagePreview],
profile: SNProtoDataMessageLokiProfile?,
openGroupInvitation: SNProtoDataMessageOpenGroupInvitation?,
closedGroupControlMessage: SNProtoDataMessageClosedGroupControlMessage?) {
self.proto = proto
self.attachments = attachments
self.group = group
self.quote = quote
self.preview = preview
self.profile = profile
self.openGroupInvitation = openGroupInvitation
self.closedGroupControlMessage = closedGroupControlMessage
}
@objc
public func serializedData() throws -> Data {
return try self.proto.serializedData()
}
@objc public class func parseData(_ serializedData: Data) throws -> SNProtoDataMessage {
let proto = try SessionProtos_DataMessage(serializedData: serializedData)
return try parseProto(proto)
}
fileprivate class func parseProto(_ proto: SessionProtos_DataMessage) throws -> SNProtoDataMessage {
var attachments: [SNProtoAttachmentPointer] = []
attachments = try proto.attachments.map { try SNProtoAttachmentPointer.parseProto($0) }
var group: SNProtoGroupContext? = nil
if proto.hasGroup {
group = try SNProtoGroupContext.parseProto(proto.group)
}
var quote: SNProtoDataMessageQuote? = nil
if proto.hasQuote {
quote = try SNProtoDataMessageQuote.parseProto(proto.quote)
}
var preview: [SNProtoDataMessagePreview] = []
preview = try proto.preview.map { try SNProtoDataMessagePreview.parseProto($0) }
var profile: SNProtoDataMessageLokiProfile? = nil
if proto.hasProfile {
profile = try SNProtoDataMessageLokiProfile.parseProto(proto.profile)
}
var openGroupInvitation: SNProtoDataMessageOpenGroupInvitation? = nil
if proto.hasOpenGroupInvitation {
openGroupInvitation = try SNProtoDataMessageOpenGroupInvitation.parseProto(proto.openGroupInvitation)
}
var closedGroupControlMessage: SNProtoDataMessageClosedGroupControlMessage? = nil
if proto.hasClosedGroupControlMessage {
closedGroupControlMessage = try SNProtoDataMessageClosedGroupControlMessage.parseProto(proto.closedGroupControlMessage)
}
// MARK: - Begin Validation Logic for SNProtoDataMessage -
// MARK: - End Validation Logic for SNProtoDataMessage -
let result = SNProtoDataMessage(proto: proto,
attachments: attachments,
group: group,
quote: quote,
preview: preview,
profile: profile,
openGroupInvitation: openGroupInvitation,
closedGroupControlMessage: closedGroupControlMessage)
return result
}
@objc public override var debugDescription: String {
return "\(proto)"
}
}
#if DEBUG
extension SNProtoDataMessage {
@objc public func serializedDataIgnoringErrors() -> Data? {
return try! self.serializedData()
}
}
extension SNProtoDataMessage.SNProtoDataMessageBuilder {
@objc public func buildIgnoringErrors() -> SNProtoDataMessage? {
return try! self.build()
}
}
#endif
// MARK: - SNProtoConfigurationMessageClosedGroup
@objc public class SNProtoConfigurationMessageClosedGroup: NSObject {
// MARK: - SNProtoConfigurationMessageClosedGroupBuilder
@objc public class func builder() -> SNProtoConfigurationMessageClosedGroupBuilder {
return SNProtoConfigurationMessageClosedGroupBuilder()
}
// asBuilder() constructs a builder that reflects the proto's contents.
@objc public func asBuilder() -> SNProtoConfigurationMessageClosedGroupBuilder {
let builder = SNProtoConfigurationMessageClosedGroupBuilder()
if let _value = publicKey {
builder.setPublicKey(_value)
}
if let _value = name {
builder.setName(_value)
}
if let _value = encryptionKeyPair {
builder.setEncryptionKeyPair(_value)
}
builder.setMembers(members)
builder.setAdmins(admins)
if hasExpirationTimer {
builder.setExpirationTimer(expirationTimer)
}
return builder
}
@objc public class SNProtoConfigurationMessageClosedGroupBuilder: NSObject {
private var proto = SessionProtos_ConfigurationMessage.ClosedGroup()
@objc fileprivate override init() {}
@objc public func setPublicKey(_ valueParam: Data) {
proto.publicKey = valueParam
}
@objc public func setName(_ valueParam: String) {
proto.name = valueParam
}
@objc public func setEncryptionKeyPair(_ valueParam: SNProtoKeyPair) {
proto.encryptionKeyPair = valueParam.proto
}
@objc public func addMembers(_ valueParam: Data) {
var items = proto.members
items.append(valueParam)
proto.members = items
}
@objc public func setMembers(_ wrappedItems: [Data]) {
proto.members = wrappedItems
}
@objc public func addAdmins(_ valueParam: Data) {
var items = proto.admins
items.append(valueParam)
proto.admins = items
}
@objc public func setAdmins(_ wrappedItems: [Data]) {
proto.admins = wrappedItems
}
@objc public func setExpirationTimer(_ valueParam: UInt32) {
proto.expirationTimer = valueParam
}
@objc public func build() throws -> SNProtoConfigurationMessageClosedGroup {
return try SNProtoConfigurationMessageClosedGroup.parseProto(proto)
}
@objc public func buildSerializedData() throws -> Data {
return try SNProtoConfigurationMessageClosedGroup.parseProto(proto).serializedData()
}
}
fileprivate let proto: SessionProtos_ConfigurationMessage.ClosedGroup
@objc public let encryptionKeyPair: SNProtoKeyPair?
@objc public var publicKey: Data? {
guard proto.hasPublicKey else {
return nil
}
return proto.publicKey
}
@objc public var hasPublicKey: Bool {
return proto.hasPublicKey
}
@objc public var name: String? {
guard proto.hasName else {
return nil
}
return proto.name
}
@objc public var hasName: Bool {
return proto.hasName
}
@objc public var members: [Data] {
return proto.members
}
@objc public var admins: [Data] {
return proto.admins
}
@objc public var expirationTimer: UInt32 {
return proto.expirationTimer
}
@objc public var hasExpirationTimer: Bool {
return proto.hasExpirationTimer
}
private init(proto: SessionProtos_ConfigurationMessage.ClosedGroup,
encryptionKeyPair: SNProtoKeyPair?) {
self.proto = proto
self.encryptionKeyPair = encryptionKeyPair
}
@objc
public func serializedData() throws -> Data {
return try self.proto.serializedData()
}
@objc public class func parseData(_ serializedData: Data) throws -> SNProtoConfigurationMessageClosedGroup {
let proto = try SessionProtos_ConfigurationMessage.ClosedGroup(serializedData: serializedData)
return try parseProto(proto)
}
fileprivate class func parseProto(_ proto: SessionProtos_ConfigurationMessage.ClosedGroup) throws -> SNProtoConfigurationMessageClosedGroup {
var encryptionKeyPair: SNProtoKeyPair? = nil
if proto.hasEncryptionKeyPair {
encryptionKeyPair = try SNProtoKeyPair.parseProto(proto.encryptionKeyPair)
}
// MARK: - Begin Validation Logic for SNProtoConfigurationMessageClosedGroup -
// MARK: - End Validation Logic for SNProtoConfigurationMessageClosedGroup -
let result = SNProtoConfigurationMessageClosedGroup(proto: proto,
encryptionKeyPair: encryptionKeyPair)
return result
}
@objc public override var debugDescription: String {
return "\(proto)"
}
}
#if DEBUG
extension SNProtoConfigurationMessageClosedGroup {
@objc public func serializedDataIgnoringErrors() -> Data? {
return try! self.serializedData()
}
}
extension SNProtoConfigurationMessageClosedGroup.SNProtoConfigurationMessageClosedGroupBuilder {
@objc public func buildIgnoringErrors() -> SNProtoConfigurationMessageClosedGroup? {
return try! self.build()
}
}
#endif
// MARK: - SNProtoConfigurationMessageContact
@objc public class SNProtoConfigurationMessageContact: NSObject {
// MARK: - SNProtoConfigurationMessageContactBuilder
@objc public class func builder(publicKey: Data, name: String) -> SNProtoConfigurationMessageContactBuilder {
return SNProtoConfigurationMessageContactBuilder(publicKey: publicKey, name: name)
}
// asBuilder() constructs a builder that reflects the proto's contents.
@objc public func asBuilder() -> SNProtoConfigurationMessageContactBuilder {
let builder = SNProtoConfigurationMessageContactBuilder(publicKey: publicKey, name: name)
if let _value = profilePicture {
builder.setProfilePicture(_value)
}
if let _value = profileKey {
builder.setProfileKey(_value)
}
return builder
}
@objc public class SNProtoConfigurationMessageContactBuilder: NSObject {
private var proto = SessionProtos_ConfigurationMessage.Contact()
@objc fileprivate override init() {}
@objc fileprivate init(publicKey: Data, name: String) {
super.init()
setPublicKey(publicKey)
setName(name)
}
@objc public func setPublicKey(_ valueParam: Data) {
proto.publicKey = valueParam
}
@objc public func setName(_ valueParam: String) {
proto.name = valueParam
}
@objc public func setProfilePicture(_ valueParam: String) {
proto.profilePicture = valueParam
}
@objc public func setProfileKey(_ valueParam: Data) {
proto.profileKey = valueParam
}
@objc public func build() throws -> SNProtoConfigurationMessageContact {
return try SNProtoConfigurationMessageContact.parseProto(proto)
}
@objc public func buildSerializedData() throws -> Data {
return try SNProtoConfigurationMessageContact.parseProto(proto).serializedData()
}
}
fileprivate let proto: SessionProtos_ConfigurationMessage.Contact
@objc public let publicKey: Data
@objc public let name: String
@objc public var profilePicture: String? {
guard proto.hasProfilePicture else {
return nil
}
return proto.profilePicture
}
@objc public var hasProfilePicture: Bool {
return proto.hasProfilePicture
}
@objc public var profileKey: Data? {
guard proto.hasProfileKey else {
return nil
}
return proto.profileKey
}
@objc public var hasProfileKey: Bool {
return proto.hasProfileKey
}
private init(proto: SessionProtos_ConfigurationMessage.Contact,
publicKey: Data,
name: String) {
self.proto = proto
self.publicKey = publicKey
self.name = name
}
@objc
public func serializedData() throws -> Data {
return try self.proto.serializedData()
}
@objc public class func parseData(_ serializedData: Data) throws -> SNProtoConfigurationMessageContact {
let proto = try SessionProtos_ConfigurationMessage.Contact(serializedData: serializedData)
return try parseProto(proto)
}
fileprivate class func parseProto(_ proto: SessionProtos_ConfigurationMessage.Contact) throws -> SNProtoConfigurationMessageContact {
guard proto.hasPublicKey else {
throw SNProtoError.invalidProtobuf(description: "\(logTag) missing required field: publicKey")
}
let publicKey = proto.publicKey
guard proto.hasName else {
throw SNProtoError.invalidProtobuf(description: "\(logTag) missing required field: name")
}
let name = proto.name
// MARK: - Begin Validation Logic for SNProtoConfigurationMessageContact -
// MARK: - End Validation Logic for SNProtoConfigurationMessageContact -
let result = SNProtoConfigurationMessageContact(proto: proto,
publicKey: publicKey,
name: name)
return result
}
@objc public override var debugDescription: String {
return "\(proto)"
}
}
#if DEBUG
extension SNProtoConfigurationMessageContact {
@objc public func serializedDataIgnoringErrors() -> Data? {
return try! self.serializedData()
}
}
extension SNProtoConfigurationMessageContact.SNProtoConfigurationMessageContactBuilder {
@objc public func buildIgnoringErrors() -> SNProtoConfigurationMessageContact? {
return try! self.build()
}
}
#endif
// MARK: - SNProtoConfigurationMessage
@objc public class SNProtoConfigurationMessage: NSObject {
// MARK: - SNProtoConfigurationMessageBuilder
@objc public class func builder() -> SNProtoConfigurationMessageBuilder {
return SNProtoConfigurationMessageBuilder()
}
// asBuilder() constructs a builder that reflects the proto's contents.
@objc public func asBuilder() -> SNProtoConfigurationMessageBuilder {
let builder = SNProtoConfigurationMessageBuilder()
builder.setClosedGroups(closedGroups)
builder.setOpenGroups(openGroups)
if let _value = displayName {
builder.setDisplayName(_value)
}
if let _value = profilePicture {
builder.setProfilePicture(_value)
}
if let _value = profileKey {
builder.setProfileKey(_value)
}
builder.setContacts(contacts)
return builder
}
@objc public class SNProtoConfigurationMessageBuilder: NSObject {
private var proto = SessionProtos_ConfigurationMessage()
@objc fileprivate override init() {}
@objc public func addClosedGroups(_ valueParam: SNProtoConfigurationMessageClosedGroup) {
var items = proto.closedGroups
items.append(valueParam.proto)
proto.closedGroups = items
}
@objc public func setClosedGroups(_ wrappedItems: [SNProtoConfigurationMessageClosedGroup]) {
proto.closedGroups = wrappedItems.map { $0.proto }
}
@objc public func addOpenGroups(_ valueParam: String) {
var items = proto.openGroups
items.append(valueParam)
proto.openGroups = items
}
@objc public func setOpenGroups(_ wrappedItems: [String]) {
proto.openGroups = wrappedItems
}
@objc public func setDisplayName(_ valueParam: String) {
proto.displayName = valueParam
}
@objc public func setProfilePicture(_ valueParam: String) {
proto.profilePicture = valueParam
}
@objc public func setProfileKey(_ valueParam: Data) {
proto.profileKey = valueParam
}
@objc public func addContacts(_ valueParam: SNProtoConfigurationMessageContact) {
var items = proto.contacts
items.append(valueParam.proto)
proto.contacts = items
}
@objc public func setContacts(_ wrappedItems: [SNProtoConfigurationMessageContact]) {
proto.contacts = wrappedItems.map { $0.proto }
}
@objc public func build() throws -> SNProtoConfigurationMessage {
return try SNProtoConfigurationMessage.parseProto(proto)
}
@objc public func buildSerializedData() throws -> Data {
return try SNProtoConfigurationMessage.parseProto(proto).serializedData()
}
}
fileprivate let proto: SessionProtos_ConfigurationMessage
@objc public let closedGroups: [SNProtoConfigurationMessageClosedGroup]
@objc public let contacts: [SNProtoConfigurationMessageContact]
@objc public var openGroups: [String] {
return proto.openGroups
}
@objc public var displayName: String? {
guard proto.hasDisplayName else {
return nil
}
return proto.displayName
}
@objc public var hasDisplayName: Bool {
return proto.hasDisplayName
}
@objc public var profilePicture: String? {
guard proto.hasProfilePicture else {
return nil
}
return proto.profilePicture
}
@objc public var hasProfilePicture: Bool {
return proto.hasProfilePicture
}
@objc public var profileKey: Data? {
guard proto.hasProfileKey else {
return nil
}
return proto.profileKey
}
@objc public var hasProfileKey: Bool {
return proto.hasProfileKey
}
private init(proto: SessionProtos_ConfigurationMessage,
closedGroups: [SNProtoConfigurationMessageClosedGroup],
contacts: [SNProtoConfigurationMessageContact]) {
self.proto = proto
self.closedGroups = closedGroups
self.contacts = contacts
}
@objc
public func serializedData() throws -> Data {
return try self.proto.serializedData()
}
@objc public class func parseData(_ serializedData: Data) throws -> SNProtoConfigurationMessage {
let proto = try SessionProtos_ConfigurationMessage(serializedData: serializedData)
return try parseProto(proto)
}
fileprivate class func parseProto(_ proto: SessionProtos_ConfigurationMessage) throws -> SNProtoConfigurationMessage {
var closedGroups: [SNProtoConfigurationMessageClosedGroup] = []
closedGroups = try proto.closedGroups.map { try SNProtoConfigurationMessageClosedGroup.parseProto($0) }
var contacts: [SNProtoConfigurationMessageContact] = []
contacts = try proto.contacts.map { try SNProtoConfigurationMessageContact.parseProto($0) }
// MARK: - Begin Validation Logic for SNProtoConfigurationMessage -
// MARK: - End Validation Logic for SNProtoConfigurationMessage -
let result = SNProtoConfigurationMessage(proto: proto,
closedGroups: closedGroups,
contacts: contacts)
return result
}
@objc public override var debugDescription: String {
return "\(proto)"
}
}
#if DEBUG
extension SNProtoConfigurationMessage {
@objc public func serializedDataIgnoringErrors() -> Data? {
return try! self.serializedData()
}
}
extension SNProtoConfigurationMessage.SNProtoConfigurationMessageBuilder {
@objc public func buildIgnoringErrors() -> SNProtoConfigurationMessage? {
return try! self.build()
}
}
#endif
// MARK: - SNProtoReceiptMessage
@objc public class SNProtoReceiptMessage: NSObject {
// MARK: - SNProtoReceiptMessageType
@objc public enum SNProtoReceiptMessageType: Int32 {
case delivery = 0
case read = 1
}
private class func SNProtoReceiptMessageTypeWrap(_ value: SessionProtos_ReceiptMessage.TypeEnum) -> SNProtoReceiptMessageType {
switch value {
case .delivery: return .delivery
case .read: return .read
}
}
private class func SNProtoReceiptMessageTypeUnwrap(_ value: SNProtoReceiptMessageType) -> SessionProtos_ReceiptMessage.TypeEnum {
switch value {
case .delivery: return .delivery
case .read: return .read
}
}
// MARK: - SNProtoReceiptMessageBuilder
@objc public class func builder(type: SNProtoReceiptMessageType) -> SNProtoReceiptMessageBuilder {
return SNProtoReceiptMessageBuilder(type: type)
}
// asBuilder() constructs a builder that reflects the proto's contents.
@objc public func asBuilder() -> SNProtoReceiptMessageBuilder {
let builder = SNProtoReceiptMessageBuilder(type: type)
builder.setTimestamp(timestamp)
return builder
}
@objc public class SNProtoReceiptMessageBuilder: NSObject {
private var proto = SessionProtos_ReceiptMessage()
@objc fileprivate override init() {}
@objc fileprivate init(type: SNProtoReceiptMessageType) {
super.init()
setType(type)
}
@objc public func setType(_ valueParam: SNProtoReceiptMessageType) {
proto.type = SNProtoReceiptMessageTypeUnwrap(valueParam)
}
@objc public func addTimestamp(_ valueParam: UInt64) {
var items = proto.timestamp
items.append(valueParam)
proto.timestamp = items
}
@objc public func setTimestamp(_ wrappedItems: [UInt64]) {
proto.timestamp = wrappedItems
}
@objc public func build() throws -> SNProtoReceiptMessage {
return try SNProtoReceiptMessage.parseProto(proto)
}
@objc public func buildSerializedData() throws -> Data {
return try SNProtoReceiptMessage.parseProto(proto).serializedData()
}
}
fileprivate let proto: SessionProtos_ReceiptMessage
@objc public let type: SNProtoReceiptMessageType
@objc public var timestamp: [UInt64] {
return proto.timestamp
}
private init(proto: SessionProtos_ReceiptMessage,
type: SNProtoReceiptMessageType) {
self.proto = proto
self.type = type
}
@objc
public func serializedData() throws -> Data {
return try self.proto.serializedData()
}
@objc public class func parseData(_ serializedData: Data) throws -> SNProtoReceiptMessage {
let proto = try SessionProtos_ReceiptMessage(serializedData: serializedData)
return try parseProto(proto)
}
fileprivate class func parseProto(_ proto: SessionProtos_ReceiptMessage) throws -> SNProtoReceiptMessage {
guard proto.hasType else {
throw SNProtoError.invalidProtobuf(description: "\(logTag) missing required field: type")
}
let type = SNProtoReceiptMessageTypeWrap(proto.type)
// MARK: - Begin Validation Logic for SNProtoReceiptMessage -
// MARK: - End Validation Logic for SNProtoReceiptMessage -
let result = SNProtoReceiptMessage(proto: proto,
type: type)
return result
}
@objc public override var debugDescription: String {
return "\(proto)"
}
}
#if DEBUG
extension SNProtoReceiptMessage {
@objc public func serializedDataIgnoringErrors() -> Data? {
return try! self.serializedData()
}
}
extension SNProtoReceiptMessage.SNProtoReceiptMessageBuilder {
@objc public func buildIgnoringErrors() -> SNProtoReceiptMessage? {
return try! self.build()
}
}
#endif
// MARK: - SNProtoAttachmentPointer
@objc public class SNProtoAttachmentPointer: NSObject {
// MARK: - SNProtoAttachmentPointerFlags
@objc public enum SNProtoAttachmentPointerFlags: Int32 {
case voiceMessage = 1
}
private class func SNProtoAttachmentPointerFlagsWrap(_ value: SessionProtos_AttachmentPointer.Flags) -> SNProtoAttachmentPointerFlags {
switch value {
case .voiceMessage: return .voiceMessage
}
}
private class func SNProtoAttachmentPointerFlagsUnwrap(_ value: SNProtoAttachmentPointerFlags) -> SessionProtos_AttachmentPointer.Flags {
switch value {
case .voiceMessage: return .voiceMessage
}
}
// MARK: - SNProtoAttachmentPointerBuilder
@objc public class func builder(id: UInt64) -> SNProtoAttachmentPointerBuilder {
return SNProtoAttachmentPointerBuilder(id: id)
}
// asBuilder() constructs a builder that reflects the proto's contents.
@objc public func asBuilder() -> SNProtoAttachmentPointerBuilder {
let builder = SNProtoAttachmentPointerBuilder(id: id)
if let _value = contentType {
builder.setContentType(_value)
}
if let _value = key {
builder.setKey(_value)
}
if hasSize {
builder.setSize(size)
}
if let _value = thumbnail {
builder.setThumbnail(_value)
}
if let _value = digest {
builder.setDigest(_value)
}
if let _value = fileName {
builder.setFileName(_value)
}
if hasFlags {
builder.setFlags(flags)
}
if hasWidth {
builder.setWidth(width)
}
if hasHeight {
builder.setHeight(height)
}
if let _value = caption {
builder.setCaption(_value)
}
if let _value = url {
builder.setUrl(_value)
}
return builder
}
@objc public class SNProtoAttachmentPointerBuilder: NSObject {
private var proto = SessionProtos_AttachmentPointer()
@objc fileprivate override init() {}
@objc fileprivate init(id: UInt64) {
super.init()
setId(id)
}
@objc public func setId(_ valueParam: UInt64) {
proto.id = valueParam
}
@objc public func setContentType(_ valueParam: String) {
proto.contentType = valueParam
}
@objc public func setKey(_ valueParam: Data) {
proto.key = valueParam
}
@objc public func setSize(_ valueParam: UInt32) {
proto.size = valueParam
}
@objc public func setThumbnail(_ valueParam: Data) {
proto.thumbnail = valueParam
}
@objc public func setDigest(_ valueParam: Data) {
proto.digest = valueParam
}
@objc public func setFileName(_ valueParam: String) {
proto.fileName = valueParam
}
@objc public func setFlags(_ valueParam: UInt32) {
proto.flags = valueParam
}
@objc public func setWidth(_ valueParam: UInt32) {
proto.width = valueParam
}
@objc public func setHeight(_ valueParam: UInt32) {
proto.height = valueParam
}
@objc public func setCaption(_ valueParam: String) {
proto.caption = valueParam
}
@objc public func setUrl(_ valueParam: String) {
proto.url = valueParam
}
@objc public func build() throws -> SNProtoAttachmentPointer {
return try SNProtoAttachmentPointer.parseProto(proto)
}
@objc public func buildSerializedData() throws -> Data {
return try SNProtoAttachmentPointer.parseProto(proto).serializedData()
}
}
fileprivate let proto: SessionProtos_AttachmentPointer
@objc public let id: UInt64
@objc public var contentType: String? {
guard proto.hasContentType else {
return nil
}
return proto.contentType
}
@objc public var hasContentType: Bool {
return proto.hasContentType
}
@objc public var key: Data? {
guard proto.hasKey else {
return nil
}
return proto.key
}
@objc public var hasKey: Bool {
return proto.hasKey
}
@objc public var size: UInt32 {
return proto.size
}
@objc public var hasSize: Bool {
return proto.hasSize
}
@objc public var thumbnail: Data? {
guard proto.hasThumbnail else {
return nil
}
return proto.thumbnail
}
@objc public var hasThumbnail: Bool {
return proto.hasThumbnail
}
@objc public var digest: Data? {
guard proto.hasDigest else {
return nil
}
return proto.digest
}
@objc public var hasDigest: Bool {
return proto.hasDigest
}
@objc public var fileName: String? {
guard proto.hasFileName else {
return nil
}
return proto.fileName
}
@objc public var hasFileName: Bool {
return proto.hasFileName
}
@objc public var flags: UInt32 {
return proto.flags
}
@objc public var hasFlags: Bool {
return proto.hasFlags
}
@objc public var width: UInt32 {
return proto.width
}
@objc public var hasWidth: Bool {
return proto.hasWidth
}
@objc public var height: UInt32 {
return proto.height
}
@objc public var hasHeight: Bool {
return proto.hasHeight
}
@objc public var caption: String? {
guard proto.hasCaption else {
return nil
}
return proto.caption
}
@objc public var hasCaption: Bool {
return proto.hasCaption
}
@objc public var url: String? {
guard proto.hasURL else {
return nil
}
return proto.url
}
@objc public var hasURL: Bool {
return proto.hasURL
}
private init(proto: SessionProtos_AttachmentPointer,
id: UInt64) {
self.proto = proto
self.id = id
}
@objc
public func serializedData() throws -> Data {
return try self.proto.serializedData()
}
@objc public class func parseData(_ serializedData: Data) throws -> SNProtoAttachmentPointer {
let proto = try SessionProtos_AttachmentPointer(serializedData: serializedData)
return try parseProto(proto)
}
fileprivate class func parseProto(_ proto: SessionProtos_AttachmentPointer) throws -> SNProtoAttachmentPointer {
guard proto.hasID else {
throw SNProtoError.invalidProtobuf(description: "\(logTag) missing required field: id")
}
let id = proto.id
// MARK: - Begin Validation Logic for SNProtoAttachmentPointer -
// MARK: - End Validation Logic for SNProtoAttachmentPointer -
let result = SNProtoAttachmentPointer(proto: proto,
id: id)
return result
}
@objc public override var debugDescription: String {
return "\(proto)"
}
}
#if DEBUG
extension SNProtoAttachmentPointer {
@objc public func serializedDataIgnoringErrors() -> Data? {
return try! self.serializedData()
}
}
extension SNProtoAttachmentPointer.SNProtoAttachmentPointerBuilder {
@objc public func buildIgnoringErrors() -> SNProtoAttachmentPointer? {
return try! self.build()
}
}
#endif
// MARK: - SNProtoGroupContext
@objc public class SNProtoGroupContext: NSObject {
// MARK: - SNProtoGroupContextType
@objc public enum SNProtoGroupContextType: Int32 {
case unknown = 0
case update = 1
case deliver = 2
case quit = 3
case requestInfo = 4
}
private class func SNProtoGroupContextTypeWrap(_ value: SessionProtos_GroupContext.TypeEnum) -> SNProtoGroupContextType {
switch value {
case .unknown: return .unknown
case .update: return .update
case .deliver: return .deliver
case .quit: return .quit
case .requestInfo: return .requestInfo
}
}
private class func SNProtoGroupContextTypeUnwrap(_ value: SNProtoGroupContextType) -> SessionProtos_GroupContext.TypeEnum {
switch value {
case .unknown: return .unknown
case .update: return .update
case .deliver: return .deliver
case .quit: return .quit
case .requestInfo: return .requestInfo
}
}
// MARK: - SNProtoGroupContextBuilder
@objc public class func builder(id: Data, type: SNProtoGroupContextType) -> SNProtoGroupContextBuilder {
return SNProtoGroupContextBuilder(id: id, type: type)
}
// asBuilder() constructs a builder that reflects the proto's contents.
@objc public func asBuilder() -> SNProtoGroupContextBuilder {
let builder = SNProtoGroupContextBuilder(id: id, type: type)
if let _value = name {
builder.setName(_value)
}
builder.setMembers(members)
if let _value = avatar {
builder.setAvatar(_value)
}
builder.setAdmins(admins)
return builder
}
@objc public class SNProtoGroupContextBuilder: NSObject {
private var proto = SessionProtos_GroupContext()
@objc fileprivate override init() {}
@objc fileprivate init(id: Data, type: SNProtoGroupContextType) {
super.init()
setId(id)
setType(type)
}
@objc public func setId(_ valueParam: Data) {
proto.id = valueParam
}
@objc public func setType(_ valueParam: SNProtoGroupContextType) {
proto.type = SNProtoGroupContextTypeUnwrap(valueParam)
}
@objc public func setName(_ valueParam: String) {
proto.name = valueParam
}
@objc public func addMembers(_ valueParam: String) {
var items = proto.members
items.append(valueParam)
proto.members = items
}
@objc public func setMembers(_ wrappedItems: [String]) {
proto.members = wrappedItems
}
@objc public func setAvatar(_ valueParam: SNProtoAttachmentPointer) {
proto.avatar = valueParam.proto
}
@objc public func addAdmins(_ valueParam: String) {
var items = proto.admins
items.append(valueParam)
proto.admins = items
}
@objc public func setAdmins(_ wrappedItems: [String]) {
proto.admins = wrappedItems
}
@objc public func build() throws -> SNProtoGroupContext {
return try SNProtoGroupContext.parseProto(proto)
}
@objc public func buildSerializedData() throws -> Data {
return try SNProtoGroupContext.parseProto(proto).serializedData()
}
}
fileprivate let proto: SessionProtos_GroupContext
@objc public let id: Data
@objc public let type: SNProtoGroupContextType
@objc public let avatar: SNProtoAttachmentPointer?
@objc public var name: String? {
guard proto.hasName else {
return nil
}
return proto.name
}
@objc public var hasName: Bool {
return proto.hasName
}
@objc public var members: [String] {
return proto.members
}
@objc public var admins: [String] {
return proto.admins
}
private init(proto: SessionProtos_GroupContext,
id: Data,
type: SNProtoGroupContextType,
avatar: SNProtoAttachmentPointer?) {
self.proto = proto
self.id = id
self.type = type
self.avatar = avatar
}
@objc
public func serializedData() throws -> Data {
return try self.proto.serializedData()
}
@objc public class func parseData(_ serializedData: Data) throws -> SNProtoGroupContext {
let proto = try SessionProtos_GroupContext(serializedData: serializedData)
return try parseProto(proto)
}
fileprivate class func parseProto(_ proto: SessionProtos_GroupContext) throws -> SNProtoGroupContext {
guard proto.hasID else {
throw SNProtoError.invalidProtobuf(description: "\(logTag) missing required field: id")
}
let id = proto.id
guard proto.hasType else {
throw SNProtoError.invalidProtobuf(description: "\(logTag) missing required field: type")
}
let type = SNProtoGroupContextTypeWrap(proto.type)
var avatar: SNProtoAttachmentPointer? = nil
if proto.hasAvatar {
avatar = try SNProtoAttachmentPointer.parseProto(proto.avatar)
}
// MARK: - Begin Validation Logic for SNProtoGroupContext -
// MARK: - End Validation Logic for SNProtoGroupContext -
let result = SNProtoGroupContext(proto: proto,
id: id,
type: type,
avatar: avatar)
return result
}
@objc public override var debugDescription: String {
return "\(proto)"
}
}
#if DEBUG
extension SNProtoGroupContext {
@objc public func serializedDataIgnoringErrors() -> Data? {
return try! self.serializedData()
}
}
extension SNProtoGroupContext.SNProtoGroupContextBuilder {
@objc public func buildIgnoringErrors() -> SNProtoGroupContext? {
return try! self.build()
}
}
#endif