Respond to CR.

This commit is contained in:
Matthew Chen 2018-08-03 14:35:22 -04:00
parent 632dc145fd
commit 03a9b21cfd
15 changed files with 593 additions and 104 deletions

View File

@ -302,6 +302,7 @@ import Foundation
writer.extend((''' writer.extend(('''
public enum %s: Error { public enum %s: Error {
case invalidProtobuf(description: String) case invalidProtobuf(description: String)
case unsafeProtobuf(description: String)
} }
''' % writer.invalid_protobuf_error_name).strip()) ''' % writer.invalid_protobuf_error_name).strip())
writer.newline() writer.newline()
@ -493,8 +494,14 @@ class MessageContext(BaseContext):
# serializedDataIgnoringErrors() func # serializedDataIgnoringErrors() func
writer.add('// NOTE: This method is intended for debugging purposes only.') writer.add('// NOTE: This method is intended for debugging purposes only.')
writer.add('@objc public func serializedDataIgnoringErrors() -> Data {') writer.add('@objc public func serializedDataIgnoringErrors() -> Data? {')
writer.push_indent() writer.push_indent()
writer.add('guard _isDebugAssertConfiguration() else {')
writer.push_indent()
writer.add('return nil')
writer.pop_indent()
writer.add('}')
writer.newline()
writer.add('return try! self.serializedData()') writer.add('return try! self.serializedData()')
writer.pop_indent() writer.pop_indent()
writer.add('}') writer.add('}')
@ -701,8 +708,14 @@ public func serializedData() throws -> Data {
# buildIgnoringErrors() func # buildIgnoringErrors() func
writer.add('// NOTE: This method is intended for debugging purposes only.') writer.add('// NOTE: This method is intended for debugging purposes only.')
writer.add('@objc public func buildIgnoringErrors() -> %s {' % self.swift_name) writer.add('@objc public func buildIgnoringErrors() -> %s? {' % self.swift_name)
writer.push_indent() writer.push_indent()
writer.add('guard _isDebugAssertConfiguration() else {')
writer.push_indent()
writer.add('return nil')
writer.pop_indent()
writer.add('}')
writer.newline()
writer.add('return try! self.build()') writer.add('return try! self.build()')
writer.pop_indent() writer.pop_indent()
writer.add('}') writer.add('}')

View File

@ -5,7 +5,6 @@
shift-base:CodedInputStream.m shift-base:CodedInputStream.m
# generated protos # generated protos
bool:WebSocketResources.pb.m bool:WebSocketResources.pb.m
bool:SSKProto.pb.m
bool:WhisperTextProtocol.pb.m bool:WhisperTextProtocol.pb.m
bool:OWSWebRTCDataProtos.pb.m bool:OWSWebRTCDataProtos.pb.m
bool:OWSSignaliOSProtos.pb.m bool:OWSSignaliOSProtos.pb.m

View File

@ -21,12 +21,12 @@ class SSKProtoEnvelopeTest: XCTestCase {
func testParse_EmptyData() { func testParse_EmptyData() {
let data = Data() let data = Data()
XCTAssertThrowsError(try SSKProtoEnvelope(serializedData: data)) XCTAssertThrowsError(try SSKProtoEnvelope.parseData(data))
} }
func testParse_UnparseableData() { func testParse_UnparseableData() {
let data = "asdf".data(using: .utf8)! let data = "asdf".data(using: .utf8)!
XCTAssertThrowsError(try SSKProtoEnvelope(serializedData: data)) { error in XCTAssertThrowsError(try SSKProtoEnvelope.parseData(data)) { error in
XCTAssert(error is SwiftProtobuf.BinaryDecodingError) XCTAssert(error is SwiftProtobuf.BinaryDecodingError)
} }
} }
@ -42,7 +42,7 @@ class SSKProtoEnvelopeTest: XCTestCase {
let encodedData = "CAESDCsxNTU1MTIzMTIzNCjKm4WazSw4AQ==" let encodedData = "CAESDCsxNTU1MTIzMTIzNCjKm4WazSw4AQ=="
let data = Data(base64Encoded: encodedData)! let data = Data(base64Encoded: encodedData)!
XCTAssertNoThrow(try SSKProtoEnvelope(serializedData: data)) XCTAssertNoThrow(try SSKProtoEnvelope.parseData(data))
} }
func testParse_invalidData() { func testParse_invalidData() {
@ -56,9 +56,9 @@ class SSKProtoEnvelopeTest: XCTestCase {
let encodedData = "EgwrMTU1NTEyMzEyMzQojdmOms0sOAE=" let encodedData = "EgwrMTU1NTEyMzEyMzQojdmOms0sOAE="
let data = Data(base64Encoded: encodedData)! let data = Data(base64Encoded: encodedData)!
XCTAssertThrowsError(try SSKProtoEnvelope(serializedData: data)) { (error) -> Void in XCTAssertThrowsError(try SSKProtoEnvelope.parseData(data)) { (error) -> Void in
switch error { switch error {
case SSKProtoEnvelope.EnvelopeError.invalidProtobuf: case SSKProtoError.invalidProtobuf:
break break
default: default:
XCTFail("unexpected error: \(error)") XCTFail("unexpected error: \(error)")

View File

@ -64,7 +64,7 @@
OWSAssert([[NSFileManager defaultManager] fileExistsAtPath:filePath]); OWSAssert([[NSFileManager defaultManager] fileExistsAtPath:filePath]);
DataSource *dataSource = [DataSourcePath dataSourceWithFilePath:filePath]; DataSource *dataSource = [DataSourcePath dataSourceWithFilePath:filePath shouldDeleteOnDeallocation:NO];
TSAttachmentStream *attachment = [[TSAttachmentStream alloc] initWithContentType:mimeType TSAttachmentStream *attachment = [[TSAttachmentStream alloc] initWithContentType:mimeType
byteCount:(UInt32)dataSource.dataLength byteCount:(UInt32)dataSource.dataLength
sourceFilename:nil]; sourceFilename:nil];

View File

@ -2,7 +2,6 @@
// Copyright (c) 2018 Open Whisper Systems. All rights reserved. // Copyright (c) 2018 Open Whisper Systems. All rights reserved.
// //
#import "SSKProto.pb.h"
#import <SignalServiceKit/CDSSigningCertificate.h> #import <SignalServiceKit/CDSSigningCertificate.h>
#import <SignalServiceKit/NSData+Base64.h> #import <SignalServiceKit/NSData+Base64.h>
#import <SignalServiceKit/NSData+OWS.h> #import <SignalServiceKit/NSData+OWS.h>

View File

@ -2,7 +2,7 @@
// Copyright (c) 2018 Open Whisper Systems. All rights reserved. // Copyright (c) 2018 Open Whisper Systems. All rights reserved.
// //
#import "SSKProto.pb.h" #import <SignalServiceKit/SignalServiceKit-Swift.h>
#import <XCTest/XCTest.h> #import <XCTest/XCTest.h>
@interface ProtoParsingTest : XCTestCase @interface ProtoParsingTest : XCTestCase
@ -13,29 +13,22 @@
@implementation ProtoParsingTest @implementation ProtoParsingTest
- (void)testProtoParsing_nil
{
SSKProtoEnvelope *_Nullable envelope = [SSKProtoEnvelope parseFromData:nil];
XCTAssertNotNil(envelope);
}
- (void)testProtoParsing_empty - (void)testProtoParsing_empty
{ {
NSData *data = [NSData new]; NSData *data = [NSData new];
SSKProtoEnvelope *_Nullable envelope = [SSKProtoEnvelope parseFromData:data]; NSError *error;
XCTAssertNotNil(envelope); SSKProtoEnvelope *_Nullable envelope = [SSKProtoEnvelope parseData:data error:&error];
XCTAssertNil(envelope);
XCTAssertNotNil(error);
} }
- (void)testProtoParsing_wrong1 - (void)testProtoParsing_wrong1
{ {
@try { NSData *data = [@"test" dataUsingEncoding:NSUTF8StringEncoding];
NSData *data = [@"test" dataUsingEncoding:NSUTF8StringEncoding]; NSError *error;
[SSKProtoEnvelope parseFromData:data]; SSKProtoEnvelope *_Nullable envelope = [SSKProtoEnvelope parseData:data error:&error];
XCTFail(@"Missing expected exception"); XCTAssertNil(envelope);
} @catch (NSException *exception) { XCTAssertNotNil(error);
// Exception is expected.
NSLog(@"Caught expected exception: %@", [exception class]);
}
} }
@end @end

View File

@ -39,12 +39,12 @@ disappearingMessagesConfiguration:(nullable OWSDisappearingMessagesConfiguration
#endif #endif
if (recipientIdentity != nil) { if (recipientIdentity != nil) {
SSKProtoVerified *_Nullable verified = BuildVerifiedProto(recipientIdentity.recipientId, SSKProtoVerified *_Nullable verified = BuildVerifiedProtoWithRecipientId(recipientIdentity.recipientId,
[recipientIdentity.identityKey prependKeyType], [recipientIdentity.identityKey prependKeyType],
recipientIdentity.verificationState, recipientIdentity.verificationState,
0); 0);
if (!verified) { if (!verified) {
OWSFail(@"%@ could not build protobuf.", self.logTag); DDLogError(@"%@ could not build protobuf.", self.logTag);
return; return;
} }
contactBuilder.verified = verified; contactBuilder.verified = verified;
@ -63,7 +63,7 @@ disappearingMessagesConfiguration:(nullable OWSDisappearingMessagesConfiguration
NSError *error; NSError *error;
SSKProtoContactDetailsAvatar *_Nullable avatar = [avatarBuilder buildAndReturnError:&error]; SSKProtoContactDetailsAvatar *_Nullable avatar = [avatarBuilder buildAndReturnError:&error];
if (error || !avatar) { if (error || !avatar) {
OWSFail(@"%@ could not build protobuf: %@", self.logTag, error); DDLogError(@"%@ could not build protobuf: %@", self.logTag, error);
return; return;
} }
[contactBuilder setAvatar:avatar]; [contactBuilder setAvatar:avatar];

View File

@ -70,7 +70,7 @@ NS_ASSUME_NONNULL_BEGIN
// verification sync which is ~1-512 bytes larger then that. // verification sync which is ~1-512 bytes larger then that.
OWSAssert(self.paddingBytesLength != 0); OWSAssert(self.paddingBytesLength != 0);
SSKProtoVerified *_Nullable verifiedProto = BuildVerifiedProto( SSKProtoVerified *_Nullable verifiedProto = BuildVerifiedProtoWithRecipientId(
self.verificationForRecipientId, self.identityKey, self.verificationState, self.paddingBytesLength); self.verificationForRecipientId, self.identityKey, self.verificationState, self.paddingBytesLength);
if (!verifiedProto) { if (!verifiedProto) {
OWSFail(@"%@ could not build protobuf.", self.logTag); OWSFail(@"%@ could not build protobuf.", self.logTag);
@ -91,8 +91,8 @@ NS_ASSUME_NONNULL_BEGIN
// will figure that out on it's own. // will figure that out on it's own.
OWSAssert(self.verificationState != OWSVerificationStateNoLongerVerified); OWSAssert(self.verificationState != OWSVerificationStateNoLongerVerified);
SSKProtoVerified *_Nullable verifiedProto SSKProtoVerified *_Nullable verifiedProto = BuildVerifiedProtoWithRecipientId(
= BuildVerifiedProto(self.verificationForRecipientId, self.identityKey, self.verificationState, 0); self.verificationForRecipientId, self.identityKey, self.verificationState, 0);
if (!verifiedProto) { if (!verifiedProto) {
OWSFail(@"%@ could not build protobuf.", self.logTag); OWSFail(@"%@ could not build protobuf.", self.logTag);
return 0; return 0;

View File

@ -8,6 +8,7 @@ import Foundation
public enum FingerprintProtoError: Error { public enum FingerprintProtoError: Error {
case invalidProtobuf(description: String) case invalidProtobuf(description: String)
case unsafeProtobuf(description: String)
} }
// MARK: - FingerprintProtoLogicalFingerprint // MARK: - FingerprintProtoLogicalFingerprint
@ -26,6 +27,15 @@ public enum FingerprintProtoError: Error {
proto.identityData = valueParam proto.identityData = valueParam
} }
// NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> FingerprintProtoLogicalFingerprint? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build()
}
@objc public func build() throws -> FingerprintProtoLogicalFingerprint { @objc public func build() throws -> FingerprintProtoLogicalFingerprint {
let wrapper = try FingerprintProtoLogicalFingerprint.parseProto(proto) let wrapper = try FingerprintProtoLogicalFingerprint.parseProto(proto)
return wrapper return wrapper
@ -42,6 +52,15 @@ public enum FingerprintProtoError: Error {
self.identityData = identityData self.identityData = identityData
} }
// NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData()
}
@objc @objc
public func serializedData() throws -> Data { public func serializedData() throws -> Data {
return try self.proto.serializedData() return try self.proto.serializedData()
@ -92,6 +111,15 @@ public enum FingerprintProtoError: Error {
proto.remoteFingerprint = valueParam.proto proto.remoteFingerprint = valueParam.proto
} }
// NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> FingerprintProtoLogicalFingerprints? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build()
}
@objc public func build() throws -> FingerprintProtoLogicalFingerprints { @objc public func build() throws -> FingerprintProtoLogicalFingerprints {
let wrapper = try FingerprintProtoLogicalFingerprints.parseProto(proto) let wrapper = try FingerprintProtoLogicalFingerprints.parseProto(proto)
return wrapper return wrapper
@ -101,7 +129,9 @@ public enum FingerprintProtoError: Error {
fileprivate let proto: FingerprintProtos_LogicalFingerprints fileprivate let proto: FingerprintProtos_LogicalFingerprints
@objc public let version: UInt32 @objc public let version: UInt32
@objc public let localFingerprint: FingerprintProtoLogicalFingerprint @objc public let localFingerprint: FingerprintProtoLogicalFingerprint
@objc public let remoteFingerprint: FingerprintProtoLogicalFingerprint @objc public let remoteFingerprint: FingerprintProtoLogicalFingerprint
private init(proto: FingerprintProtos_LogicalFingerprints, private init(proto: FingerprintProtos_LogicalFingerprints,
@ -114,6 +144,15 @@ public enum FingerprintProtoError: Error {
self.remoteFingerprint = remoteFingerprint self.remoteFingerprint = remoteFingerprint
} }
// NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData()
}
@objc @objc
public func serializedData() throws -> Data { public func serializedData() throws -> Data {
return try self.proto.serializedData() return try self.proto.serializedData()

View File

@ -8,6 +8,7 @@ import Foundation
public enum ProvisioningProtoError: Error { public enum ProvisioningProtoError: Error {
case invalidProtobuf(description: String) case invalidProtobuf(description: String)
case unsafeProtobuf(description: String)
} }
// MARK: - ProvisioningProtoProvisionEnvelope // MARK: - ProvisioningProtoProvisionEnvelope
@ -30,6 +31,15 @@ public enum ProvisioningProtoError: Error {
proto.body = valueParam proto.body = valueParam
} }
// NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> ProvisioningProtoProvisionEnvelope? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build()
}
@objc public func build() throws -> ProvisioningProtoProvisionEnvelope { @objc public func build() throws -> ProvisioningProtoProvisionEnvelope {
let wrapper = try ProvisioningProtoProvisionEnvelope.parseProto(proto) let wrapper = try ProvisioningProtoProvisionEnvelope.parseProto(proto)
return wrapper return wrapper
@ -39,6 +49,7 @@ public enum ProvisioningProtoError: Error {
fileprivate let proto: ProvisioningProtos_ProvisionEnvelope fileprivate let proto: ProvisioningProtos_ProvisionEnvelope
@objc public let publicKey: Data @objc public let publicKey: Data
@objc public let body: Data @objc public let body: Data
private init(proto: ProvisioningProtos_ProvisionEnvelope, private init(proto: ProvisioningProtos_ProvisionEnvelope,
@ -49,6 +60,15 @@ public enum ProvisioningProtoError: Error {
self.body = body self.body = body
} }
// NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData()
}
@objc @objc
public func serializedData() throws -> Data { public func serializedData() throws -> Data {
return try self.proto.serializedData() return try self.proto.serializedData()
@ -121,6 +141,15 @@ public enum ProvisioningProtoError: Error {
proto.readReceipts = valueParam proto.readReceipts = valueParam
} }
// NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> ProvisioningProtoProvisionMessage? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build()
}
@objc public func build() throws -> ProvisioningProtoProvisionMessage { @objc public func build() throws -> ProvisioningProtoProvisionMessage {
let wrapper = try ProvisioningProtoProvisionMessage.parseProto(proto) let wrapper = try ProvisioningProtoProvisionMessage.parseProto(proto)
return wrapper return wrapper
@ -130,11 +159,17 @@ public enum ProvisioningProtoError: Error {
fileprivate let proto: ProvisioningProtos_ProvisionMessage fileprivate let proto: ProvisioningProtos_ProvisionMessage
@objc public let identityKeyPublic: Data @objc public let identityKeyPublic: Data
@objc public let identityKeyPrivate: Data @objc public let identityKeyPrivate: Data
@objc public let number: String @objc public let number: String
@objc public let provisioningCode: String @objc public let provisioningCode: String
@objc public let userAgent: String @objc public let userAgent: String
@objc public let profileKey: Data @objc public let profileKey: Data
@objc public let readReceipts: Bool @objc public let readReceipts: Bool
private init(proto: ProvisioningProtos_ProvisionMessage, private init(proto: ProvisioningProtos_ProvisionMessage,
@ -155,6 +190,15 @@ public enum ProvisioningProtoError: Error {
self.readReceipts = readReceipts self.readReceipts = readReceipts
} }
// NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData()
}
@objc @objc
public func serializedData() throws -> Data { public func serializedData() throws -> Data {
return try self.proto.serializedData() return try self.proto.serializedData()

View File

@ -8,6 +8,7 @@ import Foundation
public enum SSKProtoError: Error { public enum SSKProtoError: Error {
case invalidProtobuf(description: String) case invalidProtobuf(description: String)
case unsafeProtobuf(description: String)
} }
// MARK: - SSKProtoEnvelope // MARK: - SSKProtoEnvelope
@ -81,7 +82,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoEnvelope { @objc public func buildIgnoringErrors() -> SSKProtoEnvelope? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -144,7 +149,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -225,7 +234,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoContent { @objc public func buildIgnoringErrors() -> SSKProtoContent? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -277,7 +290,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -352,7 +369,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoCallMessageOffer { @objc public func buildIgnoringErrors() -> SSKProtoCallMessageOffer? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -377,7 +398,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -434,7 +459,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoCallMessageAnswer { @objc public func buildIgnoringErrors() -> SSKProtoCallMessageAnswer? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -459,7 +488,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -524,7 +557,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoCallMessageIceUpdate { @objc public func buildIgnoringErrors() -> SSKProtoCallMessageIceUpdate? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -557,7 +594,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -622,7 +663,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoCallMessageBusy { @objc public func buildIgnoringErrors() -> SSKProtoCallMessageBusy? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -643,7 +688,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -690,7 +739,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoCallMessageHangup { @objc public func buildIgnoringErrors() -> SSKProtoCallMessageHangup? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -711,7 +764,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -788,7 +845,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoCallMessage { @objc public func buildIgnoringErrors() -> SSKProtoCallMessage? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -847,7 +908,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -949,7 +1014,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoDataMessageQuoteQuotedAttachment { @objc public func buildIgnoringErrors() -> SSKProtoDataMessageQuoteQuotedAttachment? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -1000,7 +1069,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -1069,7 +1142,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoDataMessageQuote { @objc public func buildIgnoringErrors() -> SSKProtoDataMessageQuote? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -1108,7 +1185,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -1188,7 +1269,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoDataMessageContactName { @objc public func buildIgnoringErrors() -> SSKProtoDataMessageContactName? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -1265,7 +1350,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -1341,7 +1430,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoDataMessageContactPhone { @objc public func buildIgnoringErrors() -> SSKProtoDataMessageContactPhone? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -1385,7 +1478,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -1461,7 +1558,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoDataMessageContactEmail { @objc public func buildIgnoringErrors() -> SSKProtoDataMessageContactEmail? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -1505,7 +1606,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -1602,7 +1707,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoDataMessageContactPostalAddress { @objc public func buildIgnoringErrors() -> SSKProtoDataMessageContactPostalAddress? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -1706,7 +1815,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -1751,7 +1864,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoDataMessageContactAvatar { @objc public func buildIgnoringErrors() -> SSKProtoDataMessageContactAvatar? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -1782,7 +1899,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -1879,7 +2000,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoDataMessageContact { @objc public func buildIgnoringErrors() -> SSKProtoDataMessageContact? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -1932,7 +2057,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -2082,7 +2211,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoDataMessage { @objc public func buildIgnoringErrors() -> SSKProtoDataMessage? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -2162,7 +2295,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -2229,7 +2366,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoNullMessage { @objc public func buildIgnoringErrors() -> SSKProtoNullMessage? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -2256,7 +2397,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -2332,7 +2477,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoReceiptMessage { @objc public func buildIgnoringErrors() -> SSKProtoReceiptMessage? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -2357,7 +2506,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -2440,7 +2593,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoVerified { @objc public func buildIgnoringErrors() -> SSKProtoVerified? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -2488,7 +2645,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -2547,7 +2708,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoSyncMessageSent { @objc public func buildIgnoringErrors() -> SSKProtoSyncMessageSent? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -2595,7 +2760,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -2646,7 +2815,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoSyncMessageContacts { @objc public func buildIgnoringErrors() -> SSKProtoSyncMessageContacts? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -2674,7 +2847,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -2721,7 +2898,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoSyncMessageGroups { @objc public func buildIgnoringErrors() -> SSKProtoSyncMessageGroups? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -2745,7 +2926,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -2802,7 +2987,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoSyncMessageBlocked { @objc public func buildIgnoringErrors() -> SSKProtoSyncMessageBlocked? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -2823,7 +3012,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -2894,7 +3087,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoSyncMessageRequest { @objc public func buildIgnoringErrors() -> SSKProtoSyncMessageRequest? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -2915,7 +3112,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -2966,7 +3167,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoSyncMessageRead { @objc public func buildIgnoringErrors() -> SSKProtoSyncMessageRead? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -2991,7 +3196,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -3044,7 +3253,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoSyncMessageConfiguration { @objc public func buildIgnoringErrors() -> SSKProtoSyncMessageConfiguration? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -3068,7 +3281,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -3151,7 +3368,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoSyncMessage { @objc public func buildIgnoringErrors() -> SSKProtoSyncMessage? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -3231,7 +3452,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -3375,7 +3600,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoAttachmentPointer { @objc public func buildIgnoringErrors() -> SSKProtoAttachmentPointer? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -3474,7 +3703,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -3577,7 +3810,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoGroupContext { @objc public func buildIgnoringErrors() -> SSKProtoGroupContext? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -3623,7 +3860,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -3686,7 +3927,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoContactDetailsAvatar { @objc public func buildIgnoringErrors() -> SSKProtoContactDetailsAvatar? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -3720,7 +3965,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -3789,7 +4038,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoContactDetails { @objc public func buildIgnoringErrors() -> SSKProtoContactDetails? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -3868,7 +4121,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -3931,7 +4188,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoGroupDetailsAvatar { @objc public func buildIgnoringErrors() -> SSKProtoGroupDetailsAvatar? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -3965,7 +4226,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }
@ -4040,7 +4305,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SSKProtoGroupDetails { @objc public func buildIgnoringErrors() -> SSKProtoGroupDetails? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build() return try! self.build()
} }
@ -4106,7 +4375,11 @@ public enum SSKProtoError: Error {
} }
// NOTE: This method is intended for debugging purposes only. // NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data { @objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData() return try! self.serializedData()
} }

View File

@ -8,6 +8,7 @@ import Foundation
public enum SignalIOSProtoError: Error { public enum SignalIOSProtoError: Error {
case invalidProtobuf(description: String) case invalidProtobuf(description: String)
case unsafeProtobuf(description: String)
} }
// MARK: - SignalIOSProtoBackupSnapshotBackupEntity // MARK: - SignalIOSProtoBackupSnapshotBackupEntity
@ -60,6 +61,15 @@ public enum SignalIOSProtoError: Error {
proto.entityData = valueParam proto.entityData = valueParam
} }
// NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SignalIOSProtoBackupSnapshotBackupEntity? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build()
}
@objc public func build() throws -> SignalIOSProtoBackupSnapshotBackupEntity { @objc public func build() throws -> SignalIOSProtoBackupSnapshotBackupEntity {
let wrapper = try SignalIOSProtoBackupSnapshotBackupEntity.parseProto(proto) let wrapper = try SignalIOSProtoBackupSnapshotBackupEntity.parseProto(proto)
return wrapper return wrapper
@ -69,6 +79,7 @@ public enum SignalIOSProtoError: Error {
fileprivate let proto: IOSProtos_BackupSnapshot.BackupEntity fileprivate let proto: IOSProtos_BackupSnapshot.BackupEntity
@objc public let type: SignalIOSProtoBackupSnapshotBackupEntityType @objc public let type: SignalIOSProtoBackupSnapshotBackupEntityType
@objc public let entityData: Data @objc public let entityData: Data
private init(proto: IOSProtos_BackupSnapshot.BackupEntity, private init(proto: IOSProtos_BackupSnapshot.BackupEntity,
@ -79,6 +90,15 @@ public enum SignalIOSProtoError: Error {
self.entityData = entityData self.entityData = entityData
} }
// NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData()
}
@objc @objc
public func serializedData() throws -> Data { public func serializedData() throws -> Data {
return try self.proto.serializedData() return try self.proto.serializedData()
@ -129,6 +149,23 @@ public enum SignalIOSProtoError: Error {
proto.entity = items proto.entity = items
} }
@objc public func setEntity(_ wrappedItems: [SignalIOSProtoBackupSnapshotBackupEntity]) {
var unwrappedItems = [IOSProtos_BackupSnapshot.BackupEntity]()
for wrappedItem in wrappedItems {
unwrappedItems.append(wrappedItem.proto)
}
proto.entity = unwrappedItems
}
// NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> SignalIOSProtoBackupSnapshot? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build()
}
@objc public func build() throws -> SignalIOSProtoBackupSnapshot { @objc public func build() throws -> SignalIOSProtoBackupSnapshot {
let wrapper = try SignalIOSProtoBackupSnapshot.parseProto(proto) let wrapper = try SignalIOSProtoBackupSnapshot.parseProto(proto)
return wrapper return wrapper
@ -145,6 +182,15 @@ public enum SignalIOSProtoError: Error {
self.entity = entity self.entity = entity
} }
// NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData()
}
@objc @objc
public func serializedData() throws -> Data { public func serializedData() throws -> Data {
return try self.proto.serializedData() return try self.proto.serializedData()

View File

@ -8,6 +8,7 @@ import Foundation
public enum WebSocketProtoError: Error { public enum WebSocketProtoError: Error {
case invalidProtobuf(description: String) case invalidProtobuf(description: String)
case unsafeProtobuf(description: String)
} }
// MARK: - WebSocketProtoWebSocketRequestMessage // MARK: - WebSocketProtoWebSocketRequestMessage
@ -40,10 +41,27 @@ public enum WebSocketProtoError: Error {
proto.headers = items proto.headers = items
} }
@objc public func setHeaders(_ wrappedItems: [String]) {
var unwrappedItems = [String]()
for wrappedItem in wrappedItems {
unwrappedItems.append(wrappedItem)
}
proto.headers = unwrappedItems
}
@objc public func setRequestID(_ valueParam: UInt64) { @objc public func setRequestID(_ valueParam: UInt64) {
proto.requestID = valueParam proto.requestID = valueParam
} }
// NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> WebSocketProtoWebSocketRequestMessage? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build()
}
@objc public func build() throws -> WebSocketProtoWebSocketRequestMessage { @objc public func build() throws -> WebSocketProtoWebSocketRequestMessage {
let wrapper = try WebSocketProtoWebSocketRequestMessage.parseProto(proto) let wrapper = try WebSocketProtoWebSocketRequestMessage.parseProto(proto)
return wrapper return wrapper
@ -53,7 +71,9 @@ public enum WebSocketProtoError: Error {
fileprivate let proto: WebSocketProtos_WebSocketRequestMessage fileprivate let proto: WebSocketProtos_WebSocketRequestMessage
@objc public let verb: String @objc public let verb: String
@objc public let path: String @objc public let path: String
@objc public let requestID: UInt64 @objc public let requestID: UInt64
@objc public var body: Data? { @objc public var body: Data? {
@ -80,6 +100,15 @@ public enum WebSocketProtoError: Error {
self.requestID = requestID self.requestID = requestID
} }
// NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData()
}
@objc @objc
public func serializedData() throws -> Data { public func serializedData() throws -> Data {
return try self.proto.serializedData() return try self.proto.serializedData()
@ -148,10 +177,27 @@ public enum WebSocketProtoError: Error {
proto.headers = items proto.headers = items
} }
@objc public func setHeaders(_ wrappedItems: [String]) {
var unwrappedItems = [String]()
for wrappedItem in wrappedItems {
unwrappedItems.append(wrappedItem)
}
proto.headers = unwrappedItems
}
@objc public func setBody(_ valueParam: Data) { @objc public func setBody(_ valueParam: Data) {
proto.body = valueParam proto.body = valueParam
} }
// NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> WebSocketProtoWebSocketResponseMessage? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build()
}
@objc public func build() throws -> WebSocketProtoWebSocketResponseMessage { @objc public func build() throws -> WebSocketProtoWebSocketResponseMessage {
let wrapper = try WebSocketProtoWebSocketResponseMessage.parseProto(proto) let wrapper = try WebSocketProtoWebSocketResponseMessage.parseProto(proto)
return wrapper return wrapper
@ -161,7 +207,9 @@ public enum WebSocketProtoError: Error {
fileprivate let proto: WebSocketProtos_WebSocketResponseMessage fileprivate let proto: WebSocketProtos_WebSocketResponseMessage
@objc public let requestID: UInt64 @objc public let requestID: UInt64
@objc public let status: UInt32 @objc public let status: UInt32
@objc public let body: Data @objc public let body: Data
@objc public var message: String? { @objc public var message: String? {
@ -188,6 +236,15 @@ public enum WebSocketProtoError: Error {
self.body = body self.body = body
} }
// NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData()
}
@objc @objc
public func serializedData() throws -> Data { public func serializedData() throws -> Data {
return try self.proto.serializedData() return try self.proto.serializedData()
@ -274,6 +331,15 @@ public enum WebSocketProtoError: Error {
proto.response = valueParam.proto proto.response = valueParam.proto
} }
// NOTE: This method is intended for debugging purposes only.
@objc public func buildIgnoringErrors() -> WebSocketProtoWebSocketMessage? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.build()
}
@objc public func build() throws -> WebSocketProtoWebSocketMessage { @objc public func build() throws -> WebSocketProtoWebSocketMessage {
let wrapper = try WebSocketProtoWebSocketMessage.parseProto(proto) let wrapper = try WebSocketProtoWebSocketMessage.parseProto(proto)
return wrapper return wrapper
@ -283,8 +349,16 @@ public enum WebSocketProtoError: Error {
fileprivate let proto: WebSocketProtos_WebSocketMessage fileprivate let proto: WebSocketProtos_WebSocketMessage
@objc public let type: WebSocketProtoWebSocketMessageType @objc public let type: WebSocketProtoWebSocketMessageType
@objc public let request: WebSocketProtoWebSocketRequestMessage? @objc public let request: WebSocketProtoWebSocketRequestMessage?
@objc public var hasRequest: Bool {
return proto.hasRequest
}
@objc public let response: WebSocketProtoWebSocketResponseMessage? @objc public let response: WebSocketProtoWebSocketResponseMessage?
@objc public var hasResponse: Bool {
return proto.hasResponse
}
private init(proto: WebSocketProtos_WebSocketMessage, private init(proto: WebSocketProtos_WebSocketMessage,
type: WebSocketProtoWebSocketMessageType, type: WebSocketProtoWebSocketMessageType,
@ -296,6 +370,15 @@ public enum WebSocketProtoError: Error {
self.response = response self.response = response
} }
// NOTE: This method is intended for debugging purposes only.
@objc public func serializedDataIgnoringErrors() -> Data? {
guard _isDebugAssertConfiguration() else {
return nil
}
return try! self.serializedData()
}
@objc @objc
public func serializedData() throws -> Data { public func serializedData() throws -> Data {
return try self.proto.serializedData() return try self.proto.serializedData()

View File

@ -15,7 +15,7 @@ typedef NS_ENUM(NSUInteger, OWSVerificationState) {
@class SSKProtoVerified; @class SSKProtoVerified;
NSString *OWSVerificationStateToString(OWSVerificationState verificationState); NSString *OWSVerificationStateToString(OWSVerificationState verificationState);
SSKProtoVerified *_Nullable BuildVerifiedProto(NSString *destinationRecipientId, SSKProtoVerified *_Nullable BuildVerifiedProtoWithRecipientId(NSString *destinationRecipientId,
NSData *identityKey, NSData *identityKey,
OWSVerificationState verificationState, OWSVerificationState verificationState,
NSUInteger paddingBytesLength); NSUInteger paddingBytesLength);

View File

@ -36,7 +36,7 @@ SSKProtoVerifiedState OWSVerificationStateToProtoState(OWSVerificationState veri
} }
} }
SSKProtoVerified *_Nullable BuildVerifiedProto(NSString *destinationRecipientId, SSKProtoVerified *_Nullable BuildVerifiedProtoWithRecipientId(NSString *destinationRecipientId,
NSData *identityKey, NSData *identityKey,
OWSVerificationState verificationState, OWSVerificationState verificationState,
NSUInteger paddingBytesLength) NSUInteger paddingBytesLength)
@ -64,7 +64,7 @@ SSKProtoVerified *_Nullable BuildVerifiedProto(NSString *destinationRecipientId,
NSError *error; NSError *error;
SSKProtoVerified *_Nullable verifiedProto = [verifiedBuilder buildAndReturnError:&error]; SSKProtoVerified *_Nullable verifiedProto = [verifiedBuilder buildAndReturnError:&error];
if (error || !verifiedProto) { if (error || !verifiedProto) {
OWSCFail(@"%@ could not build protobuf: %@", @"[BuildVerifiedProto]", error); OWSCFail(@"%@ could not build protobuf: %@", @"[BuildVerifiedProtoWithRecipientId]", error);
return nil; return nil;
} }
return verifiedProto; return verifiedProto;