diff --git a/Example/TSKitiOSTestApp/Podfile.lock b/Example/TSKitiOSTestApp/Podfile.lock
index cd030d1307..883077603a 100644
--- a/Example/TSKitiOSTestApp/Podfile.lock
+++ b/Example/TSKitiOSTestApp/Podfile.lock
@@ -35,7 +35,7 @@ PODS:
- ProtocolBuffers (1.9.10)
- Reachability (3.2)
- SAMKeychain (1.5.0)
- - SignalServiceKit (0.0.8):
+ - SignalServiceKit (0.1.0):
- '25519'
- AFNetworking
- AxolotlKit
@@ -130,7 +130,7 @@ SPEC CHECKSUMS:
ProtocolBuffers: d088180c10072b3d24a9939a6314b7b9bcc2340b
Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96
SAMKeychain: 1fc9ae02f576365395758b12888c84704eebc423
- SignalServiceKit: 9bdacbb1cb046836e9d601273fa4fad934ad3ecb
+ SignalServiceKit: 84781a0e45a7eead501a3e35065a1b32dcbbe0ac
SocketRocket: 3f77ec2104cc113add553f817ad90a77114f5d43
SQLCipher: 4c768761421736a247ed6cf412d9045615d53dff
TwistedOakCollapsingFutures: f359b90f203e9ab13dfb92c9ff41842a7fe1cd0c
diff --git a/SignalServiceKit.podspec b/SignalServiceKit.podspec
index 5f3c7ec4d4..29602d1dc3 100644
--- a/SignalServiceKit.podspec
+++ b/SignalServiceKit.podspec
@@ -8,7 +8,7 @@
Pod::Spec.new do |s|
s.name = "SignalServiceKit"
- s.version = "0.0.8"
+ s.version = "0.1.0"
s.summary = "An Objective-C library for communicating with the Signal messaging service."
s.description = <<-DESC
@@ -37,9 +37,6 @@ An Objective-C library for communicating with the Signal messaging service.
s.dependency 'AxolotlKit'
s.dependency 'Mantle'
s.dependency 'YapDatabase/SQLCipher'
- # NOTE: we're using a custom fork of SocketRocket to support our certificate
- # pinning policy.
- # see Example/TSKitiOSTestApp/Podfile for details
s.dependency 'SocketRocket'
s.dependency 'libPhoneNumber-iOS'
s.dependency 'SAMKeychain'
diff --git a/protobuf/Makefile b/protobuf/Makefile
new file mode 100644
index 0000000000..2879531e2a
--- /dev/null
+++ b/protobuf/Makefile
@@ -0,0 +1,9 @@
+# Assumes you've installed protobug-objc
+# see: https://github.com/alexeyxo/protobuf-objc
+signal_service_proto:
+ protoc --objc_out=../src/Messages/ \
+ --plugin=/usr/local/bin/proto-gen-objc \
+ --proto_path="${HOME}/src/WhisperSystems/protobuf-objc/src/compiler/" \
+ --proto_path="${HOME}/src/WhisperSystems/protobuf-objc/src/compiler/google/protobuf/" \
+ --proto_path='./' \
+ OWSSignalServiceProtos.proto
diff --git a/protobuf/TextSecure.proto b/protobuf/OWSSignalServiceProtos.proto
similarity index 79%
rename from protobuf/TextSecure.proto
rename to protobuf/OWSSignalServiceProtos.proto
index 91514c4bc9..8138837404 100644
--- a/protobuf/TextSecure.proto
+++ b/protobuf/OWSSignalServiceProtos.proto
@@ -1,7 +1,10 @@
-package textsecure;
+package signalservice;
-option java_package = "org.whispersystems.textsecure.internal.push";
-option java_outer_classname = "TextSecureProtos";
+option java_package = "org.whispersystems.signalservice.internal.push";
+option java_outer_classname = "SignalServiceProtos";
+
+import "objectivec-descriptor.proto";
+option (google.protobuf.objectivec_file_options).class_prefix = "OWSSignalServiceProtos";
message Envelope {
enum Type {
@@ -62,10 +65,16 @@ message SyncMessage {
optional Type type = 1;
}
+ message Read {
+ optional string sender = 1;
+ optional uint64 timestamp = 2;
+ }
+
optional Sent sent = 1;
optional Contacts contacts = 2;
optional Groups groups = 3;
optional Request request = 4;
+ repeated Read read = 5;
}
message AttachmentPointer {
@@ -107,8 +116,9 @@ message GroupDetails {
optional uint32 length = 2;
}
- optional bytes id = 1;
- optional string name = 2;
- repeated string members = 3;
- optional Avatar avatar = 4;
+ optional bytes id = 1;
+ optional string name = 2;
+ repeated string members = 3;
+ optional Avatar avatar = 4;
+ optional bool active = 5 [default = true];
}
diff --git a/protobuf/Provisioning.pb.h b/protobuf/Provisioning.pb.h
deleted file mode 100644
index 3528c36979..0000000000
--- a/protobuf/Provisioning.pb.h
+++ /dev/null
@@ -1,165 +0,0 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-
-#import "ProtocolBuffers.h"
-
-// @@protoc_insertion_point(imports)
-
-@class ProvisionEnvelope;
-@class ProvisionEnvelopeBuilder;
-@class ProvisionMessage;
-@class ProvisionMessageBuilder;
-#ifndef __has_feature
- #define __has_feature(x) 0 // Compatibility with non-clang compilers.
-#endif // __has_feature
-
-#ifndef NS_RETURNS_NOT_RETAINED
- #if __has_feature(attribute_ns_returns_not_retained)
- #define NS_RETURNS_NOT_RETAINED __attribute__((ns_returns_not_retained))
- #else
- #define NS_RETURNS_NOT_RETAINED
- #endif
-#endif
-
-
-@interface ProvisioningRoot : NSObject {
-}
-+ (PBExtensionRegistry*) extensionRegistry;
-+ (void) registerAllExtensions:(PBMutableExtensionRegistry*) registry;
-@end
-
-@interface ProvisionEnvelope : PBGeneratedMessage {
-@private
- BOOL hasPublicKey_:1;
- BOOL hasBody_:1;
- NSData* publicKey;
- NSData* body;
-}
-- (BOOL) hasPublicKey;
-- (BOOL) hasBody;
-@property (readonly, strong) NSData* publicKey;
-@property (readonly, strong) NSData* body;
-
-+ (ProvisionEnvelope*) defaultInstance;
-- (ProvisionEnvelope*) defaultInstance;
-
-- (BOOL) isInitialized;
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
-- (ProvisionEnvelopeBuilder*) builder;
-+ (ProvisionEnvelopeBuilder*) builder;
-+ (ProvisionEnvelopeBuilder*) builderWithPrototype:(ProvisionEnvelope*) prototype;
-- (ProvisionEnvelopeBuilder*) toBuilder;
-
-+ (ProvisionEnvelope*) parseFromData:(NSData*) data;
-+ (ProvisionEnvelope*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (ProvisionEnvelope*) parseFromInputStream:(NSInputStream*) input;
-+ (ProvisionEnvelope*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (ProvisionEnvelope*) parseFromCodedInputStream:(PBCodedInputStream*) input;
-+ (ProvisionEnvelope*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-@end
-
-@interface ProvisionEnvelopeBuilder : PBGeneratedMessageBuilder {
-@private
- ProvisionEnvelope* result;
-}
-
-- (ProvisionEnvelope*) defaultInstance;
-
-- (ProvisionEnvelopeBuilder*) clear;
-- (ProvisionEnvelopeBuilder*) clone;
-
-- (ProvisionEnvelope*) build;
-- (ProvisionEnvelope*) buildPartial;
-
-- (ProvisionEnvelopeBuilder*) mergeFrom:(ProvisionEnvelope*) other;
-- (ProvisionEnvelopeBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
-- (ProvisionEnvelopeBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-
-- (BOOL) hasPublicKey;
-- (NSData*) publicKey;
-- (ProvisionEnvelopeBuilder*) setPublicKey:(NSData*) value;
-- (ProvisionEnvelopeBuilder*) clearPublicKey;
-
-- (BOOL) hasBody;
-- (NSData*) body;
-- (ProvisionEnvelopeBuilder*) setBody:(NSData*) value;
-- (ProvisionEnvelopeBuilder*) clearBody;
-@end
-
-@interface ProvisionMessage : PBGeneratedMessage {
-@private
- BOOL hasNumber_:1;
- BOOL hasProvisioningCode_:1;
- BOOL hasIdentityKeyPublic_:1;
- BOOL hasIdentityKeyPrivate_:1;
- NSString* number;
- NSString* provisioningCode;
- NSData* identityKeyPublic;
- NSData* identityKeyPrivate;
-}
-- (BOOL) hasIdentityKeyPublic;
-- (BOOL) hasIdentityKeyPrivate;
-- (BOOL) hasNumber;
-- (BOOL) hasProvisioningCode;
-@property (readonly, strong) NSData* identityKeyPublic;
-@property (readonly, strong) NSData* identityKeyPrivate;
-@property (readonly, strong) NSString* number;
-@property (readonly, strong) NSString* provisioningCode;
-
-+ (ProvisionMessage*) defaultInstance;
-- (ProvisionMessage*) defaultInstance;
-
-- (BOOL) isInitialized;
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
-- (ProvisionMessageBuilder*) builder;
-+ (ProvisionMessageBuilder*) builder;
-+ (ProvisionMessageBuilder*) builderWithPrototype:(ProvisionMessage*) prototype;
-- (ProvisionMessageBuilder*) toBuilder;
-
-+ (ProvisionMessage*) parseFromData:(NSData*) data;
-+ (ProvisionMessage*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (ProvisionMessage*) parseFromInputStream:(NSInputStream*) input;
-+ (ProvisionMessage*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (ProvisionMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input;
-+ (ProvisionMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-@end
-
-@interface ProvisionMessageBuilder : PBGeneratedMessageBuilder {
-@private
- ProvisionMessage* result;
-}
-
-- (ProvisionMessage*) defaultInstance;
-
-- (ProvisionMessageBuilder*) clear;
-- (ProvisionMessageBuilder*) clone;
-
-- (ProvisionMessage*) build;
-- (ProvisionMessage*) buildPartial;
-
-- (ProvisionMessageBuilder*) mergeFrom:(ProvisionMessage*) other;
-- (ProvisionMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
-- (ProvisionMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-
-- (BOOL) hasIdentityKeyPublic;
-- (NSData*) identityKeyPublic;
-- (ProvisionMessageBuilder*) setIdentityKeyPublic:(NSData*) value;
-- (ProvisionMessageBuilder*) clearIdentityKeyPublic;
-
-- (BOOL) hasIdentityKeyPrivate;
-- (NSData*) identityKeyPrivate;
-- (ProvisionMessageBuilder*) setIdentityKeyPrivate:(NSData*) value;
-- (ProvisionMessageBuilder*) clearIdentityKeyPrivate;
-
-- (BOOL) hasNumber;
-- (NSString*) number;
-- (ProvisionMessageBuilder*) setNumber:(NSString*) value;
-- (ProvisionMessageBuilder*) clearNumber;
-
-- (BOOL) hasProvisioningCode;
-- (NSString*) provisioningCode;
-- (ProvisionMessageBuilder*) setProvisioningCode:(NSString*) value;
-- (ProvisionMessageBuilder*) clearProvisioningCode;
-@end
-
-
-// @@protoc_insertion_point(global_scope)
diff --git a/protobuf/Provisioning.pb.m b/protobuf/Provisioning.pb.m
deleted file mode 100644
index ee4b939243..0000000000
--- a/protobuf/Provisioning.pb.m
+++ /dev/null
@@ -1,608 +0,0 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-
-#import "Provisioning.pb.h"
-// @@protoc_insertion_point(imports)
-
-@implementation ProvisioningRoot
-static PBExtensionRegistry* extensionRegistry = nil;
-+ (PBExtensionRegistry*) extensionRegistry {
- return extensionRegistry;
-}
-
-+ (void) initialize {
- if (self == [ProvisioningRoot class]) {
- PBMutableExtensionRegistry* registry = [PBMutableExtensionRegistry registry];
- [self registerAllExtensions:registry];
- extensionRegistry = registry;
- }
-}
-+ (void) registerAllExtensions:(PBMutableExtensionRegistry*) registry {
-}
-@end
-
-@interface ProvisionEnvelope ()
-@property (strong) NSData* publicKey;
-@property (strong) NSData* body;
-@end
-
-@implementation ProvisionEnvelope
-
-- (BOOL) hasPublicKey {
- return !!hasPublicKey_;
-}
-- (void) setHasPublicKey:(BOOL) value_ {
- hasPublicKey_ = !!value_;
-}
-@synthesize publicKey;
-- (BOOL) hasBody {
- return !!hasBody_;
-}
-- (void) setHasBody:(BOOL) value_ {
- hasBody_ = !!value_;
-}
-@synthesize body;
-- (id) init {
- if ((self = [super init])) {
- self.publicKey = [NSData data];
- self.body = [NSData data];
- }
- return self;
-}
-static ProvisionEnvelope* defaultProvisionEnvelopeInstance = nil;
-+ (void) initialize {
- if (self == [ProvisionEnvelope class]) {
- defaultProvisionEnvelopeInstance = [[ProvisionEnvelope alloc] init];
- }
-}
-+ (ProvisionEnvelope*) defaultInstance {
- return defaultProvisionEnvelopeInstance;
-}
-- (ProvisionEnvelope*) defaultInstance {
- return defaultProvisionEnvelopeInstance;
-}
-- (BOOL) isInitialized {
- return YES;
-}
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
- if (self.hasPublicKey) {
- [output writeData:1 value:self.publicKey];
- }
- if (self.hasBody) {
- [output writeData:2 value:self.body];
- }
- [self.unknownFields writeToCodedOutputStream:output];
-}
-- (SInt32) serializedSize {
- __block SInt32 size_ = memoizedSerializedSize;
- if (size_ != -1) {
- return size_;
- }
-
- size_ = 0;
- if (self.hasPublicKey) {
- size_ += computeDataSize(1, self.publicKey);
- }
- if (self.hasBody) {
- size_ += computeDataSize(2, self.body);
- }
- size_ += self.unknownFields.serializedSize;
- memoizedSerializedSize = size_;
- return size_;
-}
-+ (ProvisionEnvelope*) parseFromData:(NSData*) data {
- return (ProvisionEnvelope*)[[[ProvisionEnvelope builder] mergeFromData:data] build];
-}
-+ (ProvisionEnvelope*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (ProvisionEnvelope*)[[[ProvisionEnvelope builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
-}
-+ (ProvisionEnvelope*) parseFromInputStream:(NSInputStream*) input {
- return (ProvisionEnvelope*)[[[ProvisionEnvelope builder] mergeFromInputStream:input] build];
-}
-+ (ProvisionEnvelope*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (ProvisionEnvelope*)[[[ProvisionEnvelope builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (ProvisionEnvelope*) parseFromCodedInputStream:(PBCodedInputStream*) input {
- return (ProvisionEnvelope*)[[[ProvisionEnvelope builder] mergeFromCodedInputStream:input] build];
-}
-+ (ProvisionEnvelope*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (ProvisionEnvelope*)[[[ProvisionEnvelope builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (ProvisionEnvelopeBuilder*) builder {
- return [[ProvisionEnvelopeBuilder alloc] init];
-}
-+ (ProvisionEnvelopeBuilder*) builderWithPrototype:(ProvisionEnvelope*) prototype {
- return [[ProvisionEnvelope builder] mergeFrom:prototype];
-}
-- (ProvisionEnvelopeBuilder*) builder {
- return [ProvisionEnvelope builder];
-}
-- (ProvisionEnvelopeBuilder*) toBuilder {
- return [ProvisionEnvelope builderWithPrototype:self];
-}
-- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
- if (self.hasPublicKey) {
- [output appendFormat:@"%@%@: %@\n", indent, @"publicKey", self.publicKey];
- }
- if (self.hasBody) {
- [output appendFormat:@"%@%@: %@\n", indent, @"body", self.body];
- }
- [self.unknownFields writeDescriptionTo:output withIndent:indent];
-}
-- (BOOL) isEqual:(id)other {
- if (other == self) {
- return YES;
- }
- if (![other isKindOfClass:[ProvisionEnvelope class]]) {
- return NO;
- }
- ProvisionEnvelope *otherMessage = other;
- return
- self.hasPublicKey == otherMessage.hasPublicKey &&
- (!self.hasPublicKey || [self.publicKey isEqual:otherMessage.publicKey]) &&
- self.hasBody == otherMessage.hasBody &&
- (!self.hasBody || [self.body isEqual:otherMessage.body]) &&
- (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
-}
-- (NSUInteger) hash {
- __block NSUInteger hashCode = 7;
- if (self.hasPublicKey) {
- hashCode = hashCode * 31 + [self.publicKey hash];
- }
- if (self.hasBody) {
- hashCode = hashCode * 31 + [self.body hash];
- }
- hashCode = hashCode * 31 + [self.unknownFields hash];
- return hashCode;
-}
-@end
-
-@interface ProvisionEnvelopeBuilder()
-@property (strong) ProvisionEnvelope* result;
-@end
-
-@implementation ProvisionEnvelopeBuilder
-@synthesize result;
-- (id) init {
- if ((self = [super init])) {
- self.result = [[ProvisionEnvelope alloc] init];
- }
- return self;
-}
-- (PBGeneratedMessage*) internalGetResult {
- return result;
-}
-- (ProvisionEnvelopeBuilder*) clear {
- self.result = [[ProvisionEnvelope alloc] init];
- return self;
-}
-- (ProvisionEnvelopeBuilder*) clone {
- return [ProvisionEnvelope builderWithPrototype:result];
-}
-- (ProvisionEnvelope*) defaultInstance {
- return [ProvisionEnvelope defaultInstance];
-}
-- (ProvisionEnvelope*) build {
- [self checkInitialized];
- return [self buildPartial];
-}
-- (ProvisionEnvelope*) buildPartial {
- ProvisionEnvelope* returnMe = result;
- self.result = nil;
- return returnMe;
-}
-- (ProvisionEnvelopeBuilder*) mergeFrom:(ProvisionEnvelope*) other {
- if (other == [ProvisionEnvelope defaultInstance]) {
- return self;
- }
- if (other.hasPublicKey) {
- [self setPublicKey:other.publicKey];
- }
- if (other.hasBody) {
- [self setBody:other.body];
- }
- [self mergeUnknownFields:other.unknownFields];
- return self;
-}
-- (ProvisionEnvelopeBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
- return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
-}
-- (ProvisionEnvelopeBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
- while (YES) {
- SInt32 tag = [input readTag];
- switch (tag) {
- case 0:
- [self setUnknownFields:[unknownFields build]];
- return self;
- default: {
- if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
- [self setUnknownFields:[unknownFields build]];
- return self;
- }
- break;
- }
- case 10: {
- [self setPublicKey:[input readData]];
- break;
- }
- case 18: {
- [self setBody:[input readData]];
- break;
- }
- }
- }
-}
-- (BOOL) hasPublicKey {
- return result.hasPublicKey;
-}
-- (NSData*) publicKey {
- return result.publicKey;
-}
-- (ProvisionEnvelopeBuilder*) setPublicKey:(NSData*) value {
- result.hasPublicKey = YES;
- result.publicKey = value;
- return self;
-}
-- (ProvisionEnvelopeBuilder*) clearPublicKey {
- result.hasPublicKey = NO;
- result.publicKey = [NSData data];
- return self;
-}
-- (BOOL) hasBody {
- return result.hasBody;
-}
-- (NSData*) body {
- return result.body;
-}
-- (ProvisionEnvelopeBuilder*) setBody:(NSData*) value {
- result.hasBody = YES;
- result.body = value;
- return self;
-}
-- (ProvisionEnvelopeBuilder*) clearBody {
- result.hasBody = NO;
- result.body = [NSData data];
- return self;
-}
-@end
-
-@interface ProvisionMessage ()
-@property (strong) NSData* identityKeyPublic;
-@property (strong) NSData* identityKeyPrivate;
-@property (strong) NSString* number;
-@property (strong) NSString* provisioningCode;
-@end
-
-@implementation ProvisionMessage
-
-- (BOOL) hasIdentityKeyPublic {
- return !!hasIdentityKeyPublic_;
-}
-- (void) setHasIdentityKeyPublic:(BOOL) value_ {
- hasIdentityKeyPublic_ = !!value_;
-}
-@synthesize identityKeyPublic;
-- (BOOL) hasIdentityKeyPrivate {
- return !!hasIdentityKeyPrivate_;
-}
-- (void) setHasIdentityKeyPrivate:(BOOL) value_ {
- hasIdentityKeyPrivate_ = !!value_;
-}
-@synthesize identityKeyPrivate;
-- (BOOL) hasNumber {
- return !!hasNumber_;
-}
-- (void) setHasNumber:(BOOL) value_ {
- hasNumber_ = !!value_;
-}
-@synthesize number;
-- (BOOL) hasProvisioningCode {
- return !!hasProvisioningCode_;
-}
-- (void) setHasProvisioningCode:(BOOL) value_ {
- hasProvisioningCode_ = !!value_;
-}
-@synthesize provisioningCode;
-- (id) init {
- if ((self = [super init])) {
- self.identityKeyPublic = [NSData data];
- self.identityKeyPrivate = [NSData data];
- self.number = @"";
- self.provisioningCode = @"";
- }
- return self;
-}
-static ProvisionMessage* defaultProvisionMessageInstance = nil;
-+ (void) initialize {
- if (self == [ProvisionMessage class]) {
- defaultProvisionMessageInstance = [[ProvisionMessage alloc] init];
- }
-}
-+ (ProvisionMessage*) defaultInstance {
- return defaultProvisionMessageInstance;
-}
-- (ProvisionMessage*) defaultInstance {
- return defaultProvisionMessageInstance;
-}
-- (BOOL) isInitialized {
- return YES;
-}
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
- if (self.hasIdentityKeyPublic) {
- [output writeData:1 value:self.identityKeyPublic];
- }
- if (self.hasIdentityKeyPrivate) {
- [output writeData:2 value:self.identityKeyPrivate];
- }
- if (self.hasNumber) {
- [output writeString:3 value:self.number];
- }
- if (self.hasProvisioningCode) {
- [output writeString:4 value:self.provisioningCode];
- }
- [self.unknownFields writeToCodedOutputStream:output];
-}
-- (SInt32) serializedSize {
- __block SInt32 size_ = memoizedSerializedSize;
- if (size_ != -1) {
- return size_;
- }
-
- size_ = 0;
- if (self.hasIdentityKeyPublic) {
- size_ += computeDataSize(1, self.identityKeyPublic);
- }
- if (self.hasIdentityKeyPrivate) {
- size_ += computeDataSize(2, self.identityKeyPrivate);
- }
- if (self.hasNumber) {
- size_ += computeStringSize(3, self.number);
- }
- if (self.hasProvisioningCode) {
- size_ += computeStringSize(4, self.provisioningCode);
- }
- size_ += self.unknownFields.serializedSize;
- memoizedSerializedSize = size_;
- return size_;
-}
-+ (ProvisionMessage*) parseFromData:(NSData*) data {
- return (ProvisionMessage*)[[[ProvisionMessage builder] mergeFromData:data] build];
-}
-+ (ProvisionMessage*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (ProvisionMessage*)[[[ProvisionMessage builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
-}
-+ (ProvisionMessage*) parseFromInputStream:(NSInputStream*) input {
- return (ProvisionMessage*)[[[ProvisionMessage builder] mergeFromInputStream:input] build];
-}
-+ (ProvisionMessage*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (ProvisionMessage*)[[[ProvisionMessage builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (ProvisionMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input {
- return (ProvisionMessage*)[[[ProvisionMessage builder] mergeFromCodedInputStream:input] build];
-}
-+ (ProvisionMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (ProvisionMessage*)[[[ProvisionMessage builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (ProvisionMessageBuilder*) builder {
- return [[ProvisionMessageBuilder alloc] init];
-}
-+ (ProvisionMessageBuilder*) builderWithPrototype:(ProvisionMessage*) prototype {
- return [[ProvisionMessage builder] mergeFrom:prototype];
-}
-- (ProvisionMessageBuilder*) builder {
- return [ProvisionMessage builder];
-}
-- (ProvisionMessageBuilder*) toBuilder {
- return [ProvisionMessage builderWithPrototype:self];
-}
-- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
- if (self.hasIdentityKeyPublic) {
- [output appendFormat:@"%@%@: %@\n", indent, @"identityKeyPublic", self.identityKeyPublic];
- }
- if (self.hasIdentityKeyPrivate) {
- [output appendFormat:@"%@%@: %@\n", indent, @"identityKeyPrivate", self.identityKeyPrivate];
- }
- if (self.hasNumber) {
- [output appendFormat:@"%@%@: %@\n", indent, @"number", self.number];
- }
- if (self.hasProvisioningCode) {
- [output appendFormat:@"%@%@: %@\n", indent, @"provisioningCode", self.provisioningCode];
- }
- [self.unknownFields writeDescriptionTo:output withIndent:indent];
-}
-- (BOOL) isEqual:(id)other {
- if (other == self) {
- return YES;
- }
- if (![other isKindOfClass:[ProvisionMessage class]]) {
- return NO;
- }
- ProvisionMessage *otherMessage = other;
- return
- self.hasIdentityKeyPublic == otherMessage.hasIdentityKeyPublic &&
- (!self.hasIdentityKeyPublic || [self.identityKeyPublic isEqual:otherMessage.identityKeyPublic]) &&
- self.hasIdentityKeyPrivate == otherMessage.hasIdentityKeyPrivate &&
- (!self.hasIdentityKeyPrivate || [self.identityKeyPrivate isEqual:otherMessage.identityKeyPrivate]) &&
- self.hasNumber == otherMessage.hasNumber &&
- (!self.hasNumber || [self.number isEqual:otherMessage.number]) &&
- self.hasProvisioningCode == otherMessage.hasProvisioningCode &&
- (!self.hasProvisioningCode || [self.provisioningCode isEqual:otherMessage.provisioningCode]) &&
- (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
-}
-- (NSUInteger) hash {
- __block NSUInteger hashCode = 7;
- if (self.hasIdentityKeyPublic) {
- hashCode = hashCode * 31 + [self.identityKeyPublic hash];
- }
- if (self.hasIdentityKeyPrivate) {
- hashCode = hashCode * 31 + [self.identityKeyPrivate hash];
- }
- if (self.hasNumber) {
- hashCode = hashCode * 31 + [self.number hash];
- }
- if (self.hasProvisioningCode) {
- hashCode = hashCode * 31 + [self.provisioningCode hash];
- }
- hashCode = hashCode * 31 + [self.unknownFields hash];
- return hashCode;
-}
-@end
-
-@interface ProvisionMessageBuilder()
-@property (strong) ProvisionMessage* result;
-@end
-
-@implementation ProvisionMessageBuilder
-@synthesize result;
-- (id) init {
- if ((self = [super init])) {
- self.result = [[ProvisionMessage alloc] init];
- }
- return self;
-}
-- (PBGeneratedMessage*) internalGetResult {
- return result;
-}
-- (ProvisionMessageBuilder*) clear {
- self.result = [[ProvisionMessage alloc] init];
- return self;
-}
-- (ProvisionMessageBuilder*) clone {
- return [ProvisionMessage builderWithPrototype:result];
-}
-- (ProvisionMessage*) defaultInstance {
- return [ProvisionMessage defaultInstance];
-}
-- (ProvisionMessage*) build {
- [self checkInitialized];
- return [self buildPartial];
-}
-- (ProvisionMessage*) buildPartial {
- ProvisionMessage* returnMe = result;
- self.result = nil;
- return returnMe;
-}
-- (ProvisionMessageBuilder*) mergeFrom:(ProvisionMessage*) other {
- if (other == [ProvisionMessage defaultInstance]) {
- return self;
- }
- if (other.hasIdentityKeyPublic) {
- [self setIdentityKeyPublic:other.identityKeyPublic];
- }
- if (other.hasIdentityKeyPrivate) {
- [self setIdentityKeyPrivate:other.identityKeyPrivate];
- }
- if (other.hasNumber) {
- [self setNumber:other.number];
- }
- if (other.hasProvisioningCode) {
- [self setProvisioningCode:other.provisioningCode];
- }
- [self mergeUnknownFields:other.unknownFields];
- return self;
-}
-- (ProvisionMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
- return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
-}
-- (ProvisionMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
- while (YES) {
- SInt32 tag = [input readTag];
- switch (tag) {
- case 0:
- [self setUnknownFields:[unknownFields build]];
- return self;
- default: {
- if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
- [self setUnknownFields:[unknownFields build]];
- return self;
- }
- break;
- }
- case 10: {
- [self setIdentityKeyPublic:[input readData]];
- break;
- }
- case 18: {
- [self setIdentityKeyPrivate:[input readData]];
- break;
- }
- case 26: {
- [self setNumber:[input readString]];
- break;
- }
- case 34: {
- [self setProvisioningCode:[input readString]];
- break;
- }
- }
- }
-}
-- (BOOL) hasIdentityKeyPublic {
- return result.hasIdentityKeyPublic;
-}
-- (NSData*) identityKeyPublic {
- return result.identityKeyPublic;
-}
-- (ProvisionMessageBuilder*) setIdentityKeyPublic:(NSData*) value {
- result.hasIdentityKeyPublic = YES;
- result.identityKeyPublic = value;
- return self;
-}
-- (ProvisionMessageBuilder*) clearIdentityKeyPublic {
- result.hasIdentityKeyPublic = NO;
- result.identityKeyPublic = [NSData data];
- return self;
-}
-- (BOOL) hasIdentityKeyPrivate {
- return result.hasIdentityKeyPrivate;
-}
-- (NSData*) identityKeyPrivate {
- return result.identityKeyPrivate;
-}
-- (ProvisionMessageBuilder*) setIdentityKeyPrivate:(NSData*) value {
- result.hasIdentityKeyPrivate = YES;
- result.identityKeyPrivate = value;
- return self;
-}
-- (ProvisionMessageBuilder*) clearIdentityKeyPrivate {
- result.hasIdentityKeyPrivate = NO;
- result.identityKeyPrivate = [NSData data];
- return self;
-}
-- (BOOL) hasNumber {
- return result.hasNumber;
-}
-- (NSString*) number {
- return result.number;
-}
-- (ProvisionMessageBuilder*) setNumber:(NSString*) value {
- result.hasNumber = YES;
- result.number = value;
- return self;
-}
-- (ProvisionMessageBuilder*) clearNumber {
- result.hasNumber = NO;
- result.number = @"";
- return self;
-}
-- (BOOL) hasProvisioningCode {
- return result.hasProvisioningCode;
-}
-- (NSString*) provisioningCode {
- return result.provisioningCode;
-}
-- (ProvisionMessageBuilder*) setProvisioningCode:(NSString*) value {
- result.hasProvisioningCode = YES;
- result.provisioningCode = value;
- return self;
-}
-- (ProvisionMessageBuilder*) clearProvisioningCode {
- result.hasProvisioningCode = NO;
- result.provisioningCode = @"";
- return self;
-}
-@end
-
-
-// @@protoc_insertion_point(global_scope)
diff --git a/protobuf/Provisioning.proto b/protobuf/Provisioning.proto
deleted file mode 100644
index 776877c344..0000000000
--- a/protobuf/Provisioning.proto
+++ /dev/null
@@ -1,16 +0,0 @@
-package textsecure;
-
-option java_package = "org.whispersystems.textsecure.internal.push";
-option java_outer_classname = "ProvisioningProtos";
-
-message ProvisionEnvelope {
- optional bytes publicKey = 1;
- optional bytes body = 2; // Encrypted ProvisionMessage
-}
-
-message ProvisionMessage {
- optional bytes identityKeyPublic = 1;
- optional bytes identityKeyPrivate = 2;
- optional string number = 3;
- optional string provisioningCode = 4;
-}
diff --git a/protobuf/TextSecure.pb.h b/protobuf/TextSecure.pb.h
deleted file mode 100644
index ef9aa43047..0000000000
--- a/protobuf/TextSecure.pb.h
+++ /dev/null
@@ -1,1070 +0,0 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-
-#import "ProtocolBuffers.h"
-
-// @@protoc_insertion_point(imports)
-
-@class AttachmentPointer;
-@class AttachmentPointerBuilder;
-@class ContactDetails;
-@class ContactDetailsAvatar;
-@class ContactDetailsAvatarBuilder;
-@class ContactDetailsBuilder;
-@class Content;
-@class ContentBuilder;
-@class DataMessage;
-@class DataMessageBuilder;
-@class Envelope;
-@class EnvelopeBuilder;
-@class GroupContext;
-@class GroupContextBuilder;
-@class GroupDetails;
-@class GroupDetailsAvatar;
-@class GroupDetailsAvatarBuilder;
-@class GroupDetailsBuilder;
-@class SyncMessage;
-@class SyncMessageBuilder;
-@class SyncMessageContacts;
-@class SyncMessageContactsBuilder;
-@class SyncMessageGroups;
-@class SyncMessageGroupsBuilder;
-@class SyncMessageRequest;
-@class SyncMessageRequestBuilder;
-@class SyncMessageSent;
-@class SyncMessageSentBuilder;
-#ifndef __has_feature
- #define __has_feature(x) 0 // Compatibility with non-clang compilers.
-#endif // __has_feature
-
-#ifndef NS_RETURNS_NOT_RETAINED
- #if __has_feature(attribute_ns_returns_not_retained)
- #define NS_RETURNS_NOT_RETAINED __attribute__((ns_returns_not_retained))
- #else
- #define NS_RETURNS_NOT_RETAINED
- #endif
-#endif
-
-typedef enum {
- EnvelopeTypeUnknown = 0,
- EnvelopeTypeCiphertext = 1,
- EnvelopeTypeKeyExchange = 2,
- EnvelopeTypePrekeyBundle = 3,
- EnvelopeTypeReceipt = 5,
-} EnvelopeType;
-
-BOOL EnvelopeTypeIsValidValue(EnvelopeType value);
-
-typedef enum {
- DataMessageFlagsEndSession = 1,
-} DataMessageFlags;
-
-BOOL DataMessageFlagsIsValidValue(DataMessageFlags value);
-
-typedef enum {
- SyncMessageRequestTypeUnknown = 0,
- SyncMessageRequestTypeContacts = 1,
- SyncMessageRequestTypeGroups = 2,
-} SyncMessageRequestType;
-
-BOOL SyncMessageRequestTypeIsValidValue(SyncMessageRequestType value);
-
-typedef enum {
- GroupContextTypeUnknown = 0,
- GroupContextTypeUpdate = 1,
- GroupContextTypeDeliver = 2,
- GroupContextTypeQuit = 3,
-} GroupContextType;
-
-BOOL GroupContextTypeIsValidValue(GroupContextType value);
-
-
-@interface TextSecureRoot : NSObject {
-}
-+ (PBExtensionRegistry*) extensionRegistry;
-+ (void) registerAllExtensions:(PBMutableExtensionRegistry*) registry;
-@end
-
-@interface Envelope : PBGeneratedMessage {
-@private
- BOOL hasTimestamp_:1;
- BOOL hasSource_:1;
- BOOL hasRelay_:1;
- BOOL hasLegacyMessage_:1;
- BOOL hasContent_:1;
- BOOL hasSourceDevice_:1;
- BOOL hasType_:1;
- UInt64 timestamp;
- NSString* source;
- NSString* relay;
- NSData* legacyMessage;
- NSData* content;
- UInt32 sourceDevice;
- EnvelopeType type;
-}
-- (BOOL) hasType;
-- (BOOL) hasSource;
-- (BOOL) hasSourceDevice;
-- (BOOL) hasRelay;
-- (BOOL) hasTimestamp;
-- (BOOL) hasLegacyMessage;
-- (BOOL) hasContent;
-@property (readonly) EnvelopeType type;
-@property (readonly, strong) NSString* source;
-@property (readonly) UInt32 sourceDevice;
-@property (readonly, strong) NSString* relay;
-@property (readonly) UInt64 timestamp;
-@property (readonly, strong) NSData* legacyMessage;
-@property (readonly, strong) NSData* content;
-
-+ (Envelope*) defaultInstance;
-- (Envelope*) defaultInstance;
-
-- (BOOL) isInitialized;
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
-- (EnvelopeBuilder*) builder;
-+ (EnvelopeBuilder*) builder;
-+ (EnvelopeBuilder*) builderWithPrototype:(Envelope*) prototype;
-- (EnvelopeBuilder*) toBuilder;
-
-+ (Envelope*) parseFromData:(NSData*) data;
-+ (Envelope*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (Envelope*) parseFromInputStream:(NSInputStream*) input;
-+ (Envelope*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (Envelope*) parseFromCodedInputStream:(PBCodedInputStream*) input;
-+ (Envelope*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-@end
-
-@interface EnvelopeBuilder : PBGeneratedMessageBuilder {
-@private
- Envelope* result;
-}
-
-- (Envelope*) defaultInstance;
-
-- (EnvelopeBuilder*) clear;
-- (EnvelopeBuilder*) clone;
-
-- (Envelope*) build;
-- (Envelope*) buildPartial;
-
-- (EnvelopeBuilder*) mergeFrom:(Envelope*) other;
-- (EnvelopeBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
-- (EnvelopeBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-
-- (BOOL) hasType;
-- (EnvelopeType) type;
-- (EnvelopeBuilder*) setType:(EnvelopeType) value;
-- (EnvelopeBuilder*) clearType;
-
-- (BOOL) hasSource;
-- (NSString*) source;
-- (EnvelopeBuilder*) setSource:(NSString*) value;
-- (EnvelopeBuilder*) clearSource;
-
-- (BOOL) hasSourceDevice;
-- (UInt32) sourceDevice;
-- (EnvelopeBuilder*) setSourceDevice:(UInt32) value;
-- (EnvelopeBuilder*) clearSourceDevice;
-
-- (BOOL) hasRelay;
-- (NSString*) relay;
-- (EnvelopeBuilder*) setRelay:(NSString*) value;
-- (EnvelopeBuilder*) clearRelay;
-
-- (BOOL) hasTimestamp;
-- (UInt64) timestamp;
-- (EnvelopeBuilder*) setTimestamp:(UInt64) value;
-- (EnvelopeBuilder*) clearTimestamp;
-
-- (BOOL) hasLegacyMessage;
-- (NSData*) legacyMessage;
-- (EnvelopeBuilder*) setLegacyMessage:(NSData*) value;
-- (EnvelopeBuilder*) clearLegacyMessage;
-
-- (BOOL) hasContent;
-- (NSData*) content;
-- (EnvelopeBuilder*) setContent:(NSData*) value;
-- (EnvelopeBuilder*) clearContent;
-@end
-
-@interface Content : PBGeneratedMessage {
-@private
- BOOL hasDataMessage_:1;
- BOOL hasSyncMessage_:1;
- DataMessage* dataMessage;
- SyncMessage* syncMessage;
-}
-- (BOOL) hasDataMessage;
-- (BOOL) hasSyncMessage;
-@property (readonly, strong) DataMessage* dataMessage;
-@property (readonly, strong) SyncMessage* syncMessage;
-
-+ (Content*) defaultInstance;
-- (Content*) defaultInstance;
-
-- (BOOL) isInitialized;
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
-- (ContentBuilder*) builder;
-+ (ContentBuilder*) builder;
-+ (ContentBuilder*) builderWithPrototype:(Content*) prototype;
-- (ContentBuilder*) toBuilder;
-
-+ (Content*) parseFromData:(NSData*) data;
-+ (Content*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (Content*) parseFromInputStream:(NSInputStream*) input;
-+ (Content*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (Content*) parseFromCodedInputStream:(PBCodedInputStream*) input;
-+ (Content*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-@end
-
-@interface ContentBuilder : PBGeneratedMessageBuilder {
-@private
- Content* result;
-}
-
-- (Content*) defaultInstance;
-
-- (ContentBuilder*) clear;
-- (ContentBuilder*) clone;
-
-- (Content*) build;
-- (Content*) buildPartial;
-
-- (ContentBuilder*) mergeFrom:(Content*) other;
-- (ContentBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
-- (ContentBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-
-- (BOOL) hasDataMessage;
-- (DataMessage*) dataMessage;
-- (ContentBuilder*) setDataMessage:(DataMessage*) value;
-- (ContentBuilder*) setDataMessageBuilder:(DataMessageBuilder*) builderForValue;
-- (ContentBuilder*) mergeDataMessage:(DataMessage*) value;
-- (ContentBuilder*) clearDataMessage;
-
-- (BOOL) hasSyncMessage;
-- (SyncMessage*) syncMessage;
-- (ContentBuilder*) setSyncMessage:(SyncMessage*) value;
-- (ContentBuilder*) setSyncMessageBuilder:(SyncMessageBuilder*) builderForValue;
-- (ContentBuilder*) mergeSyncMessage:(SyncMessage*) value;
-- (ContentBuilder*) clearSyncMessage;
-@end
-
-@interface DataMessage : PBGeneratedMessage {
-@private
- BOOL hasBody_:1;
- BOOL hasGroup_:1;
- BOOL hasFlags_:1;
- NSString* body;
- GroupContext* group;
- UInt32 flags;
- NSMutableArray * attachmentsArray;
-}
-- (BOOL) hasBody;
-- (BOOL) hasGroup;
-- (BOOL) hasFlags;
-@property (readonly, strong) NSString* body;
-@property (readonly, strong) NSArray * attachments;
-@property (readonly, strong) GroupContext* group;
-@property (readonly) UInt32 flags;
-- (AttachmentPointer*)attachmentsAtIndex:(NSUInteger)index;
-
-+ (DataMessage*) defaultInstance;
-- (DataMessage*) defaultInstance;
-
-- (BOOL) isInitialized;
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
-- (DataMessageBuilder*) builder;
-+ (DataMessageBuilder*) builder;
-+ (DataMessageBuilder*) builderWithPrototype:(DataMessage*) prototype;
-- (DataMessageBuilder*) toBuilder;
-
-+ (DataMessage*) parseFromData:(NSData*) data;
-+ (DataMessage*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (DataMessage*) parseFromInputStream:(NSInputStream*) input;
-+ (DataMessage*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (DataMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input;
-+ (DataMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-@end
-
-@interface DataMessageBuilder : PBGeneratedMessageBuilder {
-@private
- DataMessage* result;
-}
-
-- (DataMessage*) defaultInstance;
-
-- (DataMessageBuilder*) clear;
-- (DataMessageBuilder*) clone;
-
-- (DataMessage*) build;
-- (DataMessage*) buildPartial;
-
-- (DataMessageBuilder*) mergeFrom:(DataMessage*) other;
-- (DataMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
-- (DataMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-
-- (BOOL) hasBody;
-- (NSString*) body;
-- (DataMessageBuilder*) setBody:(NSString*) value;
-- (DataMessageBuilder*) clearBody;
-
-- (NSMutableArray *)attachments;
-- (AttachmentPointer*)attachmentsAtIndex:(NSUInteger)index;
-- (DataMessageBuilder *)addAttachments:(AttachmentPointer*)value;
-- (DataMessageBuilder *)setAttachmentsArray:(NSArray *)array;
-- (DataMessageBuilder *)clearAttachments;
-
-- (BOOL) hasGroup;
-- (GroupContext*) group;
-- (DataMessageBuilder*) setGroup:(GroupContext*) value;
-- (DataMessageBuilder*) setGroupBuilder:(GroupContextBuilder*) builderForValue;
-- (DataMessageBuilder*) mergeGroup:(GroupContext*) value;
-- (DataMessageBuilder*) clearGroup;
-
-- (BOOL) hasFlags;
-- (UInt32) flags;
-- (DataMessageBuilder*) setFlags:(UInt32) value;
-- (DataMessageBuilder*) clearFlags;
-@end
-
-@interface SyncMessage : PBGeneratedMessage {
-@private
- BOOL hasSent_:1;
- BOOL hasContacts_:1;
- BOOL hasGroups_:1;
- BOOL hasRequest_:1;
- SyncMessageSent* sent;
- SyncMessageContacts* contacts;
- SyncMessageGroups* groups;
- SyncMessageRequest* request;
-}
-- (BOOL) hasSent;
-- (BOOL) hasContacts;
-- (BOOL) hasGroups;
-- (BOOL) hasRequest;
-@property (readonly, strong) SyncMessageSent* sent;
-@property (readonly, strong) SyncMessageContacts* contacts;
-@property (readonly, strong) SyncMessageGroups* groups;
-@property (readonly, strong) SyncMessageRequest* request;
-
-+ (SyncMessage*) defaultInstance;
-- (SyncMessage*) defaultInstance;
-
-- (BOOL) isInitialized;
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
-- (SyncMessageBuilder*) builder;
-+ (SyncMessageBuilder*) builder;
-+ (SyncMessageBuilder*) builderWithPrototype:(SyncMessage*) prototype;
-- (SyncMessageBuilder*) toBuilder;
-
-+ (SyncMessage*) parseFromData:(NSData*) data;
-+ (SyncMessage*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (SyncMessage*) parseFromInputStream:(NSInputStream*) input;
-+ (SyncMessage*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (SyncMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input;
-+ (SyncMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-@end
-
-@interface SyncMessageSent : PBGeneratedMessage {
-@private
- BOOL hasTimestamp_:1;
- BOOL hasDestination_:1;
- BOOL hasMessage_:1;
- UInt64 timestamp;
- NSString* destination;
- DataMessage* message;
-}
-- (BOOL) hasDestination;
-- (BOOL) hasTimestamp;
-- (BOOL) hasMessage;
-@property (readonly, strong) NSString* destination;
-@property (readonly) UInt64 timestamp;
-@property (readonly, strong) DataMessage* message;
-
-+ (SyncMessageSent*) defaultInstance;
-- (SyncMessageSent*) defaultInstance;
-
-- (BOOL) isInitialized;
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
-- (SyncMessageSentBuilder*) builder;
-+ (SyncMessageSentBuilder*) builder;
-+ (SyncMessageSentBuilder*) builderWithPrototype:(SyncMessageSent*) prototype;
-- (SyncMessageSentBuilder*) toBuilder;
-
-+ (SyncMessageSent*) parseFromData:(NSData*) data;
-+ (SyncMessageSent*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (SyncMessageSent*) parseFromInputStream:(NSInputStream*) input;
-+ (SyncMessageSent*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (SyncMessageSent*) parseFromCodedInputStream:(PBCodedInputStream*) input;
-+ (SyncMessageSent*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-@end
-
-@interface SyncMessageSentBuilder : PBGeneratedMessageBuilder {
-@private
- SyncMessageSent* result;
-}
-
-- (SyncMessageSent*) defaultInstance;
-
-- (SyncMessageSentBuilder*) clear;
-- (SyncMessageSentBuilder*) clone;
-
-- (SyncMessageSent*) build;
-- (SyncMessageSent*) buildPartial;
-
-- (SyncMessageSentBuilder*) mergeFrom:(SyncMessageSent*) other;
-- (SyncMessageSentBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
-- (SyncMessageSentBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-
-- (BOOL) hasDestination;
-- (NSString*) destination;
-- (SyncMessageSentBuilder*) setDestination:(NSString*) value;
-- (SyncMessageSentBuilder*) clearDestination;
-
-- (BOOL) hasTimestamp;
-- (UInt64) timestamp;
-- (SyncMessageSentBuilder*) setTimestamp:(UInt64) value;
-- (SyncMessageSentBuilder*) clearTimestamp;
-
-- (BOOL) hasMessage;
-- (DataMessage*) message;
-- (SyncMessageSentBuilder*) setMessage:(DataMessage*) value;
-- (SyncMessageSentBuilder*) setMessageBuilder:(DataMessageBuilder*) builderForValue;
-- (SyncMessageSentBuilder*) mergeMessage:(DataMessage*) value;
-- (SyncMessageSentBuilder*) clearMessage;
-@end
-
-@interface SyncMessageContacts : PBGeneratedMessage {
-@private
- BOOL hasBlob_:1;
- AttachmentPointer* blob;
-}
-- (BOOL) hasBlob;
-@property (readonly, strong) AttachmentPointer* blob;
-
-+ (SyncMessageContacts*) defaultInstance;
-- (SyncMessageContacts*) defaultInstance;
-
-- (BOOL) isInitialized;
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
-- (SyncMessageContactsBuilder*) builder;
-+ (SyncMessageContactsBuilder*) builder;
-+ (SyncMessageContactsBuilder*) builderWithPrototype:(SyncMessageContacts*) prototype;
-- (SyncMessageContactsBuilder*) toBuilder;
-
-+ (SyncMessageContacts*) parseFromData:(NSData*) data;
-+ (SyncMessageContacts*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (SyncMessageContacts*) parseFromInputStream:(NSInputStream*) input;
-+ (SyncMessageContacts*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (SyncMessageContacts*) parseFromCodedInputStream:(PBCodedInputStream*) input;
-+ (SyncMessageContacts*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-@end
-
-@interface SyncMessageContactsBuilder : PBGeneratedMessageBuilder {
-@private
- SyncMessageContacts* result;
-}
-
-- (SyncMessageContacts*) defaultInstance;
-
-- (SyncMessageContactsBuilder*) clear;
-- (SyncMessageContactsBuilder*) clone;
-
-- (SyncMessageContacts*) build;
-- (SyncMessageContacts*) buildPartial;
-
-- (SyncMessageContactsBuilder*) mergeFrom:(SyncMessageContacts*) other;
-- (SyncMessageContactsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
-- (SyncMessageContactsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-
-- (BOOL) hasBlob;
-- (AttachmentPointer*) blob;
-- (SyncMessageContactsBuilder*) setBlob:(AttachmentPointer*) value;
-- (SyncMessageContactsBuilder*) setBlobBuilder:(AttachmentPointerBuilder*) builderForValue;
-- (SyncMessageContactsBuilder*) mergeBlob:(AttachmentPointer*) value;
-- (SyncMessageContactsBuilder*) clearBlob;
-@end
-
-@interface SyncMessageGroups : PBGeneratedMessage {
-@private
- BOOL hasBlob_:1;
- AttachmentPointer* blob;
-}
-- (BOOL) hasBlob;
-@property (readonly, strong) AttachmentPointer* blob;
-
-+ (SyncMessageGroups*) defaultInstance;
-- (SyncMessageGroups*) defaultInstance;
-
-- (BOOL) isInitialized;
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
-- (SyncMessageGroupsBuilder*) builder;
-+ (SyncMessageGroupsBuilder*) builder;
-+ (SyncMessageGroupsBuilder*) builderWithPrototype:(SyncMessageGroups*) prototype;
-- (SyncMessageGroupsBuilder*) toBuilder;
-
-+ (SyncMessageGroups*) parseFromData:(NSData*) data;
-+ (SyncMessageGroups*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (SyncMessageGroups*) parseFromInputStream:(NSInputStream*) input;
-+ (SyncMessageGroups*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (SyncMessageGroups*) parseFromCodedInputStream:(PBCodedInputStream*) input;
-+ (SyncMessageGroups*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-@end
-
-@interface SyncMessageGroupsBuilder : PBGeneratedMessageBuilder {
-@private
- SyncMessageGroups* result;
-}
-
-- (SyncMessageGroups*) defaultInstance;
-
-- (SyncMessageGroupsBuilder*) clear;
-- (SyncMessageGroupsBuilder*) clone;
-
-- (SyncMessageGroups*) build;
-- (SyncMessageGroups*) buildPartial;
-
-- (SyncMessageGroupsBuilder*) mergeFrom:(SyncMessageGroups*) other;
-- (SyncMessageGroupsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
-- (SyncMessageGroupsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-
-- (BOOL) hasBlob;
-- (AttachmentPointer*) blob;
-- (SyncMessageGroupsBuilder*) setBlob:(AttachmentPointer*) value;
-- (SyncMessageGroupsBuilder*) setBlobBuilder:(AttachmentPointerBuilder*) builderForValue;
-- (SyncMessageGroupsBuilder*) mergeBlob:(AttachmentPointer*) value;
-- (SyncMessageGroupsBuilder*) clearBlob;
-@end
-
-@interface SyncMessageRequest : PBGeneratedMessage {
-@private
- BOOL hasType_:1;
- SyncMessageRequestType type;
-}
-- (BOOL) hasType;
-@property (readonly) SyncMessageRequestType type;
-
-+ (SyncMessageRequest*) defaultInstance;
-- (SyncMessageRequest*) defaultInstance;
-
-- (BOOL) isInitialized;
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
-- (SyncMessageRequestBuilder*) builder;
-+ (SyncMessageRequestBuilder*) builder;
-+ (SyncMessageRequestBuilder*) builderWithPrototype:(SyncMessageRequest*) prototype;
-- (SyncMessageRequestBuilder*) toBuilder;
-
-+ (SyncMessageRequest*) parseFromData:(NSData*) data;
-+ (SyncMessageRequest*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (SyncMessageRequest*) parseFromInputStream:(NSInputStream*) input;
-+ (SyncMessageRequest*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (SyncMessageRequest*) parseFromCodedInputStream:(PBCodedInputStream*) input;
-+ (SyncMessageRequest*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-@end
-
-@interface SyncMessageRequestBuilder : PBGeneratedMessageBuilder {
-@private
- SyncMessageRequest* result;
-}
-
-- (SyncMessageRequest*) defaultInstance;
-
-- (SyncMessageRequestBuilder*) clear;
-- (SyncMessageRequestBuilder*) clone;
-
-- (SyncMessageRequest*) build;
-- (SyncMessageRequest*) buildPartial;
-
-- (SyncMessageRequestBuilder*) mergeFrom:(SyncMessageRequest*) other;
-- (SyncMessageRequestBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
-- (SyncMessageRequestBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-
-- (BOOL) hasType;
-- (SyncMessageRequestType) type;
-- (SyncMessageRequestBuilder*) setType:(SyncMessageRequestType) value;
-- (SyncMessageRequestBuilder*) clearType;
-@end
-
-@interface SyncMessageBuilder : PBGeneratedMessageBuilder {
-@private
- SyncMessage* result;
-}
-
-- (SyncMessage*) defaultInstance;
-
-- (SyncMessageBuilder*) clear;
-- (SyncMessageBuilder*) clone;
-
-- (SyncMessage*) build;
-- (SyncMessage*) buildPartial;
-
-- (SyncMessageBuilder*) mergeFrom:(SyncMessage*) other;
-- (SyncMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
-- (SyncMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-
-- (BOOL) hasSent;
-- (SyncMessageSent*) sent;
-- (SyncMessageBuilder*) setSent:(SyncMessageSent*) value;
-- (SyncMessageBuilder*) setSentBuilder:(SyncMessageSentBuilder*) builderForValue;
-- (SyncMessageBuilder*) mergeSent:(SyncMessageSent*) value;
-- (SyncMessageBuilder*) clearSent;
-
-- (BOOL) hasContacts;
-- (SyncMessageContacts*) contacts;
-- (SyncMessageBuilder*) setContacts:(SyncMessageContacts*) value;
-- (SyncMessageBuilder*) setContactsBuilder:(SyncMessageContactsBuilder*) builderForValue;
-- (SyncMessageBuilder*) mergeContacts:(SyncMessageContacts*) value;
-- (SyncMessageBuilder*) clearContacts;
-
-- (BOOL) hasGroups;
-- (SyncMessageGroups*) groups;
-- (SyncMessageBuilder*) setGroups:(SyncMessageGroups*) value;
-- (SyncMessageBuilder*) setGroupsBuilder:(SyncMessageGroupsBuilder*) builderForValue;
-- (SyncMessageBuilder*) mergeGroups:(SyncMessageGroups*) value;
-- (SyncMessageBuilder*) clearGroups;
-
-- (BOOL) hasRequest;
-- (SyncMessageRequest*) request;
-- (SyncMessageBuilder*) setRequest:(SyncMessageRequest*) value;
-- (SyncMessageBuilder*) setRequestBuilder:(SyncMessageRequestBuilder*) builderForValue;
-- (SyncMessageBuilder*) mergeRequest:(SyncMessageRequest*) value;
-- (SyncMessageBuilder*) clearRequest;
-@end
-
-@interface AttachmentPointer : PBGeneratedMessage {
-@private
- BOOL hasId_:1;
- BOOL hasContentType_:1;
- BOOL hasKey_:1;
- BOOL hasThumbnail_:1;
- BOOL hasSize_:1;
- UInt64 id;
- NSString* contentType;
- NSData* key;
- NSData* thumbnail;
- UInt32 size;
-}
-- (BOOL) hasId;
-- (BOOL) hasContentType;
-- (BOOL) hasKey;
-- (BOOL) hasSize;
-- (BOOL) hasThumbnail;
-@property (readonly) UInt64 id;
-@property (readonly, strong) NSString* contentType;
-@property (readonly, strong) NSData* key;
-@property (readonly) UInt32 size;
-@property (readonly, strong) NSData* thumbnail;
-
-+ (AttachmentPointer*) defaultInstance;
-- (AttachmentPointer*) defaultInstance;
-
-- (BOOL) isInitialized;
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
-- (AttachmentPointerBuilder*) builder;
-+ (AttachmentPointerBuilder*) builder;
-+ (AttachmentPointerBuilder*) builderWithPrototype:(AttachmentPointer*) prototype;
-- (AttachmentPointerBuilder*) toBuilder;
-
-+ (AttachmentPointer*) parseFromData:(NSData*) data;
-+ (AttachmentPointer*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (AttachmentPointer*) parseFromInputStream:(NSInputStream*) input;
-+ (AttachmentPointer*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (AttachmentPointer*) parseFromCodedInputStream:(PBCodedInputStream*) input;
-+ (AttachmentPointer*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-@end
-
-@interface AttachmentPointerBuilder : PBGeneratedMessageBuilder {
-@private
- AttachmentPointer* result;
-}
-
-- (AttachmentPointer*) defaultInstance;
-
-- (AttachmentPointerBuilder*) clear;
-- (AttachmentPointerBuilder*) clone;
-
-- (AttachmentPointer*) build;
-- (AttachmentPointer*) buildPartial;
-
-- (AttachmentPointerBuilder*) mergeFrom:(AttachmentPointer*) other;
-- (AttachmentPointerBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
-- (AttachmentPointerBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-
-- (BOOL) hasId;
-- (UInt64) id;
-- (AttachmentPointerBuilder*) setId:(UInt64) value;
-- (AttachmentPointerBuilder*) clearId;
-
-- (BOOL) hasContentType;
-- (NSString*) contentType;
-- (AttachmentPointerBuilder*) setContentType:(NSString*) value;
-- (AttachmentPointerBuilder*) clearContentType;
-
-- (BOOL) hasKey;
-- (NSData*) key;
-- (AttachmentPointerBuilder*) setKey:(NSData*) value;
-- (AttachmentPointerBuilder*) clearKey;
-
-- (BOOL) hasSize;
-- (UInt32) size;
-- (AttachmentPointerBuilder*) setSize:(UInt32) value;
-- (AttachmentPointerBuilder*) clearSize;
-
-- (BOOL) hasThumbnail;
-- (NSData*) thumbnail;
-- (AttachmentPointerBuilder*) setThumbnail:(NSData*) value;
-- (AttachmentPointerBuilder*) clearThumbnail;
-@end
-
-@interface GroupContext : PBGeneratedMessage {
-@private
- BOOL hasName_:1;
- BOOL hasAvatar_:1;
- BOOL hasId_:1;
- BOOL hasType_:1;
- NSString* name;
- AttachmentPointer* avatar;
- NSData* id;
- GroupContextType type;
- NSMutableArray * membersArray;
-}
-- (BOOL) hasId;
-- (BOOL) hasType;
-- (BOOL) hasName;
-- (BOOL) hasAvatar;
-@property (readonly, strong) NSData* id;
-@property (readonly) GroupContextType type;
-@property (readonly, strong) NSString* name;
-@property (readonly, strong) PBArray * members;
-@property (readonly, strong) AttachmentPointer* avatar;
-- (NSString*)membersAtIndex:(NSUInteger)index;
-
-+ (GroupContext*) defaultInstance;
-- (GroupContext*) defaultInstance;
-
-- (BOOL) isInitialized;
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
-- (GroupContextBuilder*) builder;
-+ (GroupContextBuilder*) builder;
-+ (GroupContextBuilder*) builderWithPrototype:(GroupContext*) prototype;
-- (GroupContextBuilder*) toBuilder;
-
-+ (GroupContext*) parseFromData:(NSData*) data;
-+ (GroupContext*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (GroupContext*) parseFromInputStream:(NSInputStream*) input;
-+ (GroupContext*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (GroupContext*) parseFromCodedInputStream:(PBCodedInputStream*) input;
-+ (GroupContext*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-@end
-
-@interface GroupContextBuilder : PBGeneratedMessageBuilder {
-@private
- GroupContext* result;
-}
-
-- (GroupContext*) defaultInstance;
-
-- (GroupContextBuilder*) clear;
-- (GroupContextBuilder*) clone;
-
-- (GroupContext*) build;
-- (GroupContext*) buildPartial;
-
-- (GroupContextBuilder*) mergeFrom:(GroupContext*) other;
-- (GroupContextBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
-- (GroupContextBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-
-- (BOOL) hasId;
-- (NSData*) id;
-- (GroupContextBuilder*) setId:(NSData*) value;
-- (GroupContextBuilder*) clearId;
-
-- (BOOL) hasType;
-- (GroupContextType) type;
-- (GroupContextBuilder*) setType:(GroupContextType) value;
-- (GroupContextBuilder*) clearType;
-
-- (BOOL) hasName;
-- (NSString*) name;
-- (GroupContextBuilder*) setName:(NSString*) value;
-- (GroupContextBuilder*) clearName;
-
-- (NSMutableArray *)members;
-- (NSString*)membersAtIndex:(NSUInteger)index;
-- (GroupContextBuilder *)addMembers:(NSString*)value;
-- (GroupContextBuilder *)setMembersArray:(NSArray *)array;
-- (GroupContextBuilder *)clearMembers;
-
-- (BOOL) hasAvatar;
-- (AttachmentPointer*) avatar;
-- (GroupContextBuilder*) setAvatar:(AttachmentPointer*) value;
-- (GroupContextBuilder*) setAvatarBuilder:(AttachmentPointerBuilder*) builderForValue;
-- (GroupContextBuilder*) mergeAvatar:(AttachmentPointer*) value;
-- (GroupContextBuilder*) clearAvatar;
-@end
-
-@interface ContactDetails : PBGeneratedMessage {
-@private
- BOOL hasNumber_:1;
- BOOL hasName_:1;
- BOOL hasAvatar_:1;
- NSString* number;
- NSString* name;
- ContactDetailsAvatar* avatar;
-}
-- (BOOL) hasNumber;
-- (BOOL) hasName;
-- (BOOL) hasAvatar;
-@property (readonly, strong) NSString* number;
-@property (readonly, strong) NSString* name;
-@property (readonly, strong) ContactDetailsAvatar* avatar;
-
-+ (ContactDetails*) defaultInstance;
-- (ContactDetails*) defaultInstance;
-
-- (BOOL) isInitialized;
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
-- (ContactDetailsBuilder*) builder;
-+ (ContactDetailsBuilder*) builder;
-+ (ContactDetailsBuilder*) builderWithPrototype:(ContactDetails*) prototype;
-- (ContactDetailsBuilder*) toBuilder;
-
-+ (ContactDetails*) parseFromData:(NSData*) data;
-+ (ContactDetails*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (ContactDetails*) parseFromInputStream:(NSInputStream*) input;
-+ (ContactDetails*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (ContactDetails*) parseFromCodedInputStream:(PBCodedInputStream*) input;
-+ (ContactDetails*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-@end
-
-@interface ContactDetailsAvatar : PBGeneratedMessage {
-@private
- BOOL hasContentType_:1;
- BOOL hasLength_:1;
- NSString* contentType;
- UInt32 length;
-}
-- (BOOL) hasContentType;
-- (BOOL) hasLength;
-@property (readonly, strong) NSString* contentType;
-@property (readonly) UInt32 length;
-
-+ (ContactDetailsAvatar*) defaultInstance;
-- (ContactDetailsAvatar*) defaultInstance;
-
-- (BOOL) isInitialized;
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
-- (ContactDetailsAvatarBuilder*) builder;
-+ (ContactDetailsAvatarBuilder*) builder;
-+ (ContactDetailsAvatarBuilder*) builderWithPrototype:(ContactDetailsAvatar*) prototype;
-- (ContactDetailsAvatarBuilder*) toBuilder;
-
-+ (ContactDetailsAvatar*) parseFromData:(NSData*) data;
-+ (ContactDetailsAvatar*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (ContactDetailsAvatar*) parseFromInputStream:(NSInputStream*) input;
-+ (ContactDetailsAvatar*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (ContactDetailsAvatar*) parseFromCodedInputStream:(PBCodedInputStream*) input;
-+ (ContactDetailsAvatar*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-@end
-
-@interface ContactDetailsAvatarBuilder : PBGeneratedMessageBuilder {
-@private
- ContactDetailsAvatar* result;
-}
-
-- (ContactDetailsAvatar*) defaultInstance;
-
-- (ContactDetailsAvatarBuilder*) clear;
-- (ContactDetailsAvatarBuilder*) clone;
-
-- (ContactDetailsAvatar*) build;
-- (ContactDetailsAvatar*) buildPartial;
-
-- (ContactDetailsAvatarBuilder*) mergeFrom:(ContactDetailsAvatar*) other;
-- (ContactDetailsAvatarBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
-- (ContactDetailsAvatarBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-
-- (BOOL) hasContentType;
-- (NSString*) contentType;
-- (ContactDetailsAvatarBuilder*) setContentType:(NSString*) value;
-- (ContactDetailsAvatarBuilder*) clearContentType;
-
-- (BOOL) hasLength;
-- (UInt32) length;
-- (ContactDetailsAvatarBuilder*) setLength:(UInt32) value;
-- (ContactDetailsAvatarBuilder*) clearLength;
-@end
-
-@interface ContactDetailsBuilder : PBGeneratedMessageBuilder {
-@private
- ContactDetails* result;
-}
-
-- (ContactDetails*) defaultInstance;
-
-- (ContactDetailsBuilder*) clear;
-- (ContactDetailsBuilder*) clone;
-
-- (ContactDetails*) build;
-- (ContactDetails*) buildPartial;
-
-- (ContactDetailsBuilder*) mergeFrom:(ContactDetails*) other;
-- (ContactDetailsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
-- (ContactDetailsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-
-- (BOOL) hasNumber;
-- (NSString*) number;
-- (ContactDetailsBuilder*) setNumber:(NSString*) value;
-- (ContactDetailsBuilder*) clearNumber;
-
-- (BOOL) hasName;
-- (NSString*) name;
-- (ContactDetailsBuilder*) setName:(NSString*) value;
-- (ContactDetailsBuilder*) clearName;
-
-- (BOOL) hasAvatar;
-- (ContactDetailsAvatar*) avatar;
-- (ContactDetailsBuilder*) setAvatar:(ContactDetailsAvatar*) value;
-- (ContactDetailsBuilder*) setAvatarBuilder:(ContactDetailsAvatarBuilder*) builderForValue;
-- (ContactDetailsBuilder*) mergeAvatar:(ContactDetailsAvatar*) value;
-- (ContactDetailsBuilder*) clearAvatar;
-@end
-
-@interface GroupDetails : PBGeneratedMessage {
-@private
- BOOL hasName_:1;
- BOOL hasAvatar_:1;
- BOOL hasId_:1;
- NSString* name;
- GroupDetailsAvatar* avatar;
- NSData* id;
- NSMutableArray * membersArray;
-}
-- (BOOL) hasId;
-- (BOOL) hasName;
-- (BOOL) hasAvatar;
-@property (readonly, strong) NSData* id;
-@property (readonly, strong) NSString* name;
-@property (readonly, strong) PBArray * members;
-@property (readonly, strong) GroupDetailsAvatar* avatar;
-- (NSString*)membersAtIndex:(NSUInteger)index;
-
-+ (GroupDetails*) defaultInstance;
-- (GroupDetails*) defaultInstance;
-
-- (BOOL) isInitialized;
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
-- (GroupDetailsBuilder*) builder;
-+ (GroupDetailsBuilder*) builder;
-+ (GroupDetailsBuilder*) builderWithPrototype:(GroupDetails*) prototype;
-- (GroupDetailsBuilder*) toBuilder;
-
-+ (GroupDetails*) parseFromData:(NSData*) data;
-+ (GroupDetails*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (GroupDetails*) parseFromInputStream:(NSInputStream*) input;
-+ (GroupDetails*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (GroupDetails*) parseFromCodedInputStream:(PBCodedInputStream*) input;
-+ (GroupDetails*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-@end
-
-@interface GroupDetailsAvatar : PBGeneratedMessage {
-@private
- BOOL hasContentType_:1;
- BOOL hasLength_:1;
- NSString* contentType;
- UInt32 length;
-}
-- (BOOL) hasContentType;
-- (BOOL) hasLength;
-@property (readonly, strong) NSString* contentType;
-@property (readonly) UInt32 length;
-
-+ (GroupDetailsAvatar*) defaultInstance;
-- (GroupDetailsAvatar*) defaultInstance;
-
-- (BOOL) isInitialized;
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
-- (GroupDetailsAvatarBuilder*) builder;
-+ (GroupDetailsAvatarBuilder*) builder;
-+ (GroupDetailsAvatarBuilder*) builderWithPrototype:(GroupDetailsAvatar*) prototype;
-- (GroupDetailsAvatarBuilder*) toBuilder;
-
-+ (GroupDetailsAvatar*) parseFromData:(NSData*) data;
-+ (GroupDetailsAvatar*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (GroupDetailsAvatar*) parseFromInputStream:(NSInputStream*) input;
-+ (GroupDetailsAvatar*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (GroupDetailsAvatar*) parseFromCodedInputStream:(PBCodedInputStream*) input;
-+ (GroupDetailsAvatar*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-@end
-
-@interface GroupDetailsAvatarBuilder : PBGeneratedMessageBuilder {
-@private
- GroupDetailsAvatar* result;
-}
-
-- (GroupDetailsAvatar*) defaultInstance;
-
-- (GroupDetailsAvatarBuilder*) clear;
-- (GroupDetailsAvatarBuilder*) clone;
-
-- (GroupDetailsAvatar*) build;
-- (GroupDetailsAvatar*) buildPartial;
-
-- (GroupDetailsAvatarBuilder*) mergeFrom:(GroupDetailsAvatar*) other;
-- (GroupDetailsAvatarBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
-- (GroupDetailsAvatarBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-
-- (BOOL) hasContentType;
-- (NSString*) contentType;
-- (GroupDetailsAvatarBuilder*) setContentType:(NSString*) value;
-- (GroupDetailsAvatarBuilder*) clearContentType;
-
-- (BOOL) hasLength;
-- (UInt32) length;
-- (GroupDetailsAvatarBuilder*) setLength:(UInt32) value;
-- (GroupDetailsAvatarBuilder*) clearLength;
-@end
-
-@interface GroupDetailsBuilder : PBGeneratedMessageBuilder {
-@private
- GroupDetails* result;
-}
-
-- (GroupDetails*) defaultInstance;
-
-- (GroupDetailsBuilder*) clear;
-- (GroupDetailsBuilder*) clone;
-
-- (GroupDetails*) build;
-- (GroupDetails*) buildPartial;
-
-- (GroupDetailsBuilder*) mergeFrom:(GroupDetails*) other;
-- (GroupDetailsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
-- (GroupDetailsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-
-- (BOOL) hasId;
-- (NSData*) id;
-- (GroupDetailsBuilder*) setId:(NSData*) value;
-- (GroupDetailsBuilder*) clearId;
-
-- (BOOL) hasName;
-- (NSString*) name;
-- (GroupDetailsBuilder*) setName:(NSString*) value;
-- (GroupDetailsBuilder*) clearName;
-
-- (NSMutableArray *)members;
-- (NSString*)membersAtIndex:(NSUInteger)index;
-- (GroupDetailsBuilder *)addMembers:(NSString*)value;
-- (GroupDetailsBuilder *)setMembersArray:(NSArray *)array;
-- (GroupDetailsBuilder *)clearMembers;
-
-- (BOOL) hasAvatar;
-- (GroupDetailsAvatar*) avatar;
-- (GroupDetailsBuilder*) setAvatar:(GroupDetailsAvatar*) value;
-- (GroupDetailsBuilder*) setAvatarBuilder:(GroupDetailsAvatarBuilder*) builderForValue;
-- (GroupDetailsBuilder*) mergeAvatar:(GroupDetailsAvatar*) value;
-- (GroupDetailsBuilder*) clearAvatar;
-@end
-
-
-// @@protoc_insertion_point(global_scope)
diff --git a/protobuf/TextSecure.pb.m b/protobuf/TextSecure.pb.m
deleted file mode 100644
index 35ca7dd5c9..0000000000
--- a/protobuf/TextSecure.pb.m
+++ /dev/null
@@ -1,4587 +0,0 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-
-#import "TextSecure.pb.h"
-// @@protoc_insertion_point(imports)
-
-@implementation TextSecureRoot
-static PBExtensionRegistry* extensionRegistry = nil;
-+ (PBExtensionRegistry*) extensionRegistry {
- return extensionRegistry;
-}
-
-+ (void) initialize {
- if (self == [TextSecureRoot class]) {
- PBMutableExtensionRegistry* registry = [PBMutableExtensionRegistry registry];
- [self registerAllExtensions:registry];
- extensionRegistry = registry;
- }
-}
-+ (void) registerAllExtensions:(PBMutableExtensionRegistry*) registry {
-}
-@end
-
-@interface Envelope ()
-@property EnvelopeType type;
-@property (strong) NSString* source;
-@property UInt32 sourceDevice;
-@property (strong) NSString* relay;
-@property UInt64 timestamp;
-@property (strong) NSData* legacyMessage;
-@property (strong) NSData* content;
-@end
-
-@implementation Envelope
-
-- (BOOL) hasType {
- return !!hasType_;
-}
-- (void) setHasType:(BOOL) value_ {
- hasType_ = !!value_;
-}
-@synthesize type;
-- (BOOL) hasSource {
- return !!hasSource_;
-}
-- (void) setHasSource:(BOOL) value_ {
- hasSource_ = !!value_;
-}
-@synthesize source;
-- (BOOL) hasSourceDevice {
- return !!hasSourceDevice_;
-}
-- (void) setHasSourceDevice:(BOOL) value_ {
- hasSourceDevice_ = !!value_;
-}
-@synthesize sourceDevice;
-- (BOOL) hasRelay {
- return !!hasRelay_;
-}
-- (void) setHasRelay:(BOOL) value_ {
- hasRelay_ = !!value_;
-}
-@synthesize relay;
-- (BOOL) hasTimestamp {
- return !!hasTimestamp_;
-}
-- (void) setHasTimestamp:(BOOL) value_ {
- hasTimestamp_ = !!value_;
-}
-@synthesize timestamp;
-- (BOOL) hasLegacyMessage {
- return !!hasLegacyMessage_;
-}
-- (void) setHasLegacyMessage:(BOOL) value_ {
- hasLegacyMessage_ = !!value_;
-}
-@synthesize legacyMessage;
-- (BOOL) hasContent {
- return !!hasContent_;
-}
-- (void) setHasContent:(BOOL) value_ {
- hasContent_ = !!value_;
-}
-@synthesize content;
-- (id) init {
- if ((self = [super init])) {
- self.type = EnvelopeTypeUnknown;
- self.source = @"";
- self.sourceDevice = 0;
- self.relay = @"";
- self.timestamp = 0L;
- self.legacyMessage = [NSData data];
- self.content = [NSData data];
- }
- return self;
-}
-static Envelope* defaultEnvelopeInstance = nil;
-+ (void) initialize {
- if (self == [Envelope class]) {
- defaultEnvelopeInstance = [[Envelope alloc] init];
- }
-}
-+ (Envelope*) defaultInstance {
- return defaultEnvelopeInstance;
-}
-- (Envelope*) defaultInstance {
- return defaultEnvelopeInstance;
-}
-- (BOOL) isInitialized {
- return YES;
-}
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
- if (self.hasType) {
- [output writeEnum:1 value:self.type];
- }
- if (self.hasSource) {
- [output writeString:2 value:self.source];
- }
- if (self.hasRelay) {
- [output writeString:3 value:self.relay];
- }
- if (self.hasTimestamp) {
- [output writeUInt64:5 value:self.timestamp];
- }
- if (self.hasLegacyMessage) {
- [output writeData:6 value:self.legacyMessage];
- }
- if (self.hasSourceDevice) {
- [output writeUInt32:7 value:self.sourceDevice];
- }
- if (self.hasContent) {
- [output writeData:8 value:self.content];
- }
- [self.unknownFields writeToCodedOutputStream:output];
-}
-- (SInt32) serializedSize {
- __block SInt32 size_ = memoizedSerializedSize;
- if (size_ != -1) {
- return size_;
- }
-
- size_ = 0;
- if (self.hasType) {
- size_ += computeEnumSize(1, self.type);
- }
- if (self.hasSource) {
- size_ += computeStringSize(2, self.source);
- }
- if (self.hasRelay) {
- size_ += computeStringSize(3, self.relay);
- }
- if (self.hasTimestamp) {
- size_ += computeUInt64Size(5, self.timestamp);
- }
- if (self.hasLegacyMessage) {
- size_ += computeDataSize(6, self.legacyMessage);
- }
- if (self.hasSourceDevice) {
- size_ += computeUInt32Size(7, self.sourceDevice);
- }
- if (self.hasContent) {
- size_ += computeDataSize(8, self.content);
- }
- size_ += self.unknownFields.serializedSize;
- memoizedSerializedSize = size_;
- return size_;
-}
-+ (Envelope*) parseFromData:(NSData*) data {
- return (Envelope*)[[[Envelope builder] mergeFromData:data] build];
-}
-+ (Envelope*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (Envelope*)[[[Envelope builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
-}
-+ (Envelope*) parseFromInputStream:(NSInputStream*) input {
- return (Envelope*)[[[Envelope builder] mergeFromInputStream:input] build];
-}
-+ (Envelope*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (Envelope*)[[[Envelope builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (Envelope*) parseFromCodedInputStream:(PBCodedInputStream*) input {
- return (Envelope*)[[[Envelope builder] mergeFromCodedInputStream:input] build];
-}
-+ (Envelope*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (Envelope*)[[[Envelope builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (EnvelopeBuilder*) builder {
- return [[EnvelopeBuilder alloc] init];
-}
-+ (EnvelopeBuilder*) builderWithPrototype:(Envelope*) prototype {
- return [[Envelope builder] mergeFrom:prototype];
-}
-- (EnvelopeBuilder*) builder {
- return [Envelope builder];
-}
-- (EnvelopeBuilder*) toBuilder {
- return [Envelope builderWithPrototype:self];
-}
-- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
- if (self.hasType) {
- [output appendFormat:@"%@%@: %d\n", indent, @"type", self.type];
- }
- if (self.hasSource) {
- [output appendFormat:@"%@%@: %@\n", indent, @"source", self.source];
- }
- if (self.hasRelay) {
- [output appendFormat:@"%@%@: %@\n", indent, @"relay", self.relay];
- }
- if (self.hasTimestamp) {
- [output appendFormat:@"%@%@: %@\n", indent, @"timestamp", [NSNumber numberWithLongLong:self.timestamp]];
- }
- if (self.hasLegacyMessage) {
- [output appendFormat:@"%@%@: %@\n", indent, @"legacyMessage", self.legacyMessage];
- }
- if (self.hasSourceDevice) {
- [output appendFormat:@"%@%@: %@\n", indent, @"sourceDevice", [NSNumber numberWithInteger:self.sourceDevice]];
- }
- if (self.hasContent) {
- [output appendFormat:@"%@%@: %@\n", indent, @"content", self.content];
- }
- [self.unknownFields writeDescriptionTo:output withIndent:indent];
-}
-- (BOOL) isEqual:(id)other {
- if (other == self) {
- return YES;
- }
- if (![other isKindOfClass:[Envelope class]]) {
- return NO;
- }
- Envelope *otherMessage = other;
- return
- self.hasType == otherMessage.hasType &&
- (!self.hasType || self.type == otherMessage.type) &&
- self.hasSource == otherMessage.hasSource &&
- (!self.hasSource || [self.source isEqual:otherMessage.source]) &&
- self.hasRelay == otherMessage.hasRelay &&
- (!self.hasRelay || [self.relay isEqual:otherMessage.relay]) &&
- self.hasTimestamp == otherMessage.hasTimestamp &&
- (!self.hasTimestamp || self.timestamp == otherMessage.timestamp) &&
- self.hasLegacyMessage == otherMessage.hasLegacyMessage &&
- (!self.hasLegacyMessage || [self.legacyMessage isEqual:otherMessage.legacyMessage]) &&
- self.hasSourceDevice == otherMessage.hasSourceDevice &&
- (!self.hasSourceDevice || self.sourceDevice == otherMessage.sourceDevice) &&
- self.hasContent == otherMessage.hasContent &&
- (!self.hasContent || [self.content isEqual:otherMessage.content]) &&
- (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
-}
-- (NSUInteger) hash {
- __block NSUInteger hashCode = 7;
- if (self.hasType) {
- hashCode = hashCode * 31 + self.type;
- }
- if (self.hasSource) {
- hashCode = hashCode * 31 + [self.source hash];
- }
- if (self.hasRelay) {
- hashCode = hashCode * 31 + [self.relay hash];
- }
- if (self.hasTimestamp) {
- hashCode = hashCode * 31 + [[NSNumber numberWithLongLong:self.timestamp] hash];
- }
- if (self.hasLegacyMessage) {
- hashCode = hashCode * 31 + [self.legacyMessage hash];
- }
- if (self.hasSourceDevice) {
- hashCode = hashCode * 31 + [[NSNumber numberWithInteger:self.sourceDevice] hash];
- }
- if (self.hasContent) {
- hashCode = hashCode * 31 + [self.content hash];
- }
- hashCode = hashCode * 31 + [self.unknownFields hash];
- return hashCode;
-}
-@end
-
-BOOL EnvelopeTypeIsValidValue(EnvelopeType value) {
- switch (value) {
- case EnvelopeTypeUnknown:
- case EnvelopeTypeCiphertext:
- case EnvelopeTypeKeyExchange:
- case EnvelopeTypePrekeyBundle:
- case EnvelopeTypeReceipt:
- return YES;
- default:
- return NO;
- }
-}
-@interface EnvelopeBuilder()
-@property (strong) Envelope* result;
-@end
-
-@implementation EnvelopeBuilder
-@synthesize result;
-- (id) init {
- if ((self = [super init])) {
- self.result = [[Envelope alloc] init];
- }
- return self;
-}
-- (PBGeneratedMessage*) internalGetResult {
- return result;
-}
-- (EnvelopeBuilder*) clear {
- self.result = [[Envelope alloc] init];
- return self;
-}
-- (EnvelopeBuilder*) clone {
- return [Envelope builderWithPrototype:result];
-}
-- (Envelope*) defaultInstance {
- return [Envelope defaultInstance];
-}
-- (Envelope*) build {
- [self checkInitialized];
- return [self buildPartial];
-}
-- (Envelope*) buildPartial {
- Envelope* returnMe = result;
- self.result = nil;
- return returnMe;
-}
-- (EnvelopeBuilder*) mergeFrom:(Envelope*) other {
- if (other == [Envelope defaultInstance]) {
- return self;
- }
- if (other.hasType) {
- [self setType:other.type];
- }
- if (other.hasSource) {
- [self setSource:other.source];
- }
- if (other.hasSourceDevice) {
- [self setSourceDevice:other.sourceDevice];
- }
- if (other.hasRelay) {
- [self setRelay:other.relay];
- }
- if (other.hasTimestamp) {
- [self setTimestamp:other.timestamp];
- }
- if (other.hasLegacyMessage) {
- [self setLegacyMessage:other.legacyMessage];
- }
- if (other.hasContent) {
- [self setContent:other.content];
- }
- [self mergeUnknownFields:other.unknownFields];
- return self;
-}
-- (EnvelopeBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
- return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
-}
-- (EnvelopeBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
- while (YES) {
- SInt32 tag = [input readTag];
- switch (tag) {
- case 0:
- [self setUnknownFields:[unknownFields build]];
- return self;
- default: {
- if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
- [self setUnknownFields:[unknownFields build]];
- return self;
- }
- break;
- }
- case 8: {
- EnvelopeType value = (EnvelopeType)[input readEnum];
- if (EnvelopeTypeIsValidValue(value)) {
- [self setType:value];
- } else {
- [unknownFields mergeVarintField:1 value:value];
- }
- break;
- }
- case 18: {
- [self setSource:[input readString]];
- break;
- }
- case 26: {
- [self setRelay:[input readString]];
- break;
- }
- case 40: {
- [self setTimestamp:[input readUInt64]];
- break;
- }
- case 50: {
- [self setLegacyMessage:[input readData]];
- break;
- }
- case 56: {
- [self setSourceDevice:[input readUInt32]];
- break;
- }
- case 66: {
- [self setContent:[input readData]];
- break;
- }
- }
- }
-}
-- (BOOL) hasType {
- return result.hasType;
-}
-- (EnvelopeType) type {
- return result.type;
-}
-- (EnvelopeBuilder*) setType:(EnvelopeType) value {
- result.hasType = YES;
- result.type = value;
- return self;
-}
-- (EnvelopeBuilder*) clearType {
- result.hasType = NO;
- result.type = EnvelopeTypeUnknown;
- return self;
-}
-- (BOOL) hasSource {
- return result.hasSource;
-}
-- (NSString*) source {
- return result.source;
-}
-- (EnvelopeBuilder*) setSource:(NSString*) value {
- result.hasSource = YES;
- result.source = value;
- return self;
-}
-- (EnvelopeBuilder*) clearSource {
- result.hasSource = NO;
- result.source = @"";
- return self;
-}
-- (BOOL) hasSourceDevice {
- return result.hasSourceDevice;
-}
-- (UInt32) sourceDevice {
- return result.sourceDevice;
-}
-- (EnvelopeBuilder*) setSourceDevice:(UInt32) value {
- result.hasSourceDevice = YES;
- result.sourceDevice = value;
- return self;
-}
-- (EnvelopeBuilder*) clearSourceDevice {
- result.hasSourceDevice = NO;
- result.sourceDevice = 0;
- return self;
-}
-- (BOOL) hasRelay {
- return result.hasRelay;
-}
-- (NSString*) relay {
- return result.relay;
-}
-- (EnvelopeBuilder*) setRelay:(NSString*) value {
- result.hasRelay = YES;
- result.relay = value;
- return self;
-}
-- (EnvelopeBuilder*) clearRelay {
- result.hasRelay = NO;
- result.relay = @"";
- return self;
-}
-- (BOOL) hasTimestamp {
- return result.hasTimestamp;
-}
-- (UInt64) timestamp {
- return result.timestamp;
-}
-- (EnvelopeBuilder*) setTimestamp:(UInt64) value {
- result.hasTimestamp = YES;
- result.timestamp = value;
- return self;
-}
-- (EnvelopeBuilder*) clearTimestamp {
- result.hasTimestamp = NO;
- result.timestamp = 0L;
- return self;
-}
-- (BOOL) hasLegacyMessage {
- return result.hasLegacyMessage;
-}
-- (NSData*) legacyMessage {
- return result.legacyMessage;
-}
-- (EnvelopeBuilder*) setLegacyMessage:(NSData*) value {
- result.hasLegacyMessage = YES;
- result.legacyMessage = value;
- return self;
-}
-- (EnvelopeBuilder*) clearLegacyMessage {
- result.hasLegacyMessage = NO;
- result.legacyMessage = [NSData data];
- return self;
-}
-- (BOOL) hasContent {
- return result.hasContent;
-}
-- (NSData*) content {
- return result.content;
-}
-- (EnvelopeBuilder*) setContent:(NSData*) value {
- result.hasContent = YES;
- result.content = value;
- return self;
-}
-- (EnvelopeBuilder*) clearContent {
- result.hasContent = NO;
- result.content = [NSData data];
- return self;
-}
-@end
-
-@interface Content ()
-@property (strong) DataMessage* dataMessage;
-@property (strong) SyncMessage* syncMessage;
-@end
-
-@implementation Content
-
-- (BOOL) hasDataMessage {
- return !!hasDataMessage_;
-}
-- (void) setHasDataMessage:(BOOL) value_ {
- hasDataMessage_ = !!value_;
-}
-@synthesize dataMessage;
-- (BOOL) hasSyncMessage {
- return !!hasSyncMessage_;
-}
-- (void) setHasSyncMessage:(BOOL) value_ {
- hasSyncMessage_ = !!value_;
-}
-@synthesize syncMessage;
-- (id) init {
- if ((self = [super init])) {
- self.dataMessage = [DataMessage defaultInstance];
- self.syncMessage = [SyncMessage defaultInstance];
- }
- return self;
-}
-static Content* defaultContentInstance = nil;
-+ (void) initialize {
- if (self == [Content class]) {
- defaultContentInstance = [[Content alloc] init];
- }
-}
-+ (Content*) defaultInstance {
- return defaultContentInstance;
-}
-- (Content*) defaultInstance {
- return defaultContentInstance;
-}
-- (BOOL) isInitialized {
- return YES;
-}
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
- if (self.hasDataMessage) {
- [output writeMessage:1 value:self.dataMessage];
- }
- if (self.hasSyncMessage) {
- [output writeMessage:2 value:self.syncMessage];
- }
- [self.unknownFields writeToCodedOutputStream:output];
-}
-- (SInt32) serializedSize {
- __block SInt32 size_ = memoizedSerializedSize;
- if (size_ != -1) {
- return size_;
- }
-
- size_ = 0;
- if (self.hasDataMessage) {
- size_ += computeMessageSize(1, self.dataMessage);
- }
- if (self.hasSyncMessage) {
- size_ += computeMessageSize(2, self.syncMessage);
- }
- size_ += self.unknownFields.serializedSize;
- memoizedSerializedSize = size_;
- return size_;
-}
-+ (Content*) parseFromData:(NSData*) data {
- return (Content*)[[[Content builder] mergeFromData:data] build];
-}
-+ (Content*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (Content*)[[[Content builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
-}
-+ (Content*) parseFromInputStream:(NSInputStream*) input {
- return (Content*)[[[Content builder] mergeFromInputStream:input] build];
-}
-+ (Content*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (Content*)[[[Content builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (Content*) parseFromCodedInputStream:(PBCodedInputStream*) input {
- return (Content*)[[[Content builder] mergeFromCodedInputStream:input] build];
-}
-+ (Content*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (Content*)[[[Content builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (ContentBuilder*) builder {
- return [[ContentBuilder alloc] init];
-}
-+ (ContentBuilder*) builderWithPrototype:(Content*) prototype {
- return [[Content builder] mergeFrom:prototype];
-}
-- (ContentBuilder*) builder {
- return [Content builder];
-}
-- (ContentBuilder*) toBuilder {
- return [Content builderWithPrototype:self];
-}
-- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
- if (self.hasDataMessage) {
- [output appendFormat:@"%@%@ {\n", indent, @"dataMessage"];
- [self.dataMessage writeDescriptionTo:output
- withIndent:[NSString stringWithFormat:@"%@ ", indent]];
- [output appendFormat:@"%@}\n", indent];
- }
- if (self.hasSyncMessage) {
- [output appendFormat:@"%@%@ {\n", indent, @"syncMessage"];
- [self.syncMessage writeDescriptionTo:output
- withIndent:[NSString stringWithFormat:@"%@ ", indent]];
- [output appendFormat:@"%@}\n", indent];
- }
- [self.unknownFields writeDescriptionTo:output withIndent:indent];
-}
-- (BOOL) isEqual:(id)other {
- if (other == self) {
- return YES;
- }
- if (![other isKindOfClass:[Content class]]) {
- return NO;
- }
- Content *otherMessage = other;
- return
- self.hasDataMessage == otherMessage.hasDataMessage &&
- (!self.hasDataMessage || [self.dataMessage isEqual:otherMessage.dataMessage]) &&
- self.hasSyncMessage == otherMessage.hasSyncMessage &&
- (!self.hasSyncMessage || [self.syncMessage isEqual:otherMessage.syncMessage]) &&
- (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
-}
-- (NSUInteger) hash {
- __block NSUInteger hashCode = 7;
- if (self.hasDataMessage) {
- hashCode = hashCode * 31 + [self.dataMessage hash];
- }
- if (self.hasSyncMessage) {
- hashCode = hashCode * 31 + [self.syncMessage hash];
- }
- hashCode = hashCode * 31 + [self.unknownFields hash];
- return hashCode;
-}
-@end
-
-@interface ContentBuilder()
-@property (strong) Content* result;
-@end
-
-@implementation ContentBuilder
-@synthesize result;
-- (id) init {
- if ((self = [super init])) {
- self.result = [[Content alloc] init];
- }
- return self;
-}
-- (PBGeneratedMessage*) internalGetResult {
- return result;
-}
-- (ContentBuilder*) clear {
- self.result = [[Content alloc] init];
- return self;
-}
-- (ContentBuilder*) clone {
- return [Content builderWithPrototype:result];
-}
-- (Content*) defaultInstance {
- return [Content defaultInstance];
-}
-- (Content*) build {
- [self checkInitialized];
- return [self buildPartial];
-}
-- (Content*) buildPartial {
- Content* returnMe = result;
- self.result = nil;
- return returnMe;
-}
-- (ContentBuilder*) mergeFrom:(Content*) other {
- if (other == [Content defaultInstance]) {
- return self;
- }
- if (other.hasDataMessage) {
- [self mergeDataMessage:other.dataMessage];
- }
- if (other.hasSyncMessage) {
- [self mergeSyncMessage:other.syncMessage];
- }
- [self mergeUnknownFields:other.unknownFields];
- return self;
-}
-- (ContentBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
- return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
-}
-- (ContentBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
- while (YES) {
- SInt32 tag = [input readTag];
- switch (tag) {
- case 0:
- [self setUnknownFields:[unknownFields build]];
- return self;
- default: {
- if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
- [self setUnknownFields:[unknownFields build]];
- return self;
- }
- break;
- }
- case 10: {
- DataMessageBuilder* subBuilder = [DataMessage builder];
- if (self.hasDataMessage) {
- [subBuilder mergeFrom:self.dataMessage];
- }
- [input readMessage:subBuilder extensionRegistry:extensionRegistry];
- [self setDataMessage:[subBuilder buildPartial]];
- break;
- }
- case 18: {
- SyncMessageBuilder* subBuilder = [SyncMessage builder];
- if (self.hasSyncMessage) {
- [subBuilder mergeFrom:self.syncMessage];
- }
- [input readMessage:subBuilder extensionRegistry:extensionRegistry];
- [self setSyncMessage:[subBuilder buildPartial]];
- break;
- }
- }
- }
-}
-- (BOOL) hasDataMessage {
- return result.hasDataMessage;
-}
-- (DataMessage*) dataMessage {
- return result.dataMessage;
-}
-- (ContentBuilder*) setDataMessage:(DataMessage*) value {
- result.hasDataMessage = YES;
- result.dataMessage = value;
- return self;
-}
-- (ContentBuilder*) setDataMessageBuilder:(DataMessageBuilder*) builderForValue {
- return [self setDataMessage:[builderForValue build]];
-}
-- (ContentBuilder*) mergeDataMessage:(DataMessage*) value {
- if (result.hasDataMessage &&
- result.dataMessage != [DataMessage defaultInstance]) {
- result.dataMessage =
- [[[DataMessage builderWithPrototype:result.dataMessage] mergeFrom:value] buildPartial];
- } else {
- result.dataMessage = value;
- }
- result.hasDataMessage = YES;
- return self;
-}
-- (ContentBuilder*) clearDataMessage {
- result.hasDataMessage = NO;
- result.dataMessage = [DataMessage defaultInstance];
- return self;
-}
-- (BOOL) hasSyncMessage {
- return result.hasSyncMessage;
-}
-- (SyncMessage*) syncMessage {
- return result.syncMessage;
-}
-- (ContentBuilder*) setSyncMessage:(SyncMessage*) value {
- result.hasSyncMessage = YES;
- result.syncMessage = value;
- return self;
-}
-- (ContentBuilder*) setSyncMessageBuilder:(SyncMessageBuilder*) builderForValue {
- return [self setSyncMessage:[builderForValue build]];
-}
-- (ContentBuilder*) mergeSyncMessage:(SyncMessage*) value {
- if (result.hasSyncMessage &&
- result.syncMessage != [SyncMessage defaultInstance]) {
- result.syncMessage =
- [[[SyncMessage builderWithPrototype:result.syncMessage] mergeFrom:value] buildPartial];
- } else {
- result.syncMessage = value;
- }
- result.hasSyncMessage = YES;
- return self;
-}
-- (ContentBuilder*) clearSyncMessage {
- result.hasSyncMessage = NO;
- result.syncMessage = [SyncMessage defaultInstance];
- return self;
-}
-@end
-
-@interface DataMessage ()
-@property (strong) NSString* body;
-@property (strong) NSMutableArray * attachmentsArray;
-@property (strong) GroupContext* group;
-@property UInt32 flags;
-@end
-
-@implementation DataMessage
-
-- (BOOL) hasBody {
- return !!hasBody_;
-}
-- (void) setHasBody:(BOOL) value_ {
- hasBody_ = !!value_;
-}
-@synthesize body;
-@synthesize attachmentsArray;
-@dynamic attachments;
-- (BOOL) hasGroup {
- return !!hasGroup_;
-}
-- (void) setHasGroup:(BOOL) value_ {
- hasGroup_ = !!value_;
-}
-@synthesize group;
-- (BOOL) hasFlags {
- return !!hasFlags_;
-}
-- (void) setHasFlags:(BOOL) value_ {
- hasFlags_ = !!value_;
-}
-@synthesize flags;
-- (id) init {
- if ((self = [super init])) {
- self.body = @"";
- self.group = [GroupContext defaultInstance];
- self.flags = 0;
- }
- return self;
-}
-static DataMessage* defaultDataMessageInstance = nil;
-+ (void) initialize {
- if (self == [DataMessage class]) {
- defaultDataMessageInstance = [[DataMessage alloc] init];
- }
-}
-+ (DataMessage*) defaultInstance {
- return defaultDataMessageInstance;
-}
-- (DataMessage*) defaultInstance {
- return defaultDataMessageInstance;
-}
-- (NSArray *)attachments {
- return attachmentsArray;
-}
-- (AttachmentPointer*)attachmentsAtIndex:(NSUInteger)index {
- return [attachmentsArray objectAtIndex:index];
-}
-- (BOOL) isInitialized {
- return YES;
-}
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
- if (self.hasBody) {
- [output writeString:1 value:self.body];
- }
- [self.attachmentsArray enumerateObjectsUsingBlock:^(AttachmentPointer *element, NSUInteger idx, BOOL *stop) {
- [output writeMessage:2 value:element];
- }];
- if (self.hasGroup) {
- [output writeMessage:3 value:self.group];
- }
- if (self.hasFlags) {
- [output writeUInt32:4 value:self.flags];
- }
- [self.unknownFields writeToCodedOutputStream:output];
-}
-- (SInt32) serializedSize {
- __block SInt32 size_ = memoizedSerializedSize;
- if (size_ != -1) {
- return size_;
- }
-
- size_ = 0;
- if (self.hasBody) {
- size_ += computeStringSize(1, self.body);
- }
- [self.attachmentsArray enumerateObjectsUsingBlock:^(AttachmentPointer *element, NSUInteger idx, BOOL *stop) {
- size_ += computeMessageSize(2, element);
- }];
- if (self.hasGroup) {
- size_ += computeMessageSize(3, self.group);
- }
- if (self.hasFlags) {
- size_ += computeUInt32Size(4, self.flags);
- }
- size_ += self.unknownFields.serializedSize;
- memoizedSerializedSize = size_;
- return size_;
-}
-+ (DataMessage*) parseFromData:(NSData*) data {
- return (DataMessage*)[[[DataMessage builder] mergeFromData:data] build];
-}
-+ (DataMessage*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (DataMessage*)[[[DataMessage builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
-}
-+ (DataMessage*) parseFromInputStream:(NSInputStream*) input {
- return (DataMessage*)[[[DataMessage builder] mergeFromInputStream:input] build];
-}
-+ (DataMessage*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (DataMessage*)[[[DataMessage builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (DataMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input {
- return (DataMessage*)[[[DataMessage builder] mergeFromCodedInputStream:input] build];
-}
-+ (DataMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (DataMessage*)[[[DataMessage builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (DataMessageBuilder*) builder {
- return [[DataMessageBuilder alloc] init];
-}
-+ (DataMessageBuilder*) builderWithPrototype:(DataMessage*) prototype {
- return [[DataMessage builder] mergeFrom:prototype];
-}
-- (DataMessageBuilder*) builder {
- return [DataMessage builder];
-}
-- (DataMessageBuilder*) toBuilder {
- return [DataMessage builderWithPrototype:self];
-}
-- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
- if (self.hasBody) {
- [output appendFormat:@"%@%@: %@\n", indent, @"body", self.body];
- }
- [self.attachmentsArray enumerateObjectsUsingBlock:^(AttachmentPointer *element, NSUInteger idx, BOOL *stop) {
- [output appendFormat:@"%@%@ {\n", indent, @"attachments"];
- [element writeDescriptionTo:output
- withIndent:[NSString stringWithFormat:@"%@ ", indent]];
- [output appendFormat:@"%@}\n", indent];
- }];
- if (self.hasGroup) {
- [output appendFormat:@"%@%@ {\n", indent, @"group"];
- [self.group writeDescriptionTo:output
- withIndent:[NSString stringWithFormat:@"%@ ", indent]];
- [output appendFormat:@"%@}\n", indent];
- }
- if (self.hasFlags) {
- [output appendFormat:@"%@%@: %@\n", indent, @"flags", [NSNumber numberWithInteger:self.flags]];
- }
- [self.unknownFields writeDescriptionTo:output withIndent:indent];
-}
-- (BOOL) isEqual:(id)other {
- if (other == self) {
- return YES;
- }
- if (![other isKindOfClass:[DataMessage class]]) {
- return NO;
- }
- DataMessage *otherMessage = other;
- return
- self.hasBody == otherMessage.hasBody &&
- (!self.hasBody || [self.body isEqual:otherMessage.body]) &&
- [self.attachmentsArray isEqualToArray:otherMessage.attachmentsArray] &&
- self.hasGroup == otherMessage.hasGroup &&
- (!self.hasGroup || [self.group isEqual:otherMessage.group]) &&
- self.hasFlags == otherMessage.hasFlags &&
- (!self.hasFlags || self.flags == otherMessage.flags) &&
- (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
-}
-- (NSUInteger) hash {
- __block NSUInteger hashCode = 7;
- if (self.hasBody) {
- hashCode = hashCode * 31 + [self.body hash];
- }
- [self.attachmentsArray enumerateObjectsUsingBlock:^(AttachmentPointer *element, NSUInteger idx, BOOL *stop) {
- hashCode = hashCode * 31 + [element hash];
- }];
- if (self.hasGroup) {
- hashCode = hashCode * 31 + [self.group hash];
- }
- if (self.hasFlags) {
- hashCode = hashCode * 31 + [[NSNumber numberWithInteger:self.flags] hash];
- }
- hashCode = hashCode * 31 + [self.unknownFields hash];
- return hashCode;
-}
-@end
-
-BOOL DataMessageFlagsIsValidValue(DataMessageFlags value) {
- switch (value) {
- case DataMessageFlagsEndSession:
- return YES;
- default:
- return NO;
- }
-}
-@interface DataMessageBuilder()
-@property (strong) DataMessage* result;
-@end
-
-@implementation DataMessageBuilder
-@synthesize result;
-- (id) init {
- if ((self = [super init])) {
- self.result = [[DataMessage alloc] init];
- }
- return self;
-}
-- (PBGeneratedMessage*) internalGetResult {
- return result;
-}
-- (DataMessageBuilder*) clear {
- self.result = [[DataMessage alloc] init];
- return self;
-}
-- (DataMessageBuilder*) clone {
- return [DataMessage builderWithPrototype:result];
-}
-- (DataMessage*) defaultInstance {
- return [DataMessage defaultInstance];
-}
-- (DataMessage*) build {
- [self checkInitialized];
- return [self buildPartial];
-}
-- (DataMessage*) buildPartial {
- DataMessage* returnMe = result;
- self.result = nil;
- return returnMe;
-}
-- (DataMessageBuilder*) mergeFrom:(DataMessage*) other {
- if (other == [DataMessage defaultInstance]) {
- return self;
- }
- if (other.hasBody) {
- [self setBody:other.body];
- }
- if (other.attachmentsArray.count > 0) {
- if (result.attachmentsArray == nil) {
- result.attachmentsArray = [[NSMutableArray alloc] initWithArray:other.attachmentsArray];
- } else {
- [result.attachmentsArray addObjectsFromArray:other.attachmentsArray];
- }
- }
- if (other.hasGroup) {
- [self mergeGroup:other.group];
- }
- if (other.hasFlags) {
- [self setFlags:other.flags];
- }
- [self mergeUnknownFields:other.unknownFields];
- return self;
-}
-- (DataMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
- return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
-}
-- (DataMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
- while (YES) {
- SInt32 tag = [input readTag];
- switch (tag) {
- case 0:
- [self setUnknownFields:[unknownFields build]];
- return self;
- default: {
- if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
- [self setUnknownFields:[unknownFields build]];
- return self;
- }
- break;
- }
- case 10: {
- [self setBody:[input readString]];
- break;
- }
- case 18: {
- AttachmentPointerBuilder* subBuilder = [AttachmentPointer builder];
- [input readMessage:subBuilder extensionRegistry:extensionRegistry];
- [self addAttachments:[subBuilder buildPartial]];
- break;
- }
- case 26: {
- GroupContextBuilder* subBuilder = [GroupContext builder];
- if (self.hasGroup) {
- [subBuilder mergeFrom:self.group];
- }
- [input readMessage:subBuilder extensionRegistry:extensionRegistry];
- [self setGroup:[subBuilder buildPartial]];
- break;
- }
- case 32: {
- [self setFlags:[input readUInt32]];
- break;
- }
- }
- }
-}
-- (BOOL) hasBody {
- return result.hasBody;
-}
-- (NSString*) body {
- return result.body;
-}
-- (DataMessageBuilder*) setBody:(NSString*) value {
- result.hasBody = YES;
- result.body = value;
- return self;
-}
-- (DataMessageBuilder*) clearBody {
- result.hasBody = NO;
- result.body = @"";
- return self;
-}
-- (NSMutableArray *)attachments {
- return result.attachmentsArray;
-}
-- (AttachmentPointer*)attachmentsAtIndex:(NSUInteger)index {
- return [result attachmentsAtIndex:index];
-}
-- (DataMessageBuilder *)addAttachments:(AttachmentPointer*)value {
- if (result.attachmentsArray == nil) {
- result.attachmentsArray = [[NSMutableArray alloc]init];
- }
- [result.attachmentsArray addObject:value];
- return self;
-}
-- (DataMessageBuilder *)setAttachmentsArray:(NSArray *)array {
- result.attachmentsArray = [[NSMutableArray alloc]initWithArray:array];
- return self;
-}
-- (DataMessageBuilder *)clearAttachments {
- result.attachmentsArray = nil;
- return self;
-}
-- (BOOL) hasGroup {
- return result.hasGroup;
-}
-- (GroupContext*) group {
- return result.group;
-}
-- (DataMessageBuilder*) setGroup:(GroupContext*) value {
- result.hasGroup = YES;
- result.group = value;
- return self;
-}
-- (DataMessageBuilder*) setGroupBuilder:(GroupContextBuilder*) builderForValue {
- return [self setGroup:[builderForValue build]];
-}
-- (DataMessageBuilder*) mergeGroup:(GroupContext*) value {
- if (result.hasGroup &&
- result.group != [GroupContext defaultInstance]) {
- result.group =
- [[[GroupContext builderWithPrototype:result.group] mergeFrom:value] buildPartial];
- } else {
- result.group = value;
- }
- result.hasGroup = YES;
- return self;
-}
-- (DataMessageBuilder*) clearGroup {
- result.hasGroup = NO;
- result.group = [GroupContext defaultInstance];
- return self;
-}
-- (BOOL) hasFlags {
- return result.hasFlags;
-}
-- (UInt32) flags {
- return result.flags;
-}
-- (DataMessageBuilder*) setFlags:(UInt32) value {
- result.hasFlags = YES;
- result.flags = value;
- return self;
-}
-- (DataMessageBuilder*) clearFlags {
- result.hasFlags = NO;
- result.flags = 0;
- return self;
-}
-@end
-
-@interface SyncMessage ()
-@property (strong) SyncMessageSent* sent;
-@property (strong) SyncMessageContacts* contacts;
-@property (strong) SyncMessageGroups* groups;
-@property (strong) SyncMessageRequest* request;
-@end
-
-@implementation SyncMessage
-
-- (BOOL) hasSent {
- return !!hasSent_;
-}
-- (void) setHasSent:(BOOL) value_ {
- hasSent_ = !!value_;
-}
-@synthesize sent;
-- (BOOL) hasContacts {
- return !!hasContacts_;
-}
-- (void) setHasContacts:(BOOL) value_ {
- hasContacts_ = !!value_;
-}
-@synthesize contacts;
-- (BOOL) hasGroups {
- return !!hasGroups_;
-}
-- (void) setHasGroups:(BOOL) value_ {
- hasGroups_ = !!value_;
-}
-@synthesize groups;
-- (BOOL) hasRequest {
- return !!hasRequest_;
-}
-- (void) setHasRequest:(BOOL) value_ {
- hasRequest_ = !!value_;
-}
-@synthesize request;
-- (id) init {
- if ((self = [super init])) {
- self.sent = [SyncMessageSent defaultInstance];
- self.contacts = [SyncMessageContacts defaultInstance];
- self.groups = [SyncMessageGroups defaultInstance];
- self.request = [SyncMessageRequest defaultInstance];
- }
- return self;
-}
-static SyncMessage* defaultSyncMessageInstance = nil;
-+ (void) initialize {
- if (self == [SyncMessage class]) {
- defaultSyncMessageInstance = [[SyncMessage alloc] init];
- }
-}
-+ (SyncMessage*) defaultInstance {
- return defaultSyncMessageInstance;
-}
-- (SyncMessage*) defaultInstance {
- return defaultSyncMessageInstance;
-}
-- (BOOL) isInitialized {
- return YES;
-}
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
- if (self.hasSent) {
- [output writeMessage:1 value:self.sent];
- }
- if (self.hasContacts) {
- [output writeMessage:2 value:self.contacts];
- }
- if (self.hasGroups) {
- [output writeMessage:3 value:self.groups];
- }
- if (self.hasRequest) {
- [output writeMessage:4 value:self.request];
- }
- [self.unknownFields writeToCodedOutputStream:output];
-}
-- (SInt32) serializedSize {
- __block SInt32 size_ = memoizedSerializedSize;
- if (size_ != -1) {
- return size_;
- }
-
- size_ = 0;
- if (self.hasSent) {
- size_ += computeMessageSize(1, self.sent);
- }
- if (self.hasContacts) {
- size_ += computeMessageSize(2, self.contacts);
- }
- if (self.hasGroups) {
- size_ += computeMessageSize(3, self.groups);
- }
- if (self.hasRequest) {
- size_ += computeMessageSize(4, self.request);
- }
- size_ += self.unknownFields.serializedSize;
- memoizedSerializedSize = size_;
- return size_;
-}
-+ (SyncMessage*) parseFromData:(NSData*) data {
- return (SyncMessage*)[[[SyncMessage builder] mergeFromData:data] build];
-}
-+ (SyncMessage*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (SyncMessage*)[[[SyncMessage builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
-}
-+ (SyncMessage*) parseFromInputStream:(NSInputStream*) input {
- return (SyncMessage*)[[[SyncMessage builder] mergeFromInputStream:input] build];
-}
-+ (SyncMessage*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (SyncMessage*)[[[SyncMessage builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (SyncMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input {
- return (SyncMessage*)[[[SyncMessage builder] mergeFromCodedInputStream:input] build];
-}
-+ (SyncMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (SyncMessage*)[[[SyncMessage builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (SyncMessageBuilder*) builder {
- return [[SyncMessageBuilder alloc] init];
-}
-+ (SyncMessageBuilder*) builderWithPrototype:(SyncMessage*) prototype {
- return [[SyncMessage builder] mergeFrom:prototype];
-}
-- (SyncMessageBuilder*) builder {
- return [SyncMessage builder];
-}
-- (SyncMessageBuilder*) toBuilder {
- return [SyncMessage builderWithPrototype:self];
-}
-- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
- if (self.hasSent) {
- [output appendFormat:@"%@%@ {\n", indent, @"sent"];
- [self.sent writeDescriptionTo:output
- withIndent:[NSString stringWithFormat:@"%@ ", indent]];
- [output appendFormat:@"%@}\n", indent];
- }
- if (self.hasContacts) {
- [output appendFormat:@"%@%@ {\n", indent, @"contacts"];
- [self.contacts writeDescriptionTo:output
- withIndent:[NSString stringWithFormat:@"%@ ", indent]];
- [output appendFormat:@"%@}\n", indent];
- }
- if (self.hasGroups) {
- [output appendFormat:@"%@%@ {\n", indent, @"groups"];
- [self.groups writeDescriptionTo:output
- withIndent:[NSString stringWithFormat:@"%@ ", indent]];
- [output appendFormat:@"%@}\n", indent];
- }
- if (self.hasRequest) {
- [output appendFormat:@"%@%@ {\n", indent, @"request"];
- [self.request writeDescriptionTo:output
- withIndent:[NSString stringWithFormat:@"%@ ", indent]];
- [output appendFormat:@"%@}\n", indent];
- }
- [self.unknownFields writeDescriptionTo:output withIndent:indent];
-}
-- (BOOL) isEqual:(id)other {
- if (other == self) {
- return YES;
- }
- if (![other isKindOfClass:[SyncMessage class]]) {
- return NO;
- }
- SyncMessage *otherMessage = other;
- return
- self.hasSent == otherMessage.hasSent &&
- (!self.hasSent || [self.sent isEqual:otherMessage.sent]) &&
- self.hasContacts == otherMessage.hasContacts &&
- (!self.hasContacts || [self.contacts isEqual:otherMessage.contacts]) &&
- self.hasGroups == otherMessage.hasGroups &&
- (!self.hasGroups || [self.groups isEqual:otherMessage.groups]) &&
- self.hasRequest == otherMessage.hasRequest &&
- (!self.hasRequest || [self.request isEqual:otherMessage.request]) &&
- (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
-}
-- (NSUInteger) hash {
- __block NSUInteger hashCode = 7;
- if (self.hasSent) {
- hashCode = hashCode * 31 + [self.sent hash];
- }
- if (self.hasContacts) {
- hashCode = hashCode * 31 + [self.contacts hash];
- }
- if (self.hasGroups) {
- hashCode = hashCode * 31 + [self.groups hash];
- }
- if (self.hasRequest) {
- hashCode = hashCode * 31 + [self.request hash];
- }
- hashCode = hashCode * 31 + [self.unknownFields hash];
- return hashCode;
-}
-@end
-
-@interface SyncMessageSent ()
-@property (strong) NSString* destination;
-@property UInt64 timestamp;
-@property (strong) DataMessage* message;
-@end
-
-@implementation SyncMessageSent
-
-- (BOOL) hasDestination {
- return !!hasDestination_;
-}
-- (void) setHasDestination:(BOOL) value_ {
- hasDestination_ = !!value_;
-}
-@synthesize destination;
-- (BOOL) hasTimestamp {
- return !!hasTimestamp_;
-}
-- (void) setHasTimestamp:(BOOL) value_ {
- hasTimestamp_ = !!value_;
-}
-@synthesize timestamp;
-- (BOOL) hasMessage {
- return !!hasMessage_;
-}
-- (void) setHasMessage:(BOOL) value_ {
- hasMessage_ = !!value_;
-}
-@synthesize message;
-- (id) init {
- if ((self = [super init])) {
- self.destination = @"";
- self.timestamp = 0L;
- self.message = [DataMessage defaultInstance];
- }
- return self;
-}
-static SyncMessageSent* defaultSyncMessageSentInstance = nil;
-+ (void) initialize {
- if (self == [SyncMessageSent class]) {
- defaultSyncMessageSentInstance = [[SyncMessageSent alloc] init];
- }
-}
-+ (SyncMessageSent*) defaultInstance {
- return defaultSyncMessageSentInstance;
-}
-- (SyncMessageSent*) defaultInstance {
- return defaultSyncMessageSentInstance;
-}
-- (BOOL) isInitialized {
- return YES;
-}
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
- if (self.hasDestination) {
- [output writeString:1 value:self.destination];
- }
- if (self.hasTimestamp) {
- [output writeUInt64:2 value:self.timestamp];
- }
- if (self.hasMessage) {
- [output writeMessage:3 value:self.message];
- }
- [self.unknownFields writeToCodedOutputStream:output];
-}
-- (SInt32) serializedSize {
- __block SInt32 size_ = memoizedSerializedSize;
- if (size_ != -1) {
- return size_;
- }
-
- size_ = 0;
- if (self.hasDestination) {
- size_ += computeStringSize(1, self.destination);
- }
- if (self.hasTimestamp) {
- size_ += computeUInt64Size(2, self.timestamp);
- }
- if (self.hasMessage) {
- size_ += computeMessageSize(3, self.message);
- }
- size_ += self.unknownFields.serializedSize;
- memoizedSerializedSize = size_;
- return size_;
-}
-+ (SyncMessageSent*) parseFromData:(NSData*) data {
- return (SyncMessageSent*)[[[SyncMessageSent builder] mergeFromData:data] build];
-}
-+ (SyncMessageSent*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (SyncMessageSent*)[[[SyncMessageSent builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
-}
-+ (SyncMessageSent*) parseFromInputStream:(NSInputStream*) input {
- return (SyncMessageSent*)[[[SyncMessageSent builder] mergeFromInputStream:input] build];
-}
-+ (SyncMessageSent*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (SyncMessageSent*)[[[SyncMessageSent builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (SyncMessageSent*) parseFromCodedInputStream:(PBCodedInputStream*) input {
- return (SyncMessageSent*)[[[SyncMessageSent builder] mergeFromCodedInputStream:input] build];
-}
-+ (SyncMessageSent*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (SyncMessageSent*)[[[SyncMessageSent builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (SyncMessageSentBuilder*) builder {
- return [[SyncMessageSentBuilder alloc] init];
-}
-+ (SyncMessageSentBuilder*) builderWithPrototype:(SyncMessageSent*) prototype {
- return [[SyncMessageSent builder] mergeFrom:prototype];
-}
-- (SyncMessageSentBuilder*) builder {
- return [SyncMessageSent builder];
-}
-- (SyncMessageSentBuilder*) toBuilder {
- return [SyncMessageSent builderWithPrototype:self];
-}
-- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
- if (self.hasDestination) {
- [output appendFormat:@"%@%@: %@\n", indent, @"destination", self.destination];
- }
- if (self.hasTimestamp) {
- [output appendFormat:@"%@%@: %@\n", indent, @"timestamp", [NSNumber numberWithLongLong:self.timestamp]];
- }
- if (self.hasMessage) {
- [output appendFormat:@"%@%@ {\n", indent, @"message"];
- [self.message writeDescriptionTo:output
- withIndent:[NSString stringWithFormat:@"%@ ", indent]];
- [output appendFormat:@"%@}\n", indent];
- }
- [self.unknownFields writeDescriptionTo:output withIndent:indent];
-}
-- (BOOL) isEqual:(id)other {
- if (other == self) {
- return YES;
- }
- if (![other isKindOfClass:[SyncMessageSent class]]) {
- return NO;
- }
- SyncMessageSent *otherMessage = other;
- return
- self.hasDestination == otherMessage.hasDestination &&
- (!self.hasDestination || [self.destination isEqual:otherMessage.destination]) &&
- self.hasTimestamp == otherMessage.hasTimestamp &&
- (!self.hasTimestamp || self.timestamp == otherMessage.timestamp) &&
- self.hasMessage == otherMessage.hasMessage &&
- (!self.hasMessage || [self.message isEqual:otherMessage.message]) &&
- (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
-}
-- (NSUInteger) hash {
- __block NSUInteger hashCode = 7;
- if (self.hasDestination) {
- hashCode = hashCode * 31 + [self.destination hash];
- }
- if (self.hasTimestamp) {
- hashCode = hashCode * 31 + [[NSNumber numberWithLongLong:self.timestamp] hash];
- }
- if (self.hasMessage) {
- hashCode = hashCode * 31 + [self.message hash];
- }
- hashCode = hashCode * 31 + [self.unknownFields hash];
- return hashCode;
-}
-@end
-
-@interface SyncMessageSentBuilder()
-@property (strong) SyncMessageSent* result;
-@end
-
-@implementation SyncMessageSentBuilder
-@synthesize result;
-- (id) init {
- if ((self = [super init])) {
- self.result = [[SyncMessageSent alloc] init];
- }
- return self;
-}
-- (PBGeneratedMessage*) internalGetResult {
- return result;
-}
-- (SyncMessageSentBuilder*) clear {
- self.result = [[SyncMessageSent alloc] init];
- return self;
-}
-- (SyncMessageSentBuilder*) clone {
- return [SyncMessageSent builderWithPrototype:result];
-}
-- (SyncMessageSent*) defaultInstance {
- return [SyncMessageSent defaultInstance];
-}
-- (SyncMessageSent*) build {
- [self checkInitialized];
- return [self buildPartial];
-}
-- (SyncMessageSent*) buildPartial {
- SyncMessageSent* returnMe = result;
- self.result = nil;
- return returnMe;
-}
-- (SyncMessageSentBuilder*) mergeFrom:(SyncMessageSent*) other {
- if (other == [SyncMessageSent defaultInstance]) {
- return self;
- }
- if (other.hasDestination) {
- [self setDestination:other.destination];
- }
- if (other.hasTimestamp) {
- [self setTimestamp:other.timestamp];
- }
- if (other.hasMessage) {
- [self mergeMessage:other.message];
- }
- [self mergeUnknownFields:other.unknownFields];
- return self;
-}
-- (SyncMessageSentBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
- return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
-}
-- (SyncMessageSentBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
- while (YES) {
- SInt32 tag = [input readTag];
- switch (tag) {
- case 0:
- [self setUnknownFields:[unknownFields build]];
- return self;
- default: {
- if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
- [self setUnknownFields:[unknownFields build]];
- return self;
- }
- break;
- }
- case 10: {
- [self setDestination:[input readString]];
- break;
- }
- case 16: {
- [self setTimestamp:[input readUInt64]];
- break;
- }
- case 26: {
- DataMessageBuilder* subBuilder = [DataMessage builder];
- if (self.hasMessage) {
- [subBuilder mergeFrom:self.message];
- }
- [input readMessage:subBuilder extensionRegistry:extensionRegistry];
- [self setMessage:[subBuilder buildPartial]];
- break;
- }
- }
- }
-}
-- (BOOL) hasDestination {
- return result.hasDestination;
-}
-- (NSString*) destination {
- return result.destination;
-}
-- (SyncMessageSentBuilder*) setDestination:(NSString*) value {
- result.hasDestination = YES;
- result.destination = value;
- return self;
-}
-- (SyncMessageSentBuilder*) clearDestination {
- result.hasDestination = NO;
- result.destination = @"";
- return self;
-}
-- (BOOL) hasTimestamp {
- return result.hasTimestamp;
-}
-- (UInt64) timestamp {
- return result.timestamp;
-}
-- (SyncMessageSentBuilder*) setTimestamp:(UInt64) value {
- result.hasTimestamp = YES;
- result.timestamp = value;
- return self;
-}
-- (SyncMessageSentBuilder*) clearTimestamp {
- result.hasTimestamp = NO;
- result.timestamp = 0L;
- return self;
-}
-- (BOOL) hasMessage {
- return result.hasMessage;
-}
-- (DataMessage*) message {
- return result.message;
-}
-- (SyncMessageSentBuilder*) setMessage:(DataMessage*) value {
- result.hasMessage = YES;
- result.message = value;
- return self;
-}
-- (SyncMessageSentBuilder*) setMessageBuilder:(DataMessageBuilder*) builderForValue {
- return [self setMessage:[builderForValue build]];
-}
-- (SyncMessageSentBuilder*) mergeMessage:(DataMessage*) value {
- if (result.hasMessage &&
- result.message != [DataMessage defaultInstance]) {
- result.message =
- [[[DataMessage builderWithPrototype:result.message] mergeFrom:value] buildPartial];
- } else {
- result.message = value;
- }
- result.hasMessage = YES;
- return self;
-}
-- (SyncMessageSentBuilder*) clearMessage {
- result.hasMessage = NO;
- result.message = [DataMessage defaultInstance];
- return self;
-}
-@end
-
-@interface SyncMessageContacts ()
-@property (strong) AttachmentPointer* blob;
-@end
-
-@implementation SyncMessageContacts
-
-- (BOOL) hasBlob {
- return !!hasBlob_;
-}
-- (void) setHasBlob:(BOOL) value_ {
- hasBlob_ = !!value_;
-}
-@synthesize blob;
-- (id) init {
- if ((self = [super init])) {
- self.blob = [AttachmentPointer defaultInstance];
- }
- return self;
-}
-static SyncMessageContacts* defaultSyncMessageContactsInstance = nil;
-+ (void) initialize {
- if (self == [SyncMessageContacts class]) {
- defaultSyncMessageContactsInstance = [[SyncMessageContacts alloc] init];
- }
-}
-+ (SyncMessageContacts*) defaultInstance {
- return defaultSyncMessageContactsInstance;
-}
-- (SyncMessageContacts*) defaultInstance {
- return defaultSyncMessageContactsInstance;
-}
-- (BOOL) isInitialized {
- return YES;
-}
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
- if (self.hasBlob) {
- [output writeMessage:1 value:self.blob];
- }
- [self.unknownFields writeToCodedOutputStream:output];
-}
-- (SInt32) serializedSize {
- __block SInt32 size_ = memoizedSerializedSize;
- if (size_ != -1) {
- return size_;
- }
-
- size_ = 0;
- if (self.hasBlob) {
- size_ += computeMessageSize(1, self.blob);
- }
- size_ += self.unknownFields.serializedSize;
- memoizedSerializedSize = size_;
- return size_;
-}
-+ (SyncMessageContacts*) parseFromData:(NSData*) data {
- return (SyncMessageContacts*)[[[SyncMessageContacts builder] mergeFromData:data] build];
-}
-+ (SyncMessageContacts*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (SyncMessageContacts*)[[[SyncMessageContacts builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
-}
-+ (SyncMessageContacts*) parseFromInputStream:(NSInputStream*) input {
- return (SyncMessageContacts*)[[[SyncMessageContacts builder] mergeFromInputStream:input] build];
-}
-+ (SyncMessageContacts*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (SyncMessageContacts*)[[[SyncMessageContacts builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (SyncMessageContacts*) parseFromCodedInputStream:(PBCodedInputStream*) input {
- return (SyncMessageContacts*)[[[SyncMessageContacts builder] mergeFromCodedInputStream:input] build];
-}
-+ (SyncMessageContacts*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (SyncMessageContacts*)[[[SyncMessageContacts builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (SyncMessageContactsBuilder*) builder {
- return [[SyncMessageContactsBuilder alloc] init];
-}
-+ (SyncMessageContactsBuilder*) builderWithPrototype:(SyncMessageContacts*) prototype {
- return [[SyncMessageContacts builder] mergeFrom:prototype];
-}
-- (SyncMessageContactsBuilder*) builder {
- return [SyncMessageContacts builder];
-}
-- (SyncMessageContactsBuilder*) toBuilder {
- return [SyncMessageContacts builderWithPrototype:self];
-}
-- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
- if (self.hasBlob) {
- [output appendFormat:@"%@%@ {\n", indent, @"blob"];
- [self.blob writeDescriptionTo:output
- withIndent:[NSString stringWithFormat:@"%@ ", indent]];
- [output appendFormat:@"%@}\n", indent];
- }
- [self.unknownFields writeDescriptionTo:output withIndent:indent];
-}
-- (BOOL) isEqual:(id)other {
- if (other == self) {
- return YES;
- }
- if (![other isKindOfClass:[SyncMessageContacts class]]) {
- return NO;
- }
- SyncMessageContacts *otherMessage = other;
- return
- self.hasBlob == otherMessage.hasBlob &&
- (!self.hasBlob || [self.blob isEqual:otherMessage.blob]) &&
- (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
-}
-- (NSUInteger) hash {
- __block NSUInteger hashCode = 7;
- if (self.hasBlob) {
- hashCode = hashCode * 31 + [self.blob hash];
- }
- hashCode = hashCode * 31 + [self.unknownFields hash];
- return hashCode;
-}
-@end
-
-@interface SyncMessageContactsBuilder()
-@property (strong) SyncMessageContacts* result;
-@end
-
-@implementation SyncMessageContactsBuilder
-@synthesize result;
-- (id) init {
- if ((self = [super init])) {
- self.result = [[SyncMessageContacts alloc] init];
- }
- return self;
-}
-- (PBGeneratedMessage*) internalGetResult {
- return result;
-}
-- (SyncMessageContactsBuilder*) clear {
- self.result = [[SyncMessageContacts alloc] init];
- return self;
-}
-- (SyncMessageContactsBuilder*) clone {
- return [SyncMessageContacts builderWithPrototype:result];
-}
-- (SyncMessageContacts*) defaultInstance {
- return [SyncMessageContacts defaultInstance];
-}
-- (SyncMessageContacts*) build {
- [self checkInitialized];
- return [self buildPartial];
-}
-- (SyncMessageContacts*) buildPartial {
- SyncMessageContacts* returnMe = result;
- self.result = nil;
- return returnMe;
-}
-- (SyncMessageContactsBuilder*) mergeFrom:(SyncMessageContacts*) other {
- if (other == [SyncMessageContacts defaultInstance]) {
- return self;
- }
- if (other.hasBlob) {
- [self mergeBlob:other.blob];
- }
- [self mergeUnknownFields:other.unknownFields];
- return self;
-}
-- (SyncMessageContactsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
- return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
-}
-- (SyncMessageContactsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
- while (YES) {
- SInt32 tag = [input readTag];
- switch (tag) {
- case 0:
- [self setUnknownFields:[unknownFields build]];
- return self;
- default: {
- if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
- [self setUnknownFields:[unknownFields build]];
- return self;
- }
- break;
- }
- case 10: {
- AttachmentPointerBuilder* subBuilder = [AttachmentPointer builder];
- if (self.hasBlob) {
- [subBuilder mergeFrom:self.blob];
- }
- [input readMessage:subBuilder extensionRegistry:extensionRegistry];
- [self setBlob:[subBuilder buildPartial]];
- break;
- }
- }
- }
-}
-- (BOOL) hasBlob {
- return result.hasBlob;
-}
-- (AttachmentPointer*) blob {
- return result.blob;
-}
-- (SyncMessageContactsBuilder*) setBlob:(AttachmentPointer*) value {
- result.hasBlob = YES;
- result.blob = value;
- return self;
-}
-- (SyncMessageContactsBuilder*) setBlobBuilder:(AttachmentPointerBuilder*) builderForValue {
- return [self setBlob:[builderForValue build]];
-}
-- (SyncMessageContactsBuilder*) mergeBlob:(AttachmentPointer*) value {
- if (result.hasBlob &&
- result.blob != [AttachmentPointer defaultInstance]) {
- result.blob =
- [[[AttachmentPointer builderWithPrototype:result.blob] mergeFrom:value] buildPartial];
- } else {
- result.blob = value;
- }
- result.hasBlob = YES;
- return self;
-}
-- (SyncMessageContactsBuilder*) clearBlob {
- result.hasBlob = NO;
- result.blob = [AttachmentPointer defaultInstance];
- return self;
-}
-@end
-
-@interface SyncMessageGroups ()
-@property (strong) AttachmentPointer* blob;
-@end
-
-@implementation SyncMessageGroups
-
-- (BOOL) hasBlob {
- return !!hasBlob_;
-}
-- (void) setHasBlob:(BOOL) value_ {
- hasBlob_ = !!value_;
-}
-@synthesize blob;
-- (id) init {
- if ((self = [super init])) {
- self.blob = [AttachmentPointer defaultInstance];
- }
- return self;
-}
-static SyncMessageGroups* defaultSyncMessageGroupsInstance = nil;
-+ (void) initialize {
- if (self == [SyncMessageGroups class]) {
- defaultSyncMessageGroupsInstance = [[SyncMessageGroups alloc] init];
- }
-}
-+ (SyncMessageGroups*) defaultInstance {
- return defaultSyncMessageGroupsInstance;
-}
-- (SyncMessageGroups*) defaultInstance {
- return defaultSyncMessageGroupsInstance;
-}
-- (BOOL) isInitialized {
- return YES;
-}
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
- if (self.hasBlob) {
- [output writeMessage:1 value:self.blob];
- }
- [self.unknownFields writeToCodedOutputStream:output];
-}
-- (SInt32) serializedSize {
- __block SInt32 size_ = memoizedSerializedSize;
- if (size_ != -1) {
- return size_;
- }
-
- size_ = 0;
- if (self.hasBlob) {
- size_ += computeMessageSize(1, self.blob);
- }
- size_ += self.unknownFields.serializedSize;
- memoizedSerializedSize = size_;
- return size_;
-}
-+ (SyncMessageGroups*) parseFromData:(NSData*) data {
- return (SyncMessageGroups*)[[[SyncMessageGroups builder] mergeFromData:data] build];
-}
-+ (SyncMessageGroups*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (SyncMessageGroups*)[[[SyncMessageGroups builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
-}
-+ (SyncMessageGroups*) parseFromInputStream:(NSInputStream*) input {
- return (SyncMessageGroups*)[[[SyncMessageGroups builder] mergeFromInputStream:input] build];
-}
-+ (SyncMessageGroups*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (SyncMessageGroups*)[[[SyncMessageGroups builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (SyncMessageGroups*) parseFromCodedInputStream:(PBCodedInputStream*) input {
- return (SyncMessageGroups*)[[[SyncMessageGroups builder] mergeFromCodedInputStream:input] build];
-}
-+ (SyncMessageGroups*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (SyncMessageGroups*)[[[SyncMessageGroups builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (SyncMessageGroupsBuilder*) builder {
- return [[SyncMessageGroupsBuilder alloc] init];
-}
-+ (SyncMessageGroupsBuilder*) builderWithPrototype:(SyncMessageGroups*) prototype {
- return [[SyncMessageGroups builder] mergeFrom:prototype];
-}
-- (SyncMessageGroupsBuilder*) builder {
- return [SyncMessageGroups builder];
-}
-- (SyncMessageGroupsBuilder*) toBuilder {
- return [SyncMessageGroups builderWithPrototype:self];
-}
-- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
- if (self.hasBlob) {
- [output appendFormat:@"%@%@ {\n", indent, @"blob"];
- [self.blob writeDescriptionTo:output
- withIndent:[NSString stringWithFormat:@"%@ ", indent]];
- [output appendFormat:@"%@}\n", indent];
- }
- [self.unknownFields writeDescriptionTo:output withIndent:indent];
-}
-- (BOOL) isEqual:(id)other {
- if (other == self) {
- return YES;
- }
- if (![other isKindOfClass:[SyncMessageGroups class]]) {
- return NO;
- }
- SyncMessageGroups *otherMessage = other;
- return
- self.hasBlob == otherMessage.hasBlob &&
- (!self.hasBlob || [self.blob isEqual:otherMessage.blob]) &&
- (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
-}
-- (NSUInteger) hash {
- __block NSUInteger hashCode = 7;
- if (self.hasBlob) {
- hashCode = hashCode * 31 + [self.blob hash];
- }
- hashCode = hashCode * 31 + [self.unknownFields hash];
- return hashCode;
-}
-@end
-
-@interface SyncMessageGroupsBuilder()
-@property (strong) SyncMessageGroups* result;
-@end
-
-@implementation SyncMessageGroupsBuilder
-@synthesize result;
-- (id) init {
- if ((self = [super init])) {
- self.result = [[SyncMessageGroups alloc] init];
- }
- return self;
-}
-- (PBGeneratedMessage*) internalGetResult {
- return result;
-}
-- (SyncMessageGroupsBuilder*) clear {
- self.result = [[SyncMessageGroups alloc] init];
- return self;
-}
-- (SyncMessageGroupsBuilder*) clone {
- return [SyncMessageGroups builderWithPrototype:result];
-}
-- (SyncMessageGroups*) defaultInstance {
- return [SyncMessageGroups defaultInstance];
-}
-- (SyncMessageGroups*) build {
- [self checkInitialized];
- return [self buildPartial];
-}
-- (SyncMessageGroups*) buildPartial {
- SyncMessageGroups* returnMe = result;
- self.result = nil;
- return returnMe;
-}
-- (SyncMessageGroupsBuilder*) mergeFrom:(SyncMessageGroups*) other {
- if (other == [SyncMessageGroups defaultInstance]) {
- return self;
- }
- if (other.hasBlob) {
- [self mergeBlob:other.blob];
- }
- [self mergeUnknownFields:other.unknownFields];
- return self;
-}
-- (SyncMessageGroupsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
- return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
-}
-- (SyncMessageGroupsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
- while (YES) {
- SInt32 tag = [input readTag];
- switch (tag) {
- case 0:
- [self setUnknownFields:[unknownFields build]];
- return self;
- default: {
- if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
- [self setUnknownFields:[unknownFields build]];
- return self;
- }
- break;
- }
- case 10: {
- AttachmentPointerBuilder* subBuilder = [AttachmentPointer builder];
- if (self.hasBlob) {
- [subBuilder mergeFrom:self.blob];
- }
- [input readMessage:subBuilder extensionRegistry:extensionRegistry];
- [self setBlob:[subBuilder buildPartial]];
- break;
- }
- }
- }
-}
-- (BOOL) hasBlob {
- return result.hasBlob;
-}
-- (AttachmentPointer*) blob {
- return result.blob;
-}
-- (SyncMessageGroupsBuilder*) setBlob:(AttachmentPointer*) value {
- result.hasBlob = YES;
- result.blob = value;
- return self;
-}
-- (SyncMessageGroupsBuilder*) setBlobBuilder:(AttachmentPointerBuilder*) builderForValue {
- return [self setBlob:[builderForValue build]];
-}
-- (SyncMessageGroupsBuilder*) mergeBlob:(AttachmentPointer*) value {
- if (result.hasBlob &&
- result.blob != [AttachmentPointer defaultInstance]) {
- result.blob =
- [[[AttachmentPointer builderWithPrototype:result.blob] mergeFrom:value] buildPartial];
- } else {
- result.blob = value;
- }
- result.hasBlob = YES;
- return self;
-}
-- (SyncMessageGroupsBuilder*) clearBlob {
- result.hasBlob = NO;
- result.blob = [AttachmentPointer defaultInstance];
- return self;
-}
-@end
-
-@interface SyncMessageRequest ()
-@property SyncMessageRequestType type;
-@end
-
-@implementation SyncMessageRequest
-
-- (BOOL) hasType {
- return !!hasType_;
-}
-- (void) setHasType:(BOOL) value_ {
- hasType_ = !!value_;
-}
-@synthesize type;
-- (id) init {
- if ((self = [super init])) {
- self.type = SyncMessageRequestTypeUnknown;
- }
- return self;
-}
-static SyncMessageRequest* defaultSyncMessageRequestInstance = nil;
-+ (void) initialize {
- if (self == [SyncMessageRequest class]) {
- defaultSyncMessageRequestInstance = [[SyncMessageRequest alloc] init];
- }
-}
-+ (SyncMessageRequest*) defaultInstance {
- return defaultSyncMessageRequestInstance;
-}
-- (SyncMessageRequest*) defaultInstance {
- return defaultSyncMessageRequestInstance;
-}
-- (BOOL) isInitialized {
- return YES;
-}
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
- if (self.hasType) {
- [output writeEnum:1 value:self.type];
- }
- [self.unknownFields writeToCodedOutputStream:output];
-}
-- (SInt32) serializedSize {
- __block SInt32 size_ = memoizedSerializedSize;
- if (size_ != -1) {
- return size_;
- }
-
- size_ = 0;
- if (self.hasType) {
- size_ += computeEnumSize(1, self.type);
- }
- size_ += self.unknownFields.serializedSize;
- memoizedSerializedSize = size_;
- return size_;
-}
-+ (SyncMessageRequest*) parseFromData:(NSData*) data {
- return (SyncMessageRequest*)[[[SyncMessageRequest builder] mergeFromData:data] build];
-}
-+ (SyncMessageRequest*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (SyncMessageRequest*)[[[SyncMessageRequest builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
-}
-+ (SyncMessageRequest*) parseFromInputStream:(NSInputStream*) input {
- return (SyncMessageRequest*)[[[SyncMessageRequest builder] mergeFromInputStream:input] build];
-}
-+ (SyncMessageRequest*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (SyncMessageRequest*)[[[SyncMessageRequest builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (SyncMessageRequest*) parseFromCodedInputStream:(PBCodedInputStream*) input {
- return (SyncMessageRequest*)[[[SyncMessageRequest builder] mergeFromCodedInputStream:input] build];
-}
-+ (SyncMessageRequest*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (SyncMessageRequest*)[[[SyncMessageRequest builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (SyncMessageRequestBuilder*) builder {
- return [[SyncMessageRequestBuilder alloc] init];
-}
-+ (SyncMessageRequestBuilder*) builderWithPrototype:(SyncMessageRequest*) prototype {
- return [[SyncMessageRequest builder] mergeFrom:prototype];
-}
-- (SyncMessageRequestBuilder*) builder {
- return [SyncMessageRequest builder];
-}
-- (SyncMessageRequestBuilder*) toBuilder {
- return [SyncMessageRequest builderWithPrototype:self];
-}
-- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
- if (self.hasType) {
- [output appendFormat:@"%@%@: %d\n", indent, @"type", self.type];
- }
- [self.unknownFields writeDescriptionTo:output withIndent:indent];
-}
-- (BOOL) isEqual:(id)other {
- if (other == self) {
- return YES;
- }
- if (![other isKindOfClass:[SyncMessageRequest class]]) {
- return NO;
- }
- SyncMessageRequest *otherMessage = other;
- return
- self.hasType == otherMessage.hasType &&
- (!self.hasType || self.type == otherMessage.type) &&
- (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
-}
-- (NSUInteger) hash {
- __block NSUInteger hashCode = 7;
- if (self.hasType) {
- hashCode = hashCode * 31 + self.type;
- }
- hashCode = hashCode * 31 + [self.unknownFields hash];
- return hashCode;
-}
-@end
-
-BOOL SyncMessageRequestTypeIsValidValue(SyncMessageRequestType value) {
- switch (value) {
- case SyncMessageRequestTypeUnknown:
- case SyncMessageRequestTypeContacts:
- case SyncMessageRequestTypeGroups:
- return YES;
- default:
- return NO;
- }
-}
-@interface SyncMessageRequestBuilder()
-@property (strong) SyncMessageRequest* result;
-@end
-
-@implementation SyncMessageRequestBuilder
-@synthesize result;
-- (id) init {
- if ((self = [super init])) {
- self.result = [[SyncMessageRequest alloc] init];
- }
- return self;
-}
-- (PBGeneratedMessage*) internalGetResult {
- return result;
-}
-- (SyncMessageRequestBuilder*) clear {
- self.result = [[SyncMessageRequest alloc] init];
- return self;
-}
-- (SyncMessageRequestBuilder*) clone {
- return [SyncMessageRequest builderWithPrototype:result];
-}
-- (SyncMessageRequest*) defaultInstance {
- return [SyncMessageRequest defaultInstance];
-}
-- (SyncMessageRequest*) build {
- [self checkInitialized];
- return [self buildPartial];
-}
-- (SyncMessageRequest*) buildPartial {
- SyncMessageRequest* returnMe = result;
- self.result = nil;
- return returnMe;
-}
-- (SyncMessageRequestBuilder*) mergeFrom:(SyncMessageRequest*) other {
- if (other == [SyncMessageRequest defaultInstance]) {
- return self;
- }
- if (other.hasType) {
- [self setType:other.type];
- }
- [self mergeUnknownFields:other.unknownFields];
- return self;
-}
-- (SyncMessageRequestBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
- return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
-}
-- (SyncMessageRequestBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
- while (YES) {
- SInt32 tag = [input readTag];
- switch (tag) {
- case 0:
- [self setUnknownFields:[unknownFields build]];
- return self;
- default: {
- if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
- [self setUnknownFields:[unknownFields build]];
- return self;
- }
- break;
- }
- case 8: {
- SyncMessageRequestType value = (SyncMessageRequestType)[input readEnum];
- if (SyncMessageRequestTypeIsValidValue(value)) {
- [self setType:value];
- } else {
- [unknownFields mergeVarintField:1 value:value];
- }
- break;
- }
- }
- }
-}
-- (BOOL) hasType {
- return result.hasType;
-}
-- (SyncMessageRequestType) type {
- return result.type;
-}
-- (SyncMessageRequestBuilder*) setType:(SyncMessageRequestType) value {
- result.hasType = YES;
- result.type = value;
- return self;
-}
-- (SyncMessageRequestBuilder*) clearType {
- result.hasType = NO;
- result.type = SyncMessageRequestTypeUnknown;
- return self;
-}
-@end
-
-@interface SyncMessageBuilder()
-@property (strong) SyncMessage* result;
-@end
-
-@implementation SyncMessageBuilder
-@synthesize result;
-- (id) init {
- if ((self = [super init])) {
- self.result = [[SyncMessage alloc] init];
- }
- return self;
-}
-- (PBGeneratedMessage*) internalGetResult {
- return result;
-}
-- (SyncMessageBuilder*) clear {
- self.result = [[SyncMessage alloc] init];
- return self;
-}
-- (SyncMessageBuilder*) clone {
- return [SyncMessage builderWithPrototype:result];
-}
-- (SyncMessage*) defaultInstance {
- return [SyncMessage defaultInstance];
-}
-- (SyncMessage*) build {
- [self checkInitialized];
- return [self buildPartial];
-}
-- (SyncMessage*) buildPartial {
- SyncMessage* returnMe = result;
- self.result = nil;
- return returnMe;
-}
-- (SyncMessageBuilder*) mergeFrom:(SyncMessage*) other {
- if (other == [SyncMessage defaultInstance]) {
- return self;
- }
- if (other.hasSent) {
- [self mergeSent:other.sent];
- }
- if (other.hasContacts) {
- [self mergeContacts:other.contacts];
- }
- if (other.hasGroups) {
- [self mergeGroups:other.groups];
- }
- if (other.hasRequest) {
- [self mergeRequest:other.request];
- }
- [self mergeUnknownFields:other.unknownFields];
- return self;
-}
-- (SyncMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
- return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
-}
-- (SyncMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
- while (YES) {
- SInt32 tag = [input readTag];
- switch (tag) {
- case 0:
- [self setUnknownFields:[unknownFields build]];
- return self;
- default: {
- if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
- [self setUnknownFields:[unknownFields build]];
- return self;
- }
- break;
- }
- case 10: {
- SyncMessageSentBuilder* subBuilder = [SyncMessageSent builder];
- if (self.hasSent) {
- [subBuilder mergeFrom:self.sent];
- }
- [input readMessage:subBuilder extensionRegistry:extensionRegistry];
- [self setSent:[subBuilder buildPartial]];
- break;
- }
- case 18: {
- SyncMessageContactsBuilder* subBuilder = [SyncMessageContacts builder];
- if (self.hasContacts) {
- [subBuilder mergeFrom:self.contacts];
- }
- [input readMessage:subBuilder extensionRegistry:extensionRegistry];
- [self setContacts:[subBuilder buildPartial]];
- break;
- }
- case 26: {
- SyncMessageGroupsBuilder* subBuilder = [SyncMessageGroups builder];
- if (self.hasGroups) {
- [subBuilder mergeFrom:self.groups];
- }
- [input readMessage:subBuilder extensionRegistry:extensionRegistry];
- [self setGroups:[subBuilder buildPartial]];
- break;
- }
- case 34: {
- SyncMessageRequestBuilder* subBuilder = [SyncMessageRequest builder];
- if (self.hasRequest) {
- [subBuilder mergeFrom:self.request];
- }
- [input readMessage:subBuilder extensionRegistry:extensionRegistry];
- [self setRequest:[subBuilder buildPartial]];
- break;
- }
- }
- }
-}
-- (BOOL) hasSent {
- return result.hasSent;
-}
-- (SyncMessageSent*) sent {
- return result.sent;
-}
-- (SyncMessageBuilder*) setSent:(SyncMessageSent*) value {
- result.hasSent = YES;
- result.sent = value;
- return self;
-}
-- (SyncMessageBuilder*) setSentBuilder:(SyncMessageSentBuilder*) builderForValue {
- return [self setSent:[builderForValue build]];
-}
-- (SyncMessageBuilder*) mergeSent:(SyncMessageSent*) value {
- if (result.hasSent &&
- result.sent != [SyncMessageSent defaultInstance]) {
- result.sent =
- [[[SyncMessageSent builderWithPrototype:result.sent] mergeFrom:value] buildPartial];
- } else {
- result.sent = value;
- }
- result.hasSent = YES;
- return self;
-}
-- (SyncMessageBuilder*) clearSent {
- result.hasSent = NO;
- result.sent = [SyncMessageSent defaultInstance];
- return self;
-}
-- (BOOL) hasContacts {
- return result.hasContacts;
-}
-- (SyncMessageContacts*) contacts {
- return result.contacts;
-}
-- (SyncMessageBuilder*) setContacts:(SyncMessageContacts*) value {
- result.hasContacts = YES;
- result.contacts = value;
- return self;
-}
-- (SyncMessageBuilder*) setContactsBuilder:(SyncMessageContactsBuilder*) builderForValue {
- return [self setContacts:[builderForValue build]];
-}
-- (SyncMessageBuilder*) mergeContacts:(SyncMessageContacts*) value {
- if (result.hasContacts &&
- result.contacts != [SyncMessageContacts defaultInstance]) {
- result.contacts =
- [[[SyncMessageContacts builderWithPrototype:result.contacts] mergeFrom:value] buildPartial];
- } else {
- result.contacts = value;
- }
- result.hasContacts = YES;
- return self;
-}
-- (SyncMessageBuilder*) clearContacts {
- result.hasContacts = NO;
- result.contacts = [SyncMessageContacts defaultInstance];
- return self;
-}
-- (BOOL) hasGroups {
- return result.hasGroups;
-}
-- (SyncMessageGroups*) groups {
- return result.groups;
-}
-- (SyncMessageBuilder*) setGroups:(SyncMessageGroups*) value {
- result.hasGroups = YES;
- result.groups = value;
- return self;
-}
-- (SyncMessageBuilder*) setGroupsBuilder:(SyncMessageGroupsBuilder*) builderForValue {
- return [self setGroups:[builderForValue build]];
-}
-- (SyncMessageBuilder*) mergeGroups:(SyncMessageGroups*) value {
- if (result.hasGroups &&
- result.groups != [SyncMessageGroups defaultInstance]) {
- result.groups =
- [[[SyncMessageGroups builderWithPrototype:result.groups] mergeFrom:value] buildPartial];
- } else {
- result.groups = value;
- }
- result.hasGroups = YES;
- return self;
-}
-- (SyncMessageBuilder*) clearGroups {
- result.hasGroups = NO;
- result.groups = [SyncMessageGroups defaultInstance];
- return self;
-}
-- (BOOL) hasRequest {
- return result.hasRequest;
-}
-- (SyncMessageRequest*) request {
- return result.request;
-}
-- (SyncMessageBuilder*) setRequest:(SyncMessageRequest*) value {
- result.hasRequest = YES;
- result.request = value;
- return self;
-}
-- (SyncMessageBuilder*) setRequestBuilder:(SyncMessageRequestBuilder*) builderForValue {
- return [self setRequest:[builderForValue build]];
-}
-- (SyncMessageBuilder*) mergeRequest:(SyncMessageRequest*) value {
- if (result.hasRequest &&
- result.request != [SyncMessageRequest defaultInstance]) {
- result.request =
- [[[SyncMessageRequest builderWithPrototype:result.request] mergeFrom:value] buildPartial];
- } else {
- result.request = value;
- }
- result.hasRequest = YES;
- return self;
-}
-- (SyncMessageBuilder*) clearRequest {
- result.hasRequest = NO;
- result.request = [SyncMessageRequest defaultInstance];
- return self;
-}
-@end
-
-@interface AttachmentPointer ()
-@property UInt64 id;
-@property (strong) NSString* contentType;
-@property (strong) NSData* key;
-@property UInt32 size;
-@property (strong) NSData* thumbnail;
-@end
-
-@implementation AttachmentPointer
-
-- (BOOL) hasId {
- return !!hasId_;
-}
-- (void) setHasId:(BOOL) value_ {
- hasId_ = !!value_;
-}
-@synthesize id;
-- (BOOL) hasContentType {
- return !!hasContentType_;
-}
-- (void) setHasContentType:(BOOL) value_ {
- hasContentType_ = !!value_;
-}
-@synthesize contentType;
-- (BOOL) hasKey {
- return !!hasKey_;
-}
-- (void) setHasKey:(BOOL) value_ {
- hasKey_ = !!value_;
-}
-@synthesize key;
-- (BOOL) hasSize {
- return !!hasSize_;
-}
-- (void) setHasSize:(BOOL) value_ {
- hasSize_ = !!value_;
-}
-@synthesize size;
-- (BOOL) hasThumbnail {
- return !!hasThumbnail_;
-}
-- (void) setHasThumbnail:(BOOL) value_ {
- hasThumbnail_ = !!value_;
-}
-@synthesize thumbnail;
-- (id) init {
- if ((self = [super init])) {
- self.id = 0L;
- self.contentType = @"";
- self.key = [NSData data];
- self.size = 0;
- self.thumbnail = [NSData data];
- }
- return self;
-}
-static AttachmentPointer* defaultAttachmentPointerInstance = nil;
-+ (void) initialize {
- if (self == [AttachmentPointer class]) {
- defaultAttachmentPointerInstance = [[AttachmentPointer alloc] init];
- }
-}
-+ (AttachmentPointer*) defaultInstance {
- return defaultAttachmentPointerInstance;
-}
-- (AttachmentPointer*) defaultInstance {
- return defaultAttachmentPointerInstance;
-}
-- (BOOL) isInitialized {
- return YES;
-}
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
- if (self.hasId) {
- [output writeFixed64:1 value:self.id];
- }
- if (self.hasContentType) {
- [output writeString:2 value:self.contentType];
- }
- if (self.hasKey) {
- [output writeData:3 value:self.key];
- }
- if (self.hasSize) {
- [output writeUInt32:4 value:self.size];
- }
- if (self.hasThumbnail) {
- [output writeData:5 value:self.thumbnail];
- }
- [self.unknownFields writeToCodedOutputStream:output];
-}
-- (SInt32) serializedSize {
- __block SInt32 size_ = memoizedSerializedSize;
- if (size_ != -1) {
- return size_;
- }
-
- size_ = 0;
- if (self.hasId) {
- size_ += computeFixed64Size(1, self.id);
- }
- if (self.hasContentType) {
- size_ += computeStringSize(2, self.contentType);
- }
- if (self.hasKey) {
- size_ += computeDataSize(3, self.key);
- }
- if (self.hasSize) {
- size_ += computeUInt32Size(4, self.size);
- }
- if (self.hasThumbnail) {
- size_ += computeDataSize(5, self.thumbnail);
- }
- size_ += self.unknownFields.serializedSize;
- memoizedSerializedSize = size_;
- return size_;
-}
-+ (AttachmentPointer*) parseFromData:(NSData*) data {
- return (AttachmentPointer*)[[[AttachmentPointer builder] mergeFromData:data] build];
-}
-+ (AttachmentPointer*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (AttachmentPointer*)[[[AttachmentPointer builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
-}
-+ (AttachmentPointer*) parseFromInputStream:(NSInputStream*) input {
- return (AttachmentPointer*)[[[AttachmentPointer builder] mergeFromInputStream:input] build];
-}
-+ (AttachmentPointer*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (AttachmentPointer*)[[[AttachmentPointer builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (AttachmentPointer*) parseFromCodedInputStream:(PBCodedInputStream*) input {
- return (AttachmentPointer*)[[[AttachmentPointer builder] mergeFromCodedInputStream:input] build];
-}
-+ (AttachmentPointer*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (AttachmentPointer*)[[[AttachmentPointer builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (AttachmentPointerBuilder*) builder {
- return [[AttachmentPointerBuilder alloc] init];
-}
-+ (AttachmentPointerBuilder*) builderWithPrototype:(AttachmentPointer*) prototype {
- return [[AttachmentPointer builder] mergeFrom:prototype];
-}
-- (AttachmentPointerBuilder*) builder {
- return [AttachmentPointer builder];
-}
-- (AttachmentPointerBuilder*) toBuilder {
- return [AttachmentPointer builderWithPrototype:self];
-}
-- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
- if (self.hasId) {
- [output appendFormat:@"%@%@: %@\n", indent, @"id", [NSNumber numberWithLongLong:self.id]];
- }
- if (self.hasContentType) {
- [output appendFormat:@"%@%@: %@\n", indent, @"contentType", self.contentType];
- }
- if (self.hasKey) {
- [output appendFormat:@"%@%@: %@\n", indent, @"key", self.key];
- }
- if (self.hasSize) {
- [output appendFormat:@"%@%@: %@\n", indent, @"size", [NSNumber numberWithInteger:self.size]];
- }
- if (self.hasThumbnail) {
- [output appendFormat:@"%@%@: %@\n", indent, @"thumbnail", self.thumbnail];
- }
- [self.unknownFields writeDescriptionTo:output withIndent:indent];
-}
-- (BOOL) isEqual:(id)other {
- if (other == self) {
- return YES;
- }
- if (![other isKindOfClass:[AttachmentPointer class]]) {
- return NO;
- }
- AttachmentPointer *otherMessage = other;
- return
- self.hasId == otherMessage.hasId &&
- (!self.hasId || self.id == otherMessage.id) &&
- self.hasContentType == otherMessage.hasContentType &&
- (!self.hasContentType || [self.contentType isEqual:otherMessage.contentType]) &&
- self.hasKey == otherMessage.hasKey &&
- (!self.hasKey || [self.key isEqual:otherMessage.key]) &&
- self.hasSize == otherMessage.hasSize &&
- (!self.hasSize || self.size == otherMessage.size) &&
- self.hasThumbnail == otherMessage.hasThumbnail &&
- (!self.hasThumbnail || [self.thumbnail isEqual:otherMessage.thumbnail]) &&
- (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
-}
-- (NSUInteger) hash {
- __block NSUInteger hashCode = 7;
- if (self.hasId) {
- hashCode = hashCode * 31 + [[NSNumber numberWithLongLong:self.id] hash];
- }
- if (self.hasContentType) {
- hashCode = hashCode * 31 + [self.contentType hash];
- }
- if (self.hasKey) {
- hashCode = hashCode * 31 + [self.key hash];
- }
- if (self.hasSize) {
- hashCode = hashCode * 31 + [[NSNumber numberWithInteger:self.size] hash];
- }
- if (self.hasThumbnail) {
- hashCode = hashCode * 31 + [self.thumbnail hash];
- }
- hashCode = hashCode * 31 + [self.unknownFields hash];
- return hashCode;
-}
-@end
-
-@interface AttachmentPointerBuilder()
-@property (strong) AttachmentPointer* result;
-@end
-
-@implementation AttachmentPointerBuilder
-@synthesize result;
-- (id) init {
- if ((self = [super init])) {
- self.result = [[AttachmentPointer alloc] init];
- }
- return self;
-}
-- (PBGeneratedMessage*) internalGetResult {
- return result;
-}
-- (AttachmentPointerBuilder*) clear {
- self.result = [[AttachmentPointer alloc] init];
- return self;
-}
-- (AttachmentPointerBuilder*) clone {
- return [AttachmentPointer builderWithPrototype:result];
-}
-- (AttachmentPointer*) defaultInstance {
- return [AttachmentPointer defaultInstance];
-}
-- (AttachmentPointer*) build {
- [self checkInitialized];
- return [self buildPartial];
-}
-- (AttachmentPointer*) buildPartial {
- AttachmentPointer* returnMe = result;
- self.result = nil;
- return returnMe;
-}
-- (AttachmentPointerBuilder*) mergeFrom:(AttachmentPointer*) other {
- if (other == [AttachmentPointer defaultInstance]) {
- return self;
- }
- if (other.hasId) {
- [self setId:other.id];
- }
- if (other.hasContentType) {
- [self setContentType:other.contentType];
- }
- if (other.hasKey) {
- [self setKey:other.key];
- }
- if (other.hasSize) {
- [self setSize:other.size];
- }
- if (other.hasThumbnail) {
- [self setThumbnail:other.thumbnail];
- }
- [self mergeUnknownFields:other.unknownFields];
- return self;
-}
-- (AttachmentPointerBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
- return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
-}
-- (AttachmentPointerBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
- while (YES) {
- SInt32 tag = [input readTag];
- switch (tag) {
- case 0:
- [self setUnknownFields:[unknownFields build]];
- return self;
- default: {
- if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
- [self setUnknownFields:[unknownFields build]];
- return self;
- }
- break;
- }
- case 9: {
- [self setId:[input readFixed64]];
- break;
- }
- case 18: {
- [self setContentType:[input readString]];
- break;
- }
- case 26: {
- [self setKey:[input readData]];
- break;
- }
- case 32: {
- [self setSize:[input readUInt32]];
- break;
- }
- case 42: {
- [self setThumbnail:[input readData]];
- break;
- }
- }
- }
-}
-- (BOOL) hasId {
- return result.hasId;
-}
-- (UInt64) id {
- return result.id;
-}
-- (AttachmentPointerBuilder*) setId:(UInt64) value {
- result.hasId = YES;
- result.id = value;
- return self;
-}
-- (AttachmentPointerBuilder*) clearId {
- result.hasId = NO;
- result.id = 0L;
- return self;
-}
-- (BOOL) hasContentType {
- return result.hasContentType;
-}
-- (NSString*) contentType {
- return result.contentType;
-}
-- (AttachmentPointerBuilder*) setContentType:(NSString*) value {
- result.hasContentType = YES;
- result.contentType = value;
- return self;
-}
-- (AttachmentPointerBuilder*) clearContentType {
- result.hasContentType = NO;
- result.contentType = @"";
- return self;
-}
-- (BOOL) hasKey {
- return result.hasKey;
-}
-- (NSData*) key {
- return result.key;
-}
-- (AttachmentPointerBuilder*) setKey:(NSData*) value {
- result.hasKey = YES;
- result.key = value;
- return self;
-}
-- (AttachmentPointerBuilder*) clearKey {
- result.hasKey = NO;
- result.key = [NSData data];
- return self;
-}
-- (BOOL) hasSize {
- return result.hasSize;
-}
-- (UInt32) size {
- return result.size;
-}
-- (AttachmentPointerBuilder*) setSize:(UInt32) value {
- result.hasSize = YES;
- result.size = value;
- return self;
-}
-- (AttachmentPointerBuilder*) clearSize {
- result.hasSize = NO;
- result.size = 0;
- return self;
-}
-- (BOOL) hasThumbnail {
- return result.hasThumbnail;
-}
-- (NSData*) thumbnail {
- return result.thumbnail;
-}
-- (AttachmentPointerBuilder*) setThumbnail:(NSData*) value {
- result.hasThumbnail = YES;
- result.thumbnail = value;
- return self;
-}
-- (AttachmentPointerBuilder*) clearThumbnail {
- result.hasThumbnail = NO;
- result.thumbnail = [NSData data];
- return self;
-}
-@end
-
-@interface GroupContext ()
-@property (strong) NSData* id;
-@property GroupContextType type;
-@property (strong) NSString* name;
-@property (strong) NSMutableArray * membersArray;
-@property (strong) AttachmentPointer* avatar;
-@end
-
-@implementation GroupContext
-
-- (BOOL) hasId {
- return !!hasId_;
-}
-- (void) setHasId:(BOOL) value_ {
- hasId_ = !!value_;
-}
-@synthesize id;
-- (BOOL) hasType {
- return !!hasType_;
-}
-- (void) setHasType:(BOOL) value_ {
- hasType_ = !!value_;
-}
-@synthesize type;
-- (BOOL) hasName {
- return !!hasName_;
-}
-- (void) setHasName:(BOOL) value_ {
- hasName_ = !!value_;
-}
-@synthesize name;
-@synthesize membersArray;
-@dynamic members;
-- (BOOL) hasAvatar {
- return !!hasAvatar_;
-}
-- (void) setHasAvatar:(BOOL) value_ {
- hasAvatar_ = !!value_;
-}
-@synthesize avatar;
-- (id) init {
- if ((self = [super init])) {
- self.id = [NSData data];
- self.type = GroupContextTypeUnknown;
- self.name = @"";
- self.avatar = [AttachmentPointer defaultInstance];
- }
- return self;
-}
-static GroupContext* defaultGroupContextInstance = nil;
-+ (void) initialize {
- if (self == [GroupContext class]) {
- defaultGroupContextInstance = [[GroupContext alloc] init];
- }
-}
-+ (GroupContext*) defaultInstance {
- return defaultGroupContextInstance;
-}
-- (GroupContext*) defaultInstance {
- return defaultGroupContextInstance;
-}
-- (NSArray *)members {
- return membersArray;
-}
-- (NSString*)membersAtIndex:(NSUInteger)index {
- return [membersArray objectAtIndex:index];
-}
-- (BOOL) isInitialized {
- return YES;
-}
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
- if (self.hasId) {
- [output writeData:1 value:self.id];
- }
- if (self.hasType) {
- [output writeEnum:2 value:self.type];
- }
- if (self.hasName) {
- [output writeString:3 value:self.name];
- }
- [self.membersArray enumerateObjectsUsingBlock:^(NSString *element, NSUInteger idx, BOOL *stop) {
- [output writeString:4 value:element];
- }];
- if (self.hasAvatar) {
- [output writeMessage:5 value:self.avatar];
- }
- [self.unknownFields writeToCodedOutputStream:output];
-}
-- (SInt32) serializedSize {
- __block SInt32 size_ = memoizedSerializedSize;
- if (size_ != -1) {
- return size_;
- }
-
- size_ = 0;
- if (self.hasId) {
- size_ += computeDataSize(1, self.id);
- }
- if (self.hasType) {
- size_ += computeEnumSize(2, self.type);
- }
- if (self.hasName) {
- size_ += computeStringSize(3, self.name);
- }
- {
- __block SInt32 dataSize = 0;
- const NSUInteger count = self.membersArray.count;
- [self.membersArray enumerateObjectsUsingBlock:^(NSString *element, NSUInteger idx, BOOL *stop) {
- dataSize += computeStringSizeNoTag(element);
- }];
- size_ += dataSize;
- size_ += (SInt32)(1 * count);
- }
- if (self.hasAvatar) {
- size_ += computeMessageSize(5, self.avatar);
- }
- size_ += self.unknownFields.serializedSize;
- memoizedSerializedSize = size_;
- return size_;
-}
-+ (GroupContext*) parseFromData:(NSData*) data {
- return (GroupContext*)[[[GroupContext builder] mergeFromData:data] build];
-}
-+ (GroupContext*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (GroupContext*)[[[GroupContext builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
-}
-+ (GroupContext*) parseFromInputStream:(NSInputStream*) input {
- return (GroupContext*)[[[GroupContext builder] mergeFromInputStream:input] build];
-}
-+ (GroupContext*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (GroupContext*)[[[GroupContext builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (GroupContext*) parseFromCodedInputStream:(PBCodedInputStream*) input {
- return (GroupContext*)[[[GroupContext builder] mergeFromCodedInputStream:input] build];
-}
-+ (GroupContext*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (GroupContext*)[[[GroupContext builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (GroupContextBuilder*) builder {
- return [[GroupContextBuilder alloc] init];
-}
-+ (GroupContextBuilder*) builderWithPrototype:(GroupContext*) prototype {
- return [[GroupContext builder] mergeFrom:prototype];
-}
-- (GroupContextBuilder*) builder {
- return [GroupContext builder];
-}
-- (GroupContextBuilder*) toBuilder {
- return [GroupContext builderWithPrototype:self];
-}
-- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
- if (self.hasId) {
- [output appendFormat:@"%@%@: %@\n", indent, @"id", self.id];
- }
- if (self.hasType) {
- [output appendFormat:@"%@%@: %d\n", indent, @"type", self.type];
- }
- if (self.hasName) {
- [output appendFormat:@"%@%@: %@\n", indent, @"name", self.name];
- }
- [self.membersArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
- [output appendFormat:@"%@%@: %@\n", indent, @"members", obj];
- }];
- if (self.hasAvatar) {
- [output appendFormat:@"%@%@ {\n", indent, @"avatar"];
- [self.avatar writeDescriptionTo:output
- withIndent:[NSString stringWithFormat:@"%@ ", indent]];
- [output appendFormat:@"%@}\n", indent];
- }
- [self.unknownFields writeDescriptionTo:output withIndent:indent];
-}
-- (BOOL) isEqual:(id)other {
- if (other == self) {
- return YES;
- }
- if (![other isKindOfClass:[GroupContext class]]) {
- return NO;
- }
- GroupContext *otherMessage = other;
- return
- self.hasId == otherMessage.hasId &&
- (!self.hasId || [self.id isEqual:otherMessage.id]) &&
- self.hasType == otherMessage.hasType &&
- (!self.hasType || self.type == otherMessage.type) &&
- self.hasName == otherMessage.hasName &&
- (!self.hasName || [self.name isEqual:otherMessage.name]) &&
- [self.membersArray isEqualToArray:otherMessage.membersArray] &&
- self.hasAvatar == otherMessage.hasAvatar &&
- (!self.hasAvatar || [self.avatar isEqual:otherMessage.avatar]) &&
- (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
-}
-- (NSUInteger) hash {
- __block NSUInteger hashCode = 7;
- if (self.hasId) {
- hashCode = hashCode * 31 + [self.id hash];
- }
- if (self.hasType) {
- hashCode = hashCode * 31 + self.type;
- }
- if (self.hasName) {
- hashCode = hashCode * 31 + [self.name hash];
- }
- [self.membersArray enumerateObjectsUsingBlock:^(id element, NSUInteger idx, BOOL *stop) {
- hashCode = hashCode * 31 + [element hash];
- }];
- if (self.hasAvatar) {
- hashCode = hashCode * 31 + [self.avatar hash];
- }
- hashCode = hashCode * 31 + [self.unknownFields hash];
- return hashCode;
-}
-@end
-
-BOOL GroupContextTypeIsValidValue(GroupContextType value) {
- switch (value) {
- case GroupContextTypeUnknown:
- case GroupContextTypeUpdate:
- case GroupContextTypeDeliver:
- case GroupContextTypeQuit:
- return YES;
- default:
- return NO;
- }
-}
-@interface GroupContextBuilder()
-@property (strong) GroupContext* result;
-@end
-
-@implementation GroupContextBuilder
-@synthesize result;
-- (id) init {
- if ((self = [super init])) {
- self.result = [[GroupContext alloc] init];
- }
- return self;
-}
-- (PBGeneratedMessage*) internalGetResult {
- return result;
-}
-- (GroupContextBuilder*) clear {
- self.result = [[GroupContext alloc] init];
- return self;
-}
-- (GroupContextBuilder*) clone {
- return [GroupContext builderWithPrototype:result];
-}
-- (GroupContext*) defaultInstance {
- return [GroupContext defaultInstance];
-}
-- (GroupContext*) build {
- [self checkInitialized];
- return [self buildPartial];
-}
-- (GroupContext*) buildPartial {
- GroupContext* returnMe = result;
- self.result = nil;
- return returnMe;
-}
-- (GroupContextBuilder*) mergeFrom:(GroupContext*) other {
- if (other == [GroupContext defaultInstance]) {
- return self;
- }
- if (other.hasId) {
- [self setId:other.id];
- }
- if (other.hasType) {
- [self setType:other.type];
- }
- if (other.hasName) {
- [self setName:other.name];
- }
- if (other.membersArray.count > 0) {
- if (result.membersArray == nil) {
- result.membersArray = [[NSMutableArray alloc] initWithArray:other.membersArray];
- } else {
- [result.membersArray addObjectsFromArray:other.membersArray];
- }
- }
- if (other.hasAvatar) {
- [self mergeAvatar:other.avatar];
- }
- [self mergeUnknownFields:other.unknownFields];
- return self;
-}
-- (GroupContextBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
- return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
-}
-- (GroupContextBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
- while (YES) {
- SInt32 tag = [input readTag];
- switch (tag) {
- case 0:
- [self setUnknownFields:[unknownFields build]];
- return self;
- default: {
- if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
- [self setUnknownFields:[unknownFields build]];
- return self;
- }
- break;
- }
- case 10: {
- [self setId:[input readData]];
- break;
- }
- case 16: {
- GroupContextType value = (GroupContextType)[input readEnum];
- if (GroupContextTypeIsValidValue(value)) {
- [self setType:value];
- } else {
- [unknownFields mergeVarintField:2 value:value];
- }
- break;
- }
- case 26: {
- [self setName:[input readString]];
- break;
- }
- case 34: {
- [self addMembers:[input readString]];
- break;
- }
- case 42: {
- AttachmentPointerBuilder* subBuilder = [AttachmentPointer builder];
- if (self.hasAvatar) {
- [subBuilder mergeFrom:self.avatar];
- }
- [input readMessage:subBuilder extensionRegistry:extensionRegistry];
- [self setAvatar:[subBuilder buildPartial]];
- break;
- }
- }
- }
-}
-- (BOOL) hasId {
- return result.hasId;
-}
-- (NSData*) id {
- return result.id;
-}
-- (GroupContextBuilder*) setId:(NSData*) value {
- result.hasId = YES;
- result.id = value;
- return self;
-}
-- (GroupContextBuilder*) clearId {
- result.hasId = NO;
- result.id = [NSData data];
- return self;
-}
-- (BOOL) hasType {
- return result.hasType;
-}
-- (GroupContextType) type {
- return result.type;
-}
-- (GroupContextBuilder*) setType:(GroupContextType) value {
- result.hasType = YES;
- result.type = value;
- return self;
-}
-- (GroupContextBuilder*) clearType {
- result.hasType = NO;
- result.type = GroupContextTypeUnknown;
- return self;
-}
-- (BOOL) hasName {
- return result.hasName;
-}
-- (NSString*) name {
- return result.name;
-}
-- (GroupContextBuilder*) setName:(NSString*) value {
- result.hasName = YES;
- result.name = value;
- return self;
-}
-- (GroupContextBuilder*) clearName {
- result.hasName = NO;
- result.name = @"";
- return self;
-}
-- (NSMutableArray *)members {
- return result.membersArray;
-}
-- (NSString*)membersAtIndex:(NSUInteger)index {
- return [result membersAtIndex:index];
-}
-- (GroupContextBuilder *)addMembers:(NSString*)value {
- if (result.membersArray == nil) {
- result.membersArray = [[NSMutableArray alloc]init];
- }
- [result.membersArray addObject:value];
- return self;
-}
-- (GroupContextBuilder *)setMembersArray:(NSArray *)array {
- result.membersArray = [[NSMutableArray alloc] initWithArray:array];
- return self;
-}
-- (GroupContextBuilder *)clearMembers {
- result.membersArray = nil;
- return self;
-}
-- (BOOL) hasAvatar {
- return result.hasAvatar;
-}
-- (AttachmentPointer*) avatar {
- return result.avatar;
-}
-- (GroupContextBuilder*) setAvatar:(AttachmentPointer*) value {
- result.hasAvatar = YES;
- result.avatar = value;
- return self;
-}
-- (GroupContextBuilder*) setAvatarBuilder:(AttachmentPointerBuilder*) builderForValue {
- return [self setAvatar:[builderForValue build]];
-}
-- (GroupContextBuilder*) mergeAvatar:(AttachmentPointer*) value {
- if (result.hasAvatar &&
- result.avatar != [AttachmentPointer defaultInstance]) {
- result.avatar =
- [[[AttachmentPointer builderWithPrototype:result.avatar] mergeFrom:value] buildPartial];
- } else {
- result.avatar = value;
- }
- result.hasAvatar = YES;
- return self;
-}
-- (GroupContextBuilder*) clearAvatar {
- result.hasAvatar = NO;
- result.avatar = [AttachmentPointer defaultInstance];
- return self;
-}
-@end
-
-@interface ContactDetails ()
-@property (strong) NSString* number;
-@property (strong) NSString* name;
-@property (strong) ContactDetailsAvatar* avatar;
-@end
-
-@implementation ContactDetails
-
-- (BOOL) hasNumber {
- return !!hasNumber_;
-}
-- (void) setHasNumber:(BOOL) value_ {
- hasNumber_ = !!value_;
-}
-@synthesize number;
-- (BOOL) hasName {
- return !!hasName_;
-}
-- (void) setHasName:(BOOL) value_ {
- hasName_ = !!value_;
-}
-@synthesize name;
-- (BOOL) hasAvatar {
- return !!hasAvatar_;
-}
-- (void) setHasAvatar:(BOOL) value_ {
- hasAvatar_ = !!value_;
-}
-@synthesize avatar;
-- (id) init {
- if ((self = [super init])) {
- self.number = @"";
- self.name = @"";
- self.avatar = [ContactDetailsAvatar defaultInstance];
- }
- return self;
-}
-static ContactDetails* defaultContactDetailsInstance = nil;
-+ (void) initialize {
- if (self == [ContactDetails class]) {
- defaultContactDetailsInstance = [[ContactDetails alloc] init];
- }
-}
-+ (ContactDetails*) defaultInstance {
- return defaultContactDetailsInstance;
-}
-- (ContactDetails*) defaultInstance {
- return defaultContactDetailsInstance;
-}
-- (BOOL) isInitialized {
- return YES;
-}
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
- if (self.hasNumber) {
- [output writeString:1 value:self.number];
- }
- if (self.hasName) {
- [output writeString:2 value:self.name];
- }
- if (self.hasAvatar) {
- [output writeMessage:3 value:self.avatar];
- }
- [self.unknownFields writeToCodedOutputStream:output];
-}
-- (SInt32) serializedSize {
- __block SInt32 size_ = memoizedSerializedSize;
- if (size_ != -1) {
- return size_;
- }
-
- size_ = 0;
- if (self.hasNumber) {
- size_ += computeStringSize(1, self.number);
- }
- if (self.hasName) {
- size_ += computeStringSize(2, self.name);
- }
- if (self.hasAvatar) {
- size_ += computeMessageSize(3, self.avatar);
- }
- size_ += self.unknownFields.serializedSize;
- memoizedSerializedSize = size_;
- return size_;
-}
-+ (ContactDetails*) parseFromData:(NSData*) data {
- return (ContactDetails*)[[[ContactDetails builder] mergeFromData:data] build];
-}
-+ (ContactDetails*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (ContactDetails*)[[[ContactDetails builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
-}
-+ (ContactDetails*) parseFromInputStream:(NSInputStream*) input {
- return (ContactDetails*)[[[ContactDetails builder] mergeFromInputStream:input] build];
-}
-+ (ContactDetails*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (ContactDetails*)[[[ContactDetails builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (ContactDetails*) parseFromCodedInputStream:(PBCodedInputStream*) input {
- return (ContactDetails*)[[[ContactDetails builder] mergeFromCodedInputStream:input] build];
-}
-+ (ContactDetails*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (ContactDetails*)[[[ContactDetails builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (ContactDetailsBuilder*) builder {
- return [[ContactDetailsBuilder alloc] init];
-}
-+ (ContactDetailsBuilder*) builderWithPrototype:(ContactDetails*) prototype {
- return [[ContactDetails builder] mergeFrom:prototype];
-}
-- (ContactDetailsBuilder*) builder {
- return [ContactDetails builder];
-}
-- (ContactDetailsBuilder*) toBuilder {
- return [ContactDetails builderWithPrototype:self];
-}
-- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
- if (self.hasNumber) {
- [output appendFormat:@"%@%@: %@\n", indent, @"number", self.number];
- }
- if (self.hasName) {
- [output appendFormat:@"%@%@: %@\n", indent, @"name", self.name];
- }
- if (self.hasAvatar) {
- [output appendFormat:@"%@%@ {\n", indent, @"avatar"];
- [self.avatar writeDescriptionTo:output
- withIndent:[NSString stringWithFormat:@"%@ ", indent]];
- [output appendFormat:@"%@}\n", indent];
- }
- [self.unknownFields writeDescriptionTo:output withIndent:indent];
-}
-- (BOOL) isEqual:(id)other {
- if (other == self) {
- return YES;
- }
- if (![other isKindOfClass:[ContactDetails class]]) {
- return NO;
- }
- ContactDetails *otherMessage = other;
- return
- self.hasNumber == otherMessage.hasNumber &&
- (!self.hasNumber || [self.number isEqual:otherMessage.number]) &&
- self.hasName == otherMessage.hasName &&
- (!self.hasName || [self.name isEqual:otherMessage.name]) &&
- self.hasAvatar == otherMessage.hasAvatar &&
- (!self.hasAvatar || [self.avatar isEqual:otherMessage.avatar]) &&
- (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
-}
-- (NSUInteger) hash {
- __block NSUInteger hashCode = 7;
- if (self.hasNumber) {
- hashCode = hashCode * 31 + [self.number hash];
- }
- if (self.hasName) {
- hashCode = hashCode * 31 + [self.name hash];
- }
- if (self.hasAvatar) {
- hashCode = hashCode * 31 + [self.avatar hash];
- }
- hashCode = hashCode * 31 + [self.unknownFields hash];
- return hashCode;
-}
-@end
-
-@interface ContactDetailsAvatar ()
-@property (strong) NSString* contentType;
-@property UInt32 length;
-@end
-
-@implementation ContactDetailsAvatar
-
-- (BOOL) hasContentType {
- return !!hasContentType_;
-}
-- (void) setHasContentType:(BOOL) value_ {
- hasContentType_ = !!value_;
-}
-@synthesize contentType;
-- (BOOL) hasLength {
- return !!hasLength_;
-}
-- (void) setHasLength:(BOOL) value_ {
- hasLength_ = !!value_;
-}
-@synthesize length;
-- (id) init {
- if ((self = [super init])) {
- self.contentType = @"";
- self.length = 0;
- }
- return self;
-}
-static ContactDetailsAvatar* defaultContactDetailsAvatarInstance = nil;
-+ (void) initialize {
- if (self == [ContactDetailsAvatar class]) {
- defaultContactDetailsAvatarInstance = [[ContactDetailsAvatar alloc] init];
- }
-}
-+ (ContactDetailsAvatar*) defaultInstance {
- return defaultContactDetailsAvatarInstance;
-}
-- (ContactDetailsAvatar*) defaultInstance {
- return defaultContactDetailsAvatarInstance;
-}
-- (BOOL) isInitialized {
- return YES;
-}
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
- if (self.hasContentType) {
- [output writeString:1 value:self.contentType];
- }
- if (self.hasLength) {
- [output writeUInt32:2 value:self.length];
- }
- [self.unknownFields writeToCodedOutputStream:output];
-}
-- (SInt32) serializedSize {
- __block SInt32 size_ = memoizedSerializedSize;
- if (size_ != -1) {
- return size_;
- }
-
- size_ = 0;
- if (self.hasContentType) {
- size_ += computeStringSize(1, self.contentType);
- }
- if (self.hasLength) {
- size_ += computeUInt32Size(2, self.length);
- }
- size_ += self.unknownFields.serializedSize;
- memoizedSerializedSize = size_;
- return size_;
-}
-+ (ContactDetailsAvatar*) parseFromData:(NSData*) data {
- return (ContactDetailsAvatar*)[[[ContactDetailsAvatar builder] mergeFromData:data] build];
-}
-+ (ContactDetailsAvatar*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (ContactDetailsAvatar*)[[[ContactDetailsAvatar builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
-}
-+ (ContactDetailsAvatar*) parseFromInputStream:(NSInputStream*) input {
- return (ContactDetailsAvatar*)[[[ContactDetailsAvatar builder] mergeFromInputStream:input] build];
-}
-+ (ContactDetailsAvatar*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (ContactDetailsAvatar*)[[[ContactDetailsAvatar builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (ContactDetailsAvatar*) parseFromCodedInputStream:(PBCodedInputStream*) input {
- return (ContactDetailsAvatar*)[[[ContactDetailsAvatar builder] mergeFromCodedInputStream:input] build];
-}
-+ (ContactDetailsAvatar*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (ContactDetailsAvatar*)[[[ContactDetailsAvatar builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (ContactDetailsAvatarBuilder*) builder {
- return [[ContactDetailsAvatarBuilder alloc] init];
-}
-+ (ContactDetailsAvatarBuilder*) builderWithPrototype:(ContactDetailsAvatar*) prototype {
- return [[ContactDetailsAvatar builder] mergeFrom:prototype];
-}
-- (ContactDetailsAvatarBuilder*) builder {
- return [ContactDetailsAvatar builder];
-}
-- (ContactDetailsAvatarBuilder*) toBuilder {
- return [ContactDetailsAvatar builderWithPrototype:self];
-}
-- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
- if (self.hasContentType) {
- [output appendFormat:@"%@%@: %@\n", indent, @"contentType", self.contentType];
- }
- if (self.hasLength) {
- [output appendFormat:@"%@%@: %@\n", indent, @"length", [NSNumber numberWithInteger:self.length]];
- }
- [self.unknownFields writeDescriptionTo:output withIndent:indent];
-}
-- (BOOL) isEqual:(id)other {
- if (other == self) {
- return YES;
- }
- if (![other isKindOfClass:[ContactDetailsAvatar class]]) {
- return NO;
- }
- ContactDetailsAvatar *otherMessage = other;
- return
- self.hasContentType == otherMessage.hasContentType &&
- (!self.hasContentType || [self.contentType isEqual:otherMessage.contentType]) &&
- self.hasLength == otherMessage.hasLength &&
- (!self.hasLength || self.length == otherMessage.length) &&
- (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
-}
-- (NSUInteger) hash {
- __block NSUInteger hashCode = 7;
- if (self.hasContentType) {
- hashCode = hashCode * 31 + [self.contentType hash];
- }
- if (self.hasLength) {
- hashCode = hashCode * 31 + [[NSNumber numberWithInteger:self.length] hash];
- }
- hashCode = hashCode * 31 + [self.unknownFields hash];
- return hashCode;
-}
-@end
-
-@interface ContactDetailsAvatarBuilder()
-@property (strong) ContactDetailsAvatar* result;
-@end
-
-@implementation ContactDetailsAvatarBuilder
-@synthesize result;
-- (id) init {
- if ((self = [super init])) {
- self.result = [[ContactDetailsAvatar alloc] init];
- }
- return self;
-}
-- (PBGeneratedMessage*) internalGetResult {
- return result;
-}
-- (ContactDetailsAvatarBuilder*) clear {
- self.result = [[ContactDetailsAvatar alloc] init];
- return self;
-}
-- (ContactDetailsAvatarBuilder*) clone {
- return [ContactDetailsAvatar builderWithPrototype:result];
-}
-- (ContactDetailsAvatar*) defaultInstance {
- return [ContactDetailsAvatar defaultInstance];
-}
-- (ContactDetailsAvatar*) build {
- [self checkInitialized];
- return [self buildPartial];
-}
-- (ContactDetailsAvatar*) buildPartial {
- ContactDetailsAvatar* returnMe = result;
- self.result = nil;
- return returnMe;
-}
-- (ContactDetailsAvatarBuilder*) mergeFrom:(ContactDetailsAvatar*) other {
- if (other == [ContactDetailsAvatar defaultInstance]) {
- return self;
- }
- if (other.hasContentType) {
- [self setContentType:other.contentType];
- }
- if (other.hasLength) {
- [self setLength:other.length];
- }
- [self mergeUnknownFields:other.unknownFields];
- return self;
-}
-- (ContactDetailsAvatarBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
- return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
-}
-- (ContactDetailsAvatarBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
- while (YES) {
- SInt32 tag = [input readTag];
- switch (tag) {
- case 0:
- [self setUnknownFields:[unknownFields build]];
- return self;
- default: {
- if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
- [self setUnknownFields:[unknownFields build]];
- return self;
- }
- break;
- }
- case 10: {
- [self setContentType:[input readString]];
- break;
- }
- case 16: {
- [self setLength:[input readUInt32]];
- break;
- }
- }
- }
-}
-- (BOOL) hasContentType {
- return result.hasContentType;
-}
-- (NSString*) contentType {
- return result.contentType;
-}
-- (ContactDetailsAvatarBuilder*) setContentType:(NSString*) value {
- result.hasContentType = YES;
- result.contentType = value;
- return self;
-}
-- (ContactDetailsAvatarBuilder*) clearContentType {
- result.hasContentType = NO;
- result.contentType = @"";
- return self;
-}
-- (BOOL) hasLength {
- return result.hasLength;
-}
-- (UInt32) length {
- return result.length;
-}
-- (ContactDetailsAvatarBuilder*) setLength:(UInt32) value {
- result.hasLength = YES;
- result.length = value;
- return self;
-}
-- (ContactDetailsAvatarBuilder*) clearLength {
- result.hasLength = NO;
- result.length = 0;
- return self;
-}
-@end
-
-@interface ContactDetailsBuilder()
-@property (strong) ContactDetails* result;
-@end
-
-@implementation ContactDetailsBuilder
-@synthesize result;
-- (id) init {
- if ((self = [super init])) {
- self.result = [[ContactDetails alloc] init];
- }
- return self;
-}
-- (PBGeneratedMessage*) internalGetResult {
- return result;
-}
-- (ContactDetailsBuilder*) clear {
- self.result = [[ContactDetails alloc] init];
- return self;
-}
-- (ContactDetailsBuilder*) clone {
- return [ContactDetails builderWithPrototype:result];
-}
-- (ContactDetails*) defaultInstance {
- return [ContactDetails defaultInstance];
-}
-- (ContactDetails*) build {
- [self checkInitialized];
- return [self buildPartial];
-}
-- (ContactDetails*) buildPartial {
- ContactDetails* returnMe = result;
- self.result = nil;
- return returnMe;
-}
-- (ContactDetailsBuilder*) mergeFrom:(ContactDetails*) other {
- if (other == [ContactDetails defaultInstance]) {
- return self;
- }
- if (other.hasNumber) {
- [self setNumber:other.number];
- }
- if (other.hasName) {
- [self setName:other.name];
- }
- if (other.hasAvatar) {
- [self mergeAvatar:other.avatar];
- }
- [self mergeUnknownFields:other.unknownFields];
- return self;
-}
-- (ContactDetailsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
- return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
-}
-- (ContactDetailsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
- while (YES) {
- SInt32 tag = [input readTag];
- switch (tag) {
- case 0:
- [self setUnknownFields:[unknownFields build]];
- return self;
- default: {
- if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
- [self setUnknownFields:[unknownFields build]];
- return self;
- }
- break;
- }
- case 10: {
- [self setNumber:[input readString]];
- break;
- }
- case 18: {
- [self setName:[input readString]];
- break;
- }
- case 26: {
- ContactDetailsAvatarBuilder* subBuilder = [ContactDetailsAvatar builder];
- if (self.hasAvatar) {
- [subBuilder mergeFrom:self.avatar];
- }
- [input readMessage:subBuilder extensionRegistry:extensionRegistry];
- [self setAvatar:[subBuilder buildPartial]];
- break;
- }
- }
- }
-}
-- (BOOL) hasNumber {
- return result.hasNumber;
-}
-- (NSString*) number {
- return result.number;
-}
-- (ContactDetailsBuilder*) setNumber:(NSString*) value {
- result.hasNumber = YES;
- result.number = value;
- return self;
-}
-- (ContactDetailsBuilder*) clearNumber {
- result.hasNumber = NO;
- result.number = @"";
- return self;
-}
-- (BOOL) hasName {
- return result.hasName;
-}
-- (NSString*) name {
- return result.name;
-}
-- (ContactDetailsBuilder*) setName:(NSString*) value {
- result.hasName = YES;
- result.name = value;
- return self;
-}
-- (ContactDetailsBuilder*) clearName {
- result.hasName = NO;
- result.name = @"";
- return self;
-}
-- (BOOL) hasAvatar {
- return result.hasAvatar;
-}
-- (ContactDetailsAvatar*) avatar {
- return result.avatar;
-}
-- (ContactDetailsBuilder*) setAvatar:(ContactDetailsAvatar*) value {
- result.hasAvatar = YES;
- result.avatar = value;
- return self;
-}
-- (ContactDetailsBuilder*) setAvatarBuilder:(ContactDetailsAvatarBuilder*) builderForValue {
- return [self setAvatar:[builderForValue build]];
-}
-- (ContactDetailsBuilder*) mergeAvatar:(ContactDetailsAvatar*) value {
- if (result.hasAvatar &&
- result.avatar != [ContactDetailsAvatar defaultInstance]) {
- result.avatar =
- [[[ContactDetailsAvatar builderWithPrototype:result.avatar] mergeFrom:value] buildPartial];
- } else {
- result.avatar = value;
- }
- result.hasAvatar = YES;
- return self;
-}
-- (ContactDetailsBuilder*) clearAvatar {
- result.hasAvatar = NO;
- result.avatar = [ContactDetailsAvatar defaultInstance];
- return self;
-}
-@end
-
-@interface GroupDetails ()
-@property (strong) NSData* id;
-@property (strong) NSString* name;
-@property (strong) NSMutableArray * membersArray;
-@property (strong) GroupDetailsAvatar* avatar;
-@end
-
-@implementation GroupDetails
-
-- (BOOL) hasId {
- return !!hasId_;
-}
-- (void) setHasId:(BOOL) value_ {
- hasId_ = !!value_;
-}
-@synthesize id;
-- (BOOL) hasName {
- return !!hasName_;
-}
-- (void) setHasName:(BOOL) value_ {
- hasName_ = !!value_;
-}
-@synthesize name;
-@synthesize membersArray;
-@dynamic members;
-- (BOOL) hasAvatar {
- return !!hasAvatar_;
-}
-- (void) setHasAvatar:(BOOL) value_ {
- hasAvatar_ = !!value_;
-}
-@synthesize avatar;
-- (id) init {
- if ((self = [super init])) {
- self.id = [NSData data];
- self.name = @"";
- self.avatar = [GroupDetailsAvatar defaultInstance];
- }
- return self;
-}
-static GroupDetails* defaultGroupDetailsInstance = nil;
-+ (void) initialize {
- if (self == [GroupDetails class]) {
- defaultGroupDetailsInstance = [[GroupDetails alloc] init];
- }
-}
-+ (GroupDetails*) defaultInstance {
- return defaultGroupDetailsInstance;
-}
-- (GroupDetails*) defaultInstance {
- return defaultGroupDetailsInstance;
-}
-- (NSArray *)members {
- return membersArray;
-}
-- (NSString*)membersAtIndex:(NSUInteger)index {
- return [membersArray objectAtIndex:index];
-}
-- (BOOL) isInitialized {
- return YES;
-}
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
- if (self.hasId) {
- [output writeData:1 value:self.id];
- }
- if (self.hasName) {
- [output writeString:2 value:self.name];
- }
- [self.membersArray enumerateObjectsUsingBlock:^(NSString *element, NSUInteger idx, BOOL *stop) {
- [output writeString:3 value:element];
- }];
- if (self.hasAvatar) {
- [output writeMessage:4 value:self.avatar];
- }
- [self.unknownFields writeToCodedOutputStream:output];
-}
-- (SInt32) serializedSize {
- __block SInt32 size_ = memoizedSerializedSize;
- if (size_ != -1) {
- return size_;
- }
-
- size_ = 0;
- if (self.hasId) {
- size_ += computeDataSize(1, self.id);
- }
- if (self.hasName) {
- size_ += computeStringSize(2, self.name);
- }
- {
- __block SInt32 dataSize = 0;
- const NSUInteger count = self.membersArray.count;
- [self.membersArray enumerateObjectsUsingBlock:^(NSString *element, NSUInteger idx, BOOL *stop) {
- dataSize += computeStringSizeNoTag(element);
- }];
- size_ += dataSize;
- size_ += (SInt32)(1 * count);
- }
- if (self.hasAvatar) {
- size_ += computeMessageSize(4, self.avatar);
- }
- size_ += self.unknownFields.serializedSize;
- memoizedSerializedSize = size_;
- return size_;
-}
-+ (GroupDetails*) parseFromData:(NSData*) data {
- return (GroupDetails*)[[[GroupDetails builder] mergeFromData:data] build];
-}
-+ (GroupDetails*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (GroupDetails*)[[[GroupDetails builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
-}
-+ (GroupDetails*) parseFromInputStream:(NSInputStream*) input {
- return (GroupDetails*)[[[GroupDetails builder] mergeFromInputStream:input] build];
-}
-+ (GroupDetails*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (GroupDetails*)[[[GroupDetails builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (GroupDetails*) parseFromCodedInputStream:(PBCodedInputStream*) input {
- return (GroupDetails*)[[[GroupDetails builder] mergeFromCodedInputStream:input] build];
-}
-+ (GroupDetails*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (GroupDetails*)[[[GroupDetails builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (GroupDetailsBuilder*) builder {
- return [[GroupDetailsBuilder alloc] init];
-}
-+ (GroupDetailsBuilder*) builderWithPrototype:(GroupDetails*) prototype {
- return [[GroupDetails builder] mergeFrom:prototype];
-}
-- (GroupDetailsBuilder*) builder {
- return [GroupDetails builder];
-}
-- (GroupDetailsBuilder*) toBuilder {
- return [GroupDetails builderWithPrototype:self];
-}
-- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
- if (self.hasId) {
- [output appendFormat:@"%@%@: %@\n", indent, @"id", self.id];
- }
- if (self.hasName) {
- [output appendFormat:@"%@%@: %@\n", indent, @"name", self.name];
- }
- [self.membersArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
- [output appendFormat:@"%@%@: %@\n", indent, @"members", obj];
- }];
- if (self.hasAvatar) {
- [output appendFormat:@"%@%@ {\n", indent, @"avatar"];
- [self.avatar writeDescriptionTo:output
- withIndent:[NSString stringWithFormat:@"%@ ", indent]];
- [output appendFormat:@"%@}\n", indent];
- }
- [self.unknownFields writeDescriptionTo:output withIndent:indent];
-}
-- (BOOL) isEqual:(id)other {
- if (other == self) {
- return YES;
- }
- if (![other isKindOfClass:[GroupDetails class]]) {
- return NO;
- }
- GroupDetails *otherMessage = other;
- return
- self.hasId == otherMessage.hasId &&
- (!self.hasId || [self.id isEqual:otherMessage.id]) &&
- self.hasName == otherMessage.hasName &&
- (!self.hasName || [self.name isEqual:otherMessage.name]) &&
- [self.membersArray isEqualToArray:otherMessage.membersArray] &&
- self.hasAvatar == otherMessage.hasAvatar &&
- (!self.hasAvatar || [self.avatar isEqual:otherMessage.avatar]) &&
- (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
-}
-- (NSUInteger) hash {
- __block NSUInteger hashCode = 7;
- if (self.hasId) {
- hashCode = hashCode * 31 + [self.id hash];
- }
- if (self.hasName) {
- hashCode = hashCode * 31 + [self.name hash];
- }
- [self.membersArray enumerateObjectsUsingBlock:^(id element, NSUInteger idx, BOOL *stop) {
- hashCode = hashCode * 31 + [element hash];
- }];
- if (self.hasAvatar) {
- hashCode = hashCode * 31 + [self.avatar hash];
- }
- hashCode = hashCode * 31 + [self.unknownFields hash];
- return hashCode;
-}
-@end
-
-@interface GroupDetailsAvatar ()
-@property (strong) NSString* contentType;
-@property UInt32 length;
-@end
-
-@implementation GroupDetailsAvatar
-
-- (BOOL) hasContentType {
- return !!hasContentType_;
-}
-- (void) setHasContentType:(BOOL) value_ {
- hasContentType_ = !!value_;
-}
-@synthesize contentType;
-- (BOOL) hasLength {
- return !!hasLength_;
-}
-- (void) setHasLength:(BOOL) value_ {
- hasLength_ = !!value_;
-}
-@synthesize length;
-- (id) init {
- if ((self = [super init])) {
- self.contentType = @"";
- self.length = 0;
- }
- return self;
-}
-static GroupDetailsAvatar* defaultGroupDetailsAvatarInstance = nil;
-+ (void) initialize {
- if (self == [GroupDetailsAvatar class]) {
- defaultGroupDetailsAvatarInstance = [[GroupDetailsAvatar alloc] init];
- }
-}
-+ (GroupDetailsAvatar*) defaultInstance {
- return defaultGroupDetailsAvatarInstance;
-}
-- (GroupDetailsAvatar*) defaultInstance {
- return defaultGroupDetailsAvatarInstance;
-}
-- (BOOL) isInitialized {
- return YES;
-}
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
- if (self.hasContentType) {
- [output writeString:1 value:self.contentType];
- }
- if (self.hasLength) {
- [output writeUInt32:2 value:self.length];
- }
- [self.unknownFields writeToCodedOutputStream:output];
-}
-- (SInt32) serializedSize {
- __block SInt32 size_ = memoizedSerializedSize;
- if (size_ != -1) {
- return size_;
- }
-
- size_ = 0;
- if (self.hasContentType) {
- size_ += computeStringSize(1, self.contentType);
- }
- if (self.hasLength) {
- size_ += computeUInt32Size(2, self.length);
- }
- size_ += self.unknownFields.serializedSize;
- memoizedSerializedSize = size_;
- return size_;
-}
-+ (GroupDetailsAvatar*) parseFromData:(NSData*) data {
- return (GroupDetailsAvatar*)[[[GroupDetailsAvatar builder] mergeFromData:data] build];
-}
-+ (GroupDetailsAvatar*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (GroupDetailsAvatar*)[[[GroupDetailsAvatar builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
-}
-+ (GroupDetailsAvatar*) parseFromInputStream:(NSInputStream*) input {
- return (GroupDetailsAvatar*)[[[GroupDetailsAvatar builder] mergeFromInputStream:input] build];
-}
-+ (GroupDetailsAvatar*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (GroupDetailsAvatar*)[[[GroupDetailsAvatar builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (GroupDetailsAvatar*) parseFromCodedInputStream:(PBCodedInputStream*) input {
- return (GroupDetailsAvatar*)[[[GroupDetailsAvatar builder] mergeFromCodedInputStream:input] build];
-}
-+ (GroupDetailsAvatar*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (GroupDetailsAvatar*)[[[GroupDetailsAvatar builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (GroupDetailsAvatarBuilder*) builder {
- return [[GroupDetailsAvatarBuilder alloc] init];
-}
-+ (GroupDetailsAvatarBuilder*) builderWithPrototype:(GroupDetailsAvatar*) prototype {
- return [[GroupDetailsAvatar builder] mergeFrom:prototype];
-}
-- (GroupDetailsAvatarBuilder*) builder {
- return [GroupDetailsAvatar builder];
-}
-- (GroupDetailsAvatarBuilder*) toBuilder {
- return [GroupDetailsAvatar builderWithPrototype:self];
-}
-- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
- if (self.hasContentType) {
- [output appendFormat:@"%@%@: %@\n", indent, @"contentType", self.contentType];
- }
- if (self.hasLength) {
- [output appendFormat:@"%@%@: %@\n", indent, @"length", [NSNumber numberWithInteger:self.length]];
- }
- [self.unknownFields writeDescriptionTo:output withIndent:indent];
-}
-- (BOOL) isEqual:(id)other {
- if (other == self) {
- return YES;
- }
- if (![other isKindOfClass:[GroupDetailsAvatar class]]) {
- return NO;
- }
- GroupDetailsAvatar *otherMessage = other;
- return
- self.hasContentType == otherMessage.hasContentType &&
- (!self.hasContentType || [self.contentType isEqual:otherMessage.contentType]) &&
- self.hasLength == otherMessage.hasLength &&
- (!self.hasLength || self.length == otherMessage.length) &&
- (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
-}
-- (NSUInteger) hash {
- __block NSUInteger hashCode = 7;
- if (self.hasContentType) {
- hashCode = hashCode * 31 + [self.contentType hash];
- }
- if (self.hasLength) {
- hashCode = hashCode * 31 + [[NSNumber numberWithInteger:self.length] hash];
- }
- hashCode = hashCode * 31 + [self.unknownFields hash];
- return hashCode;
-}
-@end
-
-@interface GroupDetailsAvatarBuilder()
-@property (strong) GroupDetailsAvatar* result;
-@end
-
-@implementation GroupDetailsAvatarBuilder
-@synthesize result;
-- (id) init {
- if ((self = [super init])) {
- self.result = [[GroupDetailsAvatar alloc] init];
- }
- return self;
-}
-- (PBGeneratedMessage*) internalGetResult {
- return result;
-}
-- (GroupDetailsAvatarBuilder*) clear {
- self.result = [[GroupDetailsAvatar alloc] init];
- return self;
-}
-- (GroupDetailsAvatarBuilder*) clone {
- return [GroupDetailsAvatar builderWithPrototype:result];
-}
-- (GroupDetailsAvatar*) defaultInstance {
- return [GroupDetailsAvatar defaultInstance];
-}
-- (GroupDetailsAvatar*) build {
- [self checkInitialized];
- return [self buildPartial];
-}
-- (GroupDetailsAvatar*) buildPartial {
- GroupDetailsAvatar* returnMe = result;
- self.result = nil;
- return returnMe;
-}
-- (GroupDetailsAvatarBuilder*) mergeFrom:(GroupDetailsAvatar*) other {
- if (other == [GroupDetailsAvatar defaultInstance]) {
- return self;
- }
- if (other.hasContentType) {
- [self setContentType:other.contentType];
- }
- if (other.hasLength) {
- [self setLength:other.length];
- }
- [self mergeUnknownFields:other.unknownFields];
- return self;
-}
-- (GroupDetailsAvatarBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
- return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
-}
-- (GroupDetailsAvatarBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
- while (YES) {
- SInt32 tag = [input readTag];
- switch (tag) {
- case 0:
- [self setUnknownFields:[unknownFields build]];
- return self;
- default: {
- if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
- [self setUnknownFields:[unknownFields build]];
- return self;
- }
- break;
- }
- case 10: {
- [self setContentType:[input readString]];
- break;
- }
- case 16: {
- [self setLength:[input readUInt32]];
- break;
- }
- }
- }
-}
-- (BOOL) hasContentType {
- return result.hasContentType;
-}
-- (NSString*) contentType {
- return result.contentType;
-}
-- (GroupDetailsAvatarBuilder*) setContentType:(NSString*) value {
- result.hasContentType = YES;
- result.contentType = value;
- return self;
-}
-- (GroupDetailsAvatarBuilder*) clearContentType {
- result.hasContentType = NO;
- result.contentType = @"";
- return self;
-}
-- (BOOL) hasLength {
- return result.hasLength;
-}
-- (UInt32) length {
- return result.length;
-}
-- (GroupDetailsAvatarBuilder*) setLength:(UInt32) value {
- result.hasLength = YES;
- result.length = value;
- return self;
-}
-- (GroupDetailsAvatarBuilder*) clearLength {
- result.hasLength = NO;
- result.length = 0;
- return self;
-}
-@end
-
-@interface GroupDetailsBuilder()
-@property (strong) GroupDetails* result;
-@end
-
-@implementation GroupDetailsBuilder
-@synthesize result;
-- (id) init {
- if ((self = [super init])) {
- self.result = [[GroupDetails alloc] init];
- }
- return self;
-}
-- (PBGeneratedMessage*) internalGetResult {
- return result;
-}
-- (GroupDetailsBuilder*) clear {
- self.result = [[GroupDetails alloc] init];
- return self;
-}
-- (GroupDetailsBuilder*) clone {
- return [GroupDetails builderWithPrototype:result];
-}
-- (GroupDetails*) defaultInstance {
- return [GroupDetails defaultInstance];
-}
-- (GroupDetails*) build {
- [self checkInitialized];
- return [self buildPartial];
-}
-- (GroupDetails*) buildPartial {
- GroupDetails* returnMe = result;
- self.result = nil;
- return returnMe;
-}
-- (GroupDetailsBuilder*) mergeFrom:(GroupDetails*) other {
- if (other == [GroupDetails defaultInstance]) {
- return self;
- }
- if (other.hasId) {
- [self setId:other.id];
- }
- if (other.hasName) {
- [self setName:other.name];
- }
- if (other.membersArray.count > 0) {
- if (result.membersArray == nil) {
- result.membersArray = [[NSMutableArray alloc] initWithArray:other.membersArray];
- } else {
- [result.membersArray addObjectsFromArray:other.membersArray];
- }
- }
- if (other.hasAvatar) {
- [self mergeAvatar:other.avatar];
- }
- [self mergeUnknownFields:other.unknownFields];
- return self;
-}
-- (GroupDetailsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
- return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
-}
-- (GroupDetailsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
- while (YES) {
- SInt32 tag = [input readTag];
- switch (tag) {
- case 0:
- [self setUnknownFields:[unknownFields build]];
- return self;
- default: {
- if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
- [self setUnknownFields:[unknownFields build]];
- return self;
- }
- break;
- }
- case 10: {
- [self setId:[input readData]];
- break;
- }
- case 18: {
- [self setName:[input readString]];
- break;
- }
- case 26: {
- [self addMembers:[input readString]];
- break;
- }
- case 34: {
- GroupDetailsAvatarBuilder* subBuilder = [GroupDetailsAvatar builder];
- if (self.hasAvatar) {
- [subBuilder mergeFrom:self.avatar];
- }
- [input readMessage:subBuilder extensionRegistry:extensionRegistry];
- [self setAvatar:[subBuilder buildPartial]];
- break;
- }
- }
- }
-}
-- (BOOL) hasId {
- return result.hasId;
-}
-- (NSData*) id {
- return result.id;
-}
-- (GroupDetailsBuilder*) setId:(NSData*) value {
- result.hasId = YES;
- result.id = value;
- return self;
-}
-- (GroupDetailsBuilder*) clearId {
- result.hasId = NO;
- result.id = [NSData data];
- return self;
-}
-- (BOOL) hasName {
- return result.hasName;
-}
-- (NSString*) name {
- return result.name;
-}
-- (GroupDetailsBuilder*) setName:(NSString*) value {
- result.hasName = YES;
- result.name = value;
- return self;
-}
-- (GroupDetailsBuilder*) clearName {
- result.hasName = NO;
- result.name = @"";
- return self;
-}
-- (NSMutableArray *)members {
- return result.membersArray;
-}
-- (NSString*)membersAtIndex:(NSUInteger)index {
- return [result membersAtIndex:index];
-}
-- (GroupDetailsBuilder *)addMembers:(NSString*)value {
- if (result.membersArray == nil) {
- result.membersArray = [[NSMutableArray alloc]init];
- }
- [result.membersArray addObject:value];
- return self;
-}
-- (GroupDetailsBuilder *)setMembersArray:(NSArray *)array {
- result.membersArray = [[NSMutableArray alloc] initWithArray:array];
- return self;
-}
-- (GroupDetailsBuilder *)clearMembers {
- result.membersArray = nil;
- return self;
-}
-- (BOOL) hasAvatar {
- return result.hasAvatar;
-}
-- (GroupDetailsAvatar*) avatar {
- return result.avatar;
-}
-- (GroupDetailsBuilder*) setAvatar:(GroupDetailsAvatar*) value {
- result.hasAvatar = YES;
- result.avatar = value;
- return self;
-}
-- (GroupDetailsBuilder*) setAvatarBuilder:(GroupDetailsAvatarBuilder*) builderForValue {
- return [self setAvatar:[builderForValue build]];
-}
-- (GroupDetailsBuilder*) mergeAvatar:(GroupDetailsAvatar*) value {
- if (result.hasAvatar &&
- result.avatar != [GroupDetailsAvatar defaultInstance]) {
- result.avatar =
- [[[GroupDetailsAvatar builderWithPrototype:result.avatar] mergeFrom:value] buildPartial];
- } else {
- result.avatar = value;
- }
- result.hasAvatar = YES;
- return self;
-}
-- (GroupDetailsBuilder*) clearAvatar {
- result.hasAvatar = NO;
- result.avatar = [GroupDetailsAvatar defaultInstance];
- return self;
-}
-@end
-
-
-// @@protoc_insertion_point(global_scope)
diff --git a/protobuf/WebSocketResources.pb.h b/protobuf/WebSocketResources.pb.h
deleted file mode 100644
index 46da19a043..0000000000
--- a/protobuf/WebSocketResources.pb.h
+++ /dev/null
@@ -1,264 +0,0 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-
-#import "ProtocolBuffers.h"
-
-// @@protoc_insertion_point(imports)
-
-@class WebSocketMessage;
-@class WebSocketMessageBuilder;
-@class WebSocketRequestMessage;
-@class WebSocketRequestMessageBuilder;
-@class WebSocketResponseMessage;
-@class WebSocketResponseMessageBuilder;
-#ifndef __has_feature
- #define __has_feature(x) 0 // Compatibility with non-clang compilers.
-#endif // __has_feature
-
-#ifndef NS_RETURNS_NOT_RETAINED
- #if __has_feature(attribute_ns_returns_not_retained)
- #define NS_RETURNS_NOT_RETAINED __attribute__((ns_returns_not_retained))
- #else
- #define NS_RETURNS_NOT_RETAINED
- #endif
-#endif
-
-typedef enum {
- WebSocketMessageTypeUnknown = 0,
- WebSocketMessageTypeRequest = 1,
- WebSocketMessageTypeResponse = 2,
-} WebSocketMessageType;
-
-BOOL WebSocketMessageTypeIsValidValue(WebSocketMessageType value);
-
-
-@interface WebSocketResourcesRoot : NSObject {
-}
-+ (PBExtensionRegistry*) extensionRegistry;
-+ (void) registerAllExtensions:(PBMutableExtensionRegistry*) registry;
-@end
-
-@interface WebSocketRequestMessage : PBGeneratedMessage {
-@private
- BOOL hasId_:1;
- BOOL hasVerb_:1;
- BOOL hasPath_:1;
- BOOL hasBody_:1;
- UInt64 id;
- NSString* verb;
- NSString* path;
- NSData* body;
-}
-- (BOOL) hasVerb;
-- (BOOL) hasPath;
-- (BOOL) hasBody;
-- (BOOL) hasId;
-@property (readonly, strong) NSString* verb;
-@property (readonly, strong) NSString* path;
-@property (readonly, strong) NSData* body;
-@property (readonly) UInt64 id;
-
-+ (WebSocketRequestMessage*) defaultInstance;
-- (WebSocketRequestMessage*) defaultInstance;
-
-- (BOOL) isInitialized;
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
-- (WebSocketRequestMessageBuilder*) builder;
-+ (WebSocketRequestMessageBuilder*) builder;
-+ (WebSocketRequestMessageBuilder*) builderWithPrototype:(WebSocketRequestMessage*) prototype;
-- (WebSocketRequestMessageBuilder*) toBuilder;
-
-+ (WebSocketRequestMessage*) parseFromData:(NSData*) data;
-+ (WebSocketRequestMessage*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (WebSocketRequestMessage*) parseFromInputStream:(NSInputStream*) input;
-+ (WebSocketRequestMessage*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (WebSocketRequestMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input;
-+ (WebSocketRequestMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-@end
-
-@interface WebSocketRequestMessageBuilder : PBGeneratedMessageBuilder {
-@private
- WebSocketRequestMessage* result;
-}
-
-- (WebSocketRequestMessage*) defaultInstance;
-
-- (WebSocketRequestMessageBuilder*) clear;
-- (WebSocketRequestMessageBuilder*) clone;
-
-- (WebSocketRequestMessage*) build;
-- (WebSocketRequestMessage*) buildPartial;
-
-- (WebSocketRequestMessageBuilder*) mergeFrom:(WebSocketRequestMessage*) other;
-- (WebSocketRequestMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
-- (WebSocketRequestMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-
-- (BOOL) hasVerb;
-- (NSString*) verb;
-- (WebSocketRequestMessageBuilder*) setVerb:(NSString*) value;
-- (WebSocketRequestMessageBuilder*) clearVerb;
-
-- (BOOL) hasPath;
-- (NSString*) path;
-- (WebSocketRequestMessageBuilder*) setPath:(NSString*) value;
-- (WebSocketRequestMessageBuilder*) clearPath;
-
-- (BOOL) hasBody;
-- (NSData*) body;
-- (WebSocketRequestMessageBuilder*) setBody:(NSData*) value;
-- (WebSocketRequestMessageBuilder*) clearBody;
-
-- (BOOL) hasId;
-- (UInt64) id;
-- (WebSocketRequestMessageBuilder*) setId:(UInt64) value;
-- (WebSocketRequestMessageBuilder*) clearId;
-@end
-
-@interface WebSocketResponseMessage : PBGeneratedMessage {
-@private
- BOOL hasId_:1;
- BOOL hasMessage_:1;
- BOOL hasBody_:1;
- BOOL hasStatus_:1;
- UInt64 id;
- NSString* message;
- NSData* body;
- UInt32 status;
-}
-- (BOOL) hasId;
-- (BOOL) hasStatus;
-- (BOOL) hasMessage;
-- (BOOL) hasBody;
-@property (readonly) UInt64 id;
-@property (readonly) UInt32 status;
-@property (readonly, strong) NSString* message;
-@property (readonly, strong) NSData* body;
-
-+ (WebSocketResponseMessage*) defaultInstance;
-- (WebSocketResponseMessage*) defaultInstance;
-
-- (BOOL) isInitialized;
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
-- (WebSocketResponseMessageBuilder*) builder;
-+ (WebSocketResponseMessageBuilder*) builder;
-+ (WebSocketResponseMessageBuilder*) builderWithPrototype:(WebSocketResponseMessage*) prototype;
-- (WebSocketResponseMessageBuilder*) toBuilder;
-
-+ (WebSocketResponseMessage*) parseFromData:(NSData*) data;
-+ (WebSocketResponseMessage*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (WebSocketResponseMessage*) parseFromInputStream:(NSInputStream*) input;
-+ (WebSocketResponseMessage*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (WebSocketResponseMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input;
-+ (WebSocketResponseMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-@end
-
-@interface WebSocketResponseMessageBuilder : PBGeneratedMessageBuilder {
-@private
- WebSocketResponseMessage* result;
-}
-
-- (WebSocketResponseMessage*) defaultInstance;
-
-- (WebSocketResponseMessageBuilder*) clear;
-- (WebSocketResponseMessageBuilder*) clone;
-
-- (WebSocketResponseMessage*) build;
-- (WebSocketResponseMessage*) buildPartial;
-
-- (WebSocketResponseMessageBuilder*) mergeFrom:(WebSocketResponseMessage*) other;
-- (WebSocketResponseMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
-- (WebSocketResponseMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-
-- (BOOL) hasId;
-- (UInt64) id;
-- (WebSocketResponseMessageBuilder*) setId:(UInt64) value;
-- (WebSocketResponseMessageBuilder*) clearId;
-
-- (BOOL) hasStatus;
-- (UInt32) status;
-- (WebSocketResponseMessageBuilder*) setStatus:(UInt32) value;
-- (WebSocketResponseMessageBuilder*) clearStatus;
-
-- (BOOL) hasMessage;
-- (NSString*) message;
-- (WebSocketResponseMessageBuilder*) setMessage:(NSString*) value;
-- (WebSocketResponseMessageBuilder*) clearMessage;
-
-- (BOOL) hasBody;
-- (NSData*) body;
-- (WebSocketResponseMessageBuilder*) setBody:(NSData*) value;
-- (WebSocketResponseMessageBuilder*) clearBody;
-@end
-
-@interface WebSocketMessage : PBGeneratedMessage {
-@private
- BOOL hasRequest_:1;
- BOOL hasResponse_:1;
- BOOL hasType_:1;
- WebSocketRequestMessage* request;
- WebSocketResponseMessage* response;
- WebSocketMessageType type;
-}
-- (BOOL) hasType;
-- (BOOL) hasRequest;
-- (BOOL) hasResponse;
-@property (readonly) WebSocketMessageType type;
-@property (readonly, strong) WebSocketRequestMessage* request;
-@property (readonly, strong) WebSocketResponseMessage* response;
-
-+ (WebSocketMessage*) defaultInstance;
-- (WebSocketMessage*) defaultInstance;
-
-- (BOOL) isInitialized;
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
-- (WebSocketMessageBuilder*) builder;
-+ (WebSocketMessageBuilder*) builder;
-+ (WebSocketMessageBuilder*) builderWithPrototype:(WebSocketMessage*) prototype;
-- (WebSocketMessageBuilder*) toBuilder;
-
-+ (WebSocketMessage*) parseFromData:(NSData*) data;
-+ (WebSocketMessage*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (WebSocketMessage*) parseFromInputStream:(NSInputStream*) input;
-+ (WebSocketMessage*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-+ (WebSocketMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input;
-+ (WebSocketMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-@end
-
-@interface WebSocketMessageBuilder : PBGeneratedMessageBuilder {
-@private
- WebSocketMessage* result;
-}
-
-- (WebSocketMessage*) defaultInstance;
-
-- (WebSocketMessageBuilder*) clear;
-- (WebSocketMessageBuilder*) clone;
-
-- (WebSocketMessage*) build;
-- (WebSocketMessage*) buildPartial;
-
-- (WebSocketMessageBuilder*) mergeFrom:(WebSocketMessage*) other;
-- (WebSocketMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
-- (WebSocketMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
-
-- (BOOL) hasType;
-- (WebSocketMessageType) type;
-- (WebSocketMessageBuilder*) setType:(WebSocketMessageType) value;
-- (WebSocketMessageBuilder*) clearType;
-
-- (BOOL) hasRequest;
-- (WebSocketRequestMessage*) request;
-- (WebSocketMessageBuilder*) setRequest:(WebSocketRequestMessage*) value;
-- (WebSocketMessageBuilder*) setRequestBuilder:(WebSocketRequestMessageBuilder*) builderForValue;
-- (WebSocketMessageBuilder*) mergeRequest:(WebSocketRequestMessage*) value;
-- (WebSocketMessageBuilder*) clearRequest;
-
-- (BOOL) hasResponse;
-- (WebSocketResponseMessage*) response;
-- (WebSocketMessageBuilder*) setResponse:(WebSocketResponseMessage*) value;
-- (WebSocketMessageBuilder*) setResponseBuilder:(WebSocketResponseMessageBuilder*) builderForValue;
-- (WebSocketMessageBuilder*) mergeResponse:(WebSocketResponseMessage*) value;
-- (WebSocketMessageBuilder*) clearResponse;
-@end
-
-
-// @@protoc_insertion_point(global_scope)
diff --git a/protobuf/WebSocketResources.pb.m b/protobuf/WebSocketResources.pb.m
deleted file mode 100644
index 6171a58a10..0000000000
--- a/protobuf/WebSocketResources.pb.m
+++ /dev/null
@@ -1,1051 +0,0 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-
-#import "WebSocketResources.pb.h"
-// @@protoc_insertion_point(imports)
-
-@implementation WebSocketResourcesRoot
-static PBExtensionRegistry* extensionRegistry = nil;
-+ (PBExtensionRegistry*) extensionRegistry {
- return extensionRegistry;
-}
-
-+ (void) initialize {
- if (self == [WebSocketResourcesRoot class]) {
- PBMutableExtensionRegistry* registry = [PBMutableExtensionRegistry registry];
- [self registerAllExtensions:registry];
- extensionRegistry = registry;
- }
-}
-+ (void) registerAllExtensions:(PBMutableExtensionRegistry*) registry {
-}
-@end
-
-@interface WebSocketRequestMessage ()
-@property (strong) NSString* verb;
-@property (strong) NSString* path;
-@property (strong) NSData* body;
-@property UInt64 id;
-@end
-
-@implementation WebSocketRequestMessage
-
-- (BOOL) hasVerb {
- return !!hasVerb_;
-}
-- (void) setHasVerb:(BOOL) value_ {
- hasVerb_ = !!value_;
-}
-@synthesize verb;
-- (BOOL) hasPath {
- return !!hasPath_;
-}
-- (void) setHasPath:(BOOL) value_ {
- hasPath_ = !!value_;
-}
-@synthesize path;
-- (BOOL) hasBody {
- return !!hasBody_;
-}
-- (void) setHasBody:(BOOL) value_ {
- hasBody_ = !!value_;
-}
-@synthesize body;
-- (BOOL) hasId {
- return !!hasId_;
-}
-- (void) setHasId:(BOOL) value_ {
- hasId_ = !!value_;
-}
-@synthesize id;
-- (id) init {
- if ((self = [super init])) {
- self.verb = @"";
- self.path = @"";
- self.body = [NSData data];
- self.id = 0L;
- }
- return self;
-}
-static WebSocketRequestMessage* defaultWebSocketRequestMessageInstance = nil;
-+ (void) initialize {
- if (self == [WebSocketRequestMessage class]) {
- defaultWebSocketRequestMessageInstance = [[WebSocketRequestMessage alloc] init];
- }
-}
-+ (WebSocketRequestMessage*) defaultInstance {
- return defaultWebSocketRequestMessageInstance;
-}
-- (WebSocketRequestMessage*) defaultInstance {
- return defaultWebSocketRequestMessageInstance;
-}
-- (BOOL) isInitialized {
- return YES;
-}
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
- if (self.hasVerb) {
- [output writeString:1 value:self.verb];
- }
- if (self.hasPath) {
- [output writeString:2 value:self.path];
- }
- if (self.hasBody) {
- [output writeData:3 value:self.body];
- }
- if (self.hasId) {
- [output writeUInt64:4 value:self.id];
- }
- [self.unknownFields writeToCodedOutputStream:output];
-}
-- (SInt32) serializedSize {
- __block SInt32 size_ = memoizedSerializedSize;
- if (size_ != -1) {
- return size_;
- }
-
- size_ = 0;
- if (self.hasVerb) {
- size_ += computeStringSize(1, self.verb);
- }
- if (self.hasPath) {
- size_ += computeStringSize(2, self.path);
- }
- if (self.hasBody) {
- size_ += computeDataSize(3, self.body);
- }
- if (self.hasId) {
- size_ += computeUInt64Size(4, self.id);
- }
- size_ += self.unknownFields.serializedSize;
- memoizedSerializedSize = size_;
- return size_;
-}
-+ (WebSocketRequestMessage*) parseFromData:(NSData*) data {
- return (WebSocketRequestMessage*)[[[WebSocketRequestMessage builder] mergeFromData:data] build];
-}
-+ (WebSocketRequestMessage*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (WebSocketRequestMessage*)[[[WebSocketRequestMessage builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
-}
-+ (WebSocketRequestMessage*) parseFromInputStream:(NSInputStream*) input {
- return (WebSocketRequestMessage*)[[[WebSocketRequestMessage builder] mergeFromInputStream:input] build];
-}
-+ (WebSocketRequestMessage*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (WebSocketRequestMessage*)[[[WebSocketRequestMessage builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (WebSocketRequestMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input {
- return (WebSocketRequestMessage*)[[[WebSocketRequestMessage builder] mergeFromCodedInputStream:input] build];
-}
-+ (WebSocketRequestMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (WebSocketRequestMessage*)[[[WebSocketRequestMessage builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (WebSocketRequestMessageBuilder*) builder {
- return [[WebSocketRequestMessageBuilder alloc] init];
-}
-+ (WebSocketRequestMessageBuilder*) builderWithPrototype:(WebSocketRequestMessage*) prototype {
- return [[WebSocketRequestMessage builder] mergeFrom:prototype];
-}
-- (WebSocketRequestMessageBuilder*) builder {
- return [WebSocketRequestMessage builder];
-}
-- (WebSocketRequestMessageBuilder*) toBuilder {
- return [WebSocketRequestMessage builderWithPrototype:self];
-}
-- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
- if (self.hasVerb) {
- [output appendFormat:@"%@%@: %@\n", indent, @"verb", self.verb];
- }
- if (self.hasPath) {
- [output appendFormat:@"%@%@: %@\n", indent, @"path", self.path];
- }
- if (self.hasBody) {
- [output appendFormat:@"%@%@: %@\n", indent, @"body", self.body];
- }
- if (self.hasId) {
- [output appendFormat:@"%@%@: %@\n", indent, @"id", [NSNumber numberWithLongLong:self.id]];
- }
- [self.unknownFields writeDescriptionTo:output withIndent:indent];
-}
-- (BOOL) isEqual:(id)other {
- if (other == self) {
- return YES;
- }
- if (![other isKindOfClass:[WebSocketRequestMessage class]]) {
- return NO;
- }
- WebSocketRequestMessage *otherMessage = other;
- return
- self.hasVerb == otherMessage.hasVerb &&
- (!self.hasVerb || [self.verb isEqual:otherMessage.verb]) &&
- self.hasPath == otherMessage.hasPath &&
- (!self.hasPath || [self.path isEqual:otherMessage.path]) &&
- self.hasBody == otherMessage.hasBody &&
- (!self.hasBody || [self.body isEqual:otherMessage.body]) &&
- self.hasId == otherMessage.hasId &&
- (!self.hasId || self.id == otherMessage.id) &&
- (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
-}
-- (NSUInteger) hash {
- __block NSUInteger hashCode = 7;
- if (self.hasVerb) {
- hashCode = hashCode * 31 + [self.verb hash];
- }
- if (self.hasPath) {
- hashCode = hashCode * 31 + [self.path hash];
- }
- if (self.hasBody) {
- hashCode = hashCode * 31 + [self.body hash];
- }
- if (self.hasId) {
- hashCode = hashCode * 31 + [[NSNumber numberWithLongLong:self.id] hash];
- }
- hashCode = hashCode * 31 + [self.unknownFields hash];
- return hashCode;
-}
-@end
-
-@interface WebSocketRequestMessageBuilder()
-@property (strong) WebSocketRequestMessage* result;
-@end
-
-@implementation WebSocketRequestMessageBuilder
-@synthesize result;
-- (id) init {
- if ((self = [super init])) {
- self.result = [[WebSocketRequestMessage alloc] init];
- }
- return self;
-}
-- (PBGeneratedMessage*) internalGetResult {
- return result;
-}
-- (WebSocketRequestMessageBuilder*) clear {
- self.result = [[WebSocketRequestMessage alloc] init];
- return self;
-}
-- (WebSocketRequestMessageBuilder*) clone {
- return [WebSocketRequestMessage builderWithPrototype:result];
-}
-- (WebSocketRequestMessage*) defaultInstance {
- return [WebSocketRequestMessage defaultInstance];
-}
-- (WebSocketRequestMessage*) build {
- [self checkInitialized];
- return [self buildPartial];
-}
-- (WebSocketRequestMessage*) buildPartial {
- WebSocketRequestMessage* returnMe = result;
- self.result = nil;
- return returnMe;
-}
-- (WebSocketRequestMessageBuilder*) mergeFrom:(WebSocketRequestMessage*) other {
- if (other == [WebSocketRequestMessage defaultInstance]) {
- return self;
- }
- if (other.hasVerb) {
- [self setVerb:other.verb];
- }
- if (other.hasPath) {
- [self setPath:other.path];
- }
- if (other.hasBody) {
- [self setBody:other.body];
- }
- if (other.hasId) {
- [self setId:other.id];
- }
- [self mergeUnknownFields:other.unknownFields];
- return self;
-}
-- (WebSocketRequestMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
- return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
-}
-- (WebSocketRequestMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
- while (YES) {
- SInt32 tag = [input readTag];
- switch (tag) {
- case 0:
- [self setUnknownFields:[unknownFields build]];
- return self;
- default: {
- if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
- [self setUnknownFields:[unknownFields build]];
- return self;
- }
- break;
- }
- case 10: {
- [self setVerb:[input readString]];
- break;
- }
- case 18: {
- [self setPath:[input readString]];
- break;
- }
- case 26: {
- [self setBody:[input readData]];
- break;
- }
- case 32: {
- [self setId:[input readUInt64]];
- break;
- }
- }
- }
-}
-- (BOOL) hasVerb {
- return result.hasVerb;
-}
-- (NSString*) verb {
- return result.verb;
-}
-- (WebSocketRequestMessageBuilder*) setVerb:(NSString*) value {
- result.hasVerb = YES;
- result.verb = value;
- return self;
-}
-- (WebSocketRequestMessageBuilder*) clearVerb {
- result.hasVerb = NO;
- result.verb = @"";
- return self;
-}
-- (BOOL) hasPath {
- return result.hasPath;
-}
-- (NSString*) path {
- return result.path;
-}
-- (WebSocketRequestMessageBuilder*) setPath:(NSString*) value {
- result.hasPath = YES;
- result.path = value;
- return self;
-}
-- (WebSocketRequestMessageBuilder*) clearPath {
- result.hasPath = NO;
- result.path = @"";
- return self;
-}
-- (BOOL) hasBody {
- return result.hasBody;
-}
-- (NSData*) body {
- return result.body;
-}
-- (WebSocketRequestMessageBuilder*) setBody:(NSData*) value {
- result.hasBody = YES;
- result.body = value;
- return self;
-}
-- (WebSocketRequestMessageBuilder*) clearBody {
- result.hasBody = NO;
- result.body = [NSData data];
- return self;
-}
-- (BOOL) hasId {
- return result.hasId;
-}
-- (UInt64) id {
- return result.id;
-}
-- (WebSocketRequestMessageBuilder*) setId:(UInt64) value {
- result.hasId = YES;
- result.id = value;
- return self;
-}
-- (WebSocketRequestMessageBuilder*) clearId {
- result.hasId = NO;
- result.id = 0L;
- return self;
-}
-@end
-
-@interface WebSocketResponseMessage ()
-@property UInt64 id;
-@property UInt32 status;
-@property (strong) NSString* message;
-@property (strong) NSData* body;
-@end
-
-@implementation WebSocketResponseMessage
-
-- (BOOL) hasId {
- return !!hasId_;
-}
-- (void) setHasId:(BOOL) value_ {
- hasId_ = !!value_;
-}
-@synthesize id;
-- (BOOL) hasStatus {
- return !!hasStatus_;
-}
-- (void) setHasStatus:(BOOL) value_ {
- hasStatus_ = !!value_;
-}
-@synthesize status;
-- (BOOL) hasMessage {
- return !!hasMessage_;
-}
-- (void) setHasMessage:(BOOL) value_ {
- hasMessage_ = !!value_;
-}
-@synthesize message;
-- (BOOL) hasBody {
- return !!hasBody_;
-}
-- (void) setHasBody:(BOOL) value_ {
- hasBody_ = !!value_;
-}
-@synthesize body;
-- (id) init {
- if ((self = [super init])) {
- self.id = 0L;
- self.status = 0;
- self.message = @"";
- self.body = [NSData data];
- }
- return self;
-}
-static WebSocketResponseMessage* defaultWebSocketResponseMessageInstance = nil;
-+ (void) initialize {
- if (self == [WebSocketResponseMessage class]) {
- defaultWebSocketResponseMessageInstance = [[WebSocketResponseMessage alloc] init];
- }
-}
-+ (WebSocketResponseMessage*) defaultInstance {
- return defaultWebSocketResponseMessageInstance;
-}
-- (WebSocketResponseMessage*) defaultInstance {
- return defaultWebSocketResponseMessageInstance;
-}
-- (BOOL) isInitialized {
- return YES;
-}
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
- if (self.hasId) {
- [output writeUInt64:1 value:self.id];
- }
- if (self.hasStatus) {
- [output writeUInt32:2 value:self.status];
- }
- if (self.hasMessage) {
- [output writeString:3 value:self.message];
- }
- if (self.hasBody) {
- [output writeData:4 value:self.body];
- }
- [self.unknownFields writeToCodedOutputStream:output];
-}
-- (SInt32) serializedSize {
- __block SInt32 size_ = memoizedSerializedSize;
- if (size_ != -1) {
- return size_;
- }
-
- size_ = 0;
- if (self.hasId) {
- size_ += computeUInt64Size(1, self.id);
- }
- if (self.hasStatus) {
- size_ += computeUInt32Size(2, self.status);
- }
- if (self.hasMessage) {
- size_ += computeStringSize(3, self.message);
- }
- if (self.hasBody) {
- size_ += computeDataSize(4, self.body);
- }
- size_ += self.unknownFields.serializedSize;
- memoizedSerializedSize = size_;
- return size_;
-}
-+ (WebSocketResponseMessage*) parseFromData:(NSData*) data {
- return (WebSocketResponseMessage*)[[[WebSocketResponseMessage builder] mergeFromData:data] build];
-}
-+ (WebSocketResponseMessage*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (WebSocketResponseMessage*)[[[WebSocketResponseMessage builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
-}
-+ (WebSocketResponseMessage*) parseFromInputStream:(NSInputStream*) input {
- return (WebSocketResponseMessage*)[[[WebSocketResponseMessage builder] mergeFromInputStream:input] build];
-}
-+ (WebSocketResponseMessage*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (WebSocketResponseMessage*)[[[WebSocketResponseMessage builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (WebSocketResponseMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input {
- return (WebSocketResponseMessage*)[[[WebSocketResponseMessage builder] mergeFromCodedInputStream:input] build];
-}
-+ (WebSocketResponseMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (WebSocketResponseMessage*)[[[WebSocketResponseMessage builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (WebSocketResponseMessageBuilder*) builder {
- return [[WebSocketResponseMessageBuilder alloc] init];
-}
-+ (WebSocketResponseMessageBuilder*) builderWithPrototype:(WebSocketResponseMessage*) prototype {
- return [[WebSocketResponseMessage builder] mergeFrom:prototype];
-}
-- (WebSocketResponseMessageBuilder*) builder {
- return [WebSocketResponseMessage builder];
-}
-- (WebSocketResponseMessageBuilder*) toBuilder {
- return [WebSocketResponseMessage builderWithPrototype:self];
-}
-- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
- if (self.hasId) {
- [output appendFormat:@"%@%@: %@\n", indent, @"id", [NSNumber numberWithLongLong:self.id]];
- }
- if (self.hasStatus) {
- [output appendFormat:@"%@%@: %@\n", indent, @"status", [NSNumber numberWithInteger:self.status]];
- }
- if (self.hasMessage) {
- [output appendFormat:@"%@%@: %@\n", indent, @"message", self.message];
- }
- if (self.hasBody) {
- [output appendFormat:@"%@%@: %@\n", indent, @"body", self.body];
- }
- [self.unknownFields writeDescriptionTo:output withIndent:indent];
-}
-- (BOOL) isEqual:(id)other {
- if (other == self) {
- return YES;
- }
- if (![other isKindOfClass:[WebSocketResponseMessage class]]) {
- return NO;
- }
- WebSocketResponseMessage *otherMessage = other;
- return
- self.hasId == otherMessage.hasId &&
- (!self.hasId || self.id == otherMessage.id) &&
- self.hasStatus == otherMessage.hasStatus &&
- (!self.hasStatus || self.status == otherMessage.status) &&
- self.hasMessage == otherMessage.hasMessage &&
- (!self.hasMessage || [self.message isEqual:otherMessage.message]) &&
- self.hasBody == otherMessage.hasBody &&
- (!self.hasBody || [self.body isEqual:otherMessage.body]) &&
- (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
-}
-- (NSUInteger) hash {
- __block NSUInteger hashCode = 7;
- if (self.hasId) {
- hashCode = hashCode * 31 + [[NSNumber numberWithLongLong:self.id] hash];
- }
- if (self.hasStatus) {
- hashCode = hashCode * 31 + [[NSNumber numberWithInteger:self.status] hash];
- }
- if (self.hasMessage) {
- hashCode = hashCode * 31 + [self.message hash];
- }
- if (self.hasBody) {
- hashCode = hashCode * 31 + [self.body hash];
- }
- hashCode = hashCode * 31 + [self.unknownFields hash];
- return hashCode;
-}
-@end
-
-@interface WebSocketResponseMessageBuilder()
-@property (strong) WebSocketResponseMessage* result;
-@end
-
-@implementation WebSocketResponseMessageBuilder
-@synthesize result;
-- (id) init {
- if ((self = [super init])) {
- self.result = [[WebSocketResponseMessage alloc] init];
- }
- return self;
-}
-- (PBGeneratedMessage*) internalGetResult {
- return result;
-}
-- (WebSocketResponseMessageBuilder*) clear {
- self.result = [[WebSocketResponseMessage alloc] init];
- return self;
-}
-- (WebSocketResponseMessageBuilder*) clone {
- return [WebSocketResponseMessage builderWithPrototype:result];
-}
-- (WebSocketResponseMessage*) defaultInstance {
- return [WebSocketResponseMessage defaultInstance];
-}
-- (WebSocketResponseMessage*) build {
- [self checkInitialized];
- return [self buildPartial];
-}
-- (WebSocketResponseMessage*) buildPartial {
- WebSocketResponseMessage* returnMe = result;
- self.result = nil;
- return returnMe;
-}
-- (WebSocketResponseMessageBuilder*) mergeFrom:(WebSocketResponseMessage*) other {
- if (other == [WebSocketResponseMessage defaultInstance]) {
- return self;
- }
- if (other.hasId) {
- [self setId:other.id];
- }
- if (other.hasStatus) {
- [self setStatus:other.status];
- }
- if (other.hasMessage) {
- [self setMessage:other.message];
- }
- if (other.hasBody) {
- [self setBody:other.body];
- }
- [self mergeUnknownFields:other.unknownFields];
- return self;
-}
-- (WebSocketResponseMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
- return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
-}
-- (WebSocketResponseMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
- while (YES) {
- SInt32 tag = [input readTag];
- switch (tag) {
- case 0:
- [self setUnknownFields:[unknownFields build]];
- return self;
- default: {
- if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
- [self setUnknownFields:[unknownFields build]];
- return self;
- }
- break;
- }
- case 8: {
- [self setId:[input readUInt64]];
- break;
- }
- case 16: {
- [self setStatus:[input readUInt32]];
- break;
- }
- case 26: {
- [self setMessage:[input readString]];
- break;
- }
- case 34: {
- [self setBody:[input readData]];
- break;
- }
- }
- }
-}
-- (BOOL) hasId {
- return result.hasId;
-}
-- (UInt64) id {
- return result.id;
-}
-- (WebSocketResponseMessageBuilder*) setId:(UInt64) value {
- result.hasId = YES;
- result.id = value;
- return self;
-}
-- (WebSocketResponseMessageBuilder*) clearId {
- result.hasId = NO;
- result.id = 0L;
- return self;
-}
-- (BOOL) hasStatus {
- return result.hasStatus;
-}
-- (UInt32) status {
- return result.status;
-}
-- (WebSocketResponseMessageBuilder*) setStatus:(UInt32) value {
- result.hasStatus = YES;
- result.status = value;
- return self;
-}
-- (WebSocketResponseMessageBuilder*) clearStatus {
- result.hasStatus = NO;
- result.status = 0;
- return self;
-}
-- (BOOL) hasMessage {
- return result.hasMessage;
-}
-- (NSString*) message {
- return result.message;
-}
-- (WebSocketResponseMessageBuilder*) setMessage:(NSString*) value {
- result.hasMessage = YES;
- result.message = value;
- return self;
-}
-- (WebSocketResponseMessageBuilder*) clearMessage {
- result.hasMessage = NO;
- result.message = @"";
- return self;
-}
-- (BOOL) hasBody {
- return result.hasBody;
-}
-- (NSData*) body {
- return result.body;
-}
-- (WebSocketResponseMessageBuilder*) setBody:(NSData*) value {
- result.hasBody = YES;
- result.body = value;
- return self;
-}
-- (WebSocketResponseMessageBuilder*) clearBody {
- result.hasBody = NO;
- result.body = [NSData data];
- return self;
-}
-@end
-
-@interface WebSocketMessage ()
-@property WebSocketMessageType type;
-@property (strong) WebSocketRequestMessage* request;
-@property (strong) WebSocketResponseMessage* response;
-@end
-
-@implementation WebSocketMessage
-
-- (BOOL) hasType {
- return !!hasType_;
-}
-- (void) setHasType:(BOOL) value_ {
- hasType_ = !!value_;
-}
-@synthesize type;
-- (BOOL) hasRequest {
- return !!hasRequest_;
-}
-- (void) setHasRequest:(BOOL) value_ {
- hasRequest_ = !!value_;
-}
-@synthesize request;
-- (BOOL) hasResponse {
- return !!hasResponse_;
-}
-- (void) setHasResponse:(BOOL) value_ {
- hasResponse_ = !!value_;
-}
-@synthesize response;
-- (id) init {
- if ((self = [super init])) {
- self.type = WebSocketMessageTypeUnknown;
- self.request = [WebSocketRequestMessage defaultInstance];
- self.response = [WebSocketResponseMessage defaultInstance];
- }
- return self;
-}
-static WebSocketMessage* defaultWebSocketMessageInstance = nil;
-+ (void) initialize {
- if (self == [WebSocketMessage class]) {
- defaultWebSocketMessageInstance = [[WebSocketMessage alloc] init];
- }
-}
-+ (WebSocketMessage*) defaultInstance {
- return defaultWebSocketMessageInstance;
-}
-- (WebSocketMessage*) defaultInstance {
- return defaultWebSocketMessageInstance;
-}
-- (BOOL) isInitialized {
- return YES;
-}
-- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
- if (self.hasType) {
- [output writeEnum:1 value:self.type];
- }
- if (self.hasRequest) {
- [output writeMessage:2 value:self.request];
- }
- if (self.hasResponse) {
- [output writeMessage:3 value:self.response];
- }
- [self.unknownFields writeToCodedOutputStream:output];
-}
-- (SInt32) serializedSize {
- __block SInt32 size_ = memoizedSerializedSize;
- if (size_ != -1) {
- return size_;
- }
-
- size_ = 0;
- if (self.hasType) {
- size_ += computeEnumSize(1, self.type);
- }
- if (self.hasRequest) {
- size_ += computeMessageSize(2, self.request);
- }
- if (self.hasResponse) {
- size_ += computeMessageSize(3, self.response);
- }
- size_ += self.unknownFields.serializedSize;
- memoizedSerializedSize = size_;
- return size_;
-}
-+ (WebSocketMessage*) parseFromData:(NSData*) data {
- return (WebSocketMessage*)[[[WebSocketMessage builder] mergeFromData:data] build];
-}
-+ (WebSocketMessage*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (WebSocketMessage*)[[[WebSocketMessage builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
-}
-+ (WebSocketMessage*) parseFromInputStream:(NSInputStream*) input {
- return (WebSocketMessage*)[[[WebSocketMessage builder] mergeFromInputStream:input] build];
-}
-+ (WebSocketMessage*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (WebSocketMessage*)[[[WebSocketMessage builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (WebSocketMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input {
- return (WebSocketMessage*)[[[WebSocketMessage builder] mergeFromCodedInputStream:input] build];
-}
-+ (WebSocketMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- return (WebSocketMessage*)[[[WebSocketMessage builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (WebSocketMessageBuilder*) builder {
- return [[WebSocketMessageBuilder alloc] init];
-}
-+ (WebSocketMessageBuilder*) builderWithPrototype:(WebSocketMessage*) prototype {
- return [[WebSocketMessage builder] mergeFrom:prototype];
-}
-- (WebSocketMessageBuilder*) builder {
- return [WebSocketMessage builder];
-}
-- (WebSocketMessageBuilder*) toBuilder {
- return [WebSocketMessage builderWithPrototype:self];
-}
-- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
- if (self.hasType) {
- [output appendFormat:@"%@%@: %d\n", indent, @"type", self.type];
- }
- if (self.hasRequest) {
- [output appendFormat:@"%@%@ {\n", indent, @"request"];
- [self.request writeDescriptionTo:output
- withIndent:[NSString stringWithFormat:@"%@ ", indent]];
- [output appendFormat:@"%@}\n", indent];
- }
- if (self.hasResponse) {
- [output appendFormat:@"%@%@ {\n", indent, @"response"];
- [self.response writeDescriptionTo:output
- withIndent:[NSString stringWithFormat:@"%@ ", indent]];
- [output appendFormat:@"%@}\n", indent];
- }
- [self.unknownFields writeDescriptionTo:output withIndent:indent];
-}
-- (BOOL) isEqual:(id)other {
- if (other == self) {
- return YES;
- }
- if (![other isKindOfClass:[WebSocketMessage class]]) {
- return NO;
- }
- WebSocketMessage *otherMessage = other;
- return
- self.hasType == otherMessage.hasType &&
- (!self.hasType || self.type == otherMessage.type) &&
- self.hasRequest == otherMessage.hasRequest &&
- (!self.hasRequest || [self.request isEqual:otherMessage.request]) &&
- self.hasResponse == otherMessage.hasResponse &&
- (!self.hasResponse || [self.response isEqual:otherMessage.response]) &&
- (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
-}
-- (NSUInteger) hash {
- __block NSUInteger hashCode = 7;
- if (self.hasType) {
- hashCode = hashCode * 31 + self.type;
- }
- if (self.hasRequest) {
- hashCode = hashCode * 31 + [self.request hash];
- }
- if (self.hasResponse) {
- hashCode = hashCode * 31 + [self.response hash];
- }
- hashCode = hashCode * 31 + [self.unknownFields hash];
- return hashCode;
-}
-@end
-
-BOOL WebSocketMessageTypeIsValidValue(WebSocketMessageType value) {
- switch (value) {
- case WebSocketMessageTypeUnknown:
- case WebSocketMessageTypeRequest:
- case WebSocketMessageTypeResponse:
- return YES;
- default:
- return NO;
- }
-}
-@interface WebSocketMessageBuilder()
-@property (strong) WebSocketMessage* result;
-@end
-
-@implementation WebSocketMessageBuilder
-@synthesize result;
-- (id) init {
- if ((self = [super init])) {
- self.result = [[WebSocketMessage alloc] init];
- }
- return self;
-}
-- (PBGeneratedMessage*) internalGetResult {
- return result;
-}
-- (WebSocketMessageBuilder*) clear {
- self.result = [[WebSocketMessage alloc] init];
- return self;
-}
-- (WebSocketMessageBuilder*) clone {
- return [WebSocketMessage builderWithPrototype:result];
-}
-- (WebSocketMessage*) defaultInstance {
- return [WebSocketMessage defaultInstance];
-}
-- (WebSocketMessage*) build {
- [self checkInitialized];
- return [self buildPartial];
-}
-- (WebSocketMessage*) buildPartial {
- WebSocketMessage* returnMe = result;
- self.result = nil;
- return returnMe;
-}
-- (WebSocketMessageBuilder*) mergeFrom:(WebSocketMessage*) other {
- if (other == [WebSocketMessage defaultInstance]) {
- return self;
- }
- if (other.hasType) {
- [self setType:other.type];
- }
- if (other.hasRequest) {
- [self mergeRequest:other.request];
- }
- if (other.hasResponse) {
- [self mergeResponse:other.response];
- }
- [self mergeUnknownFields:other.unknownFields];
- return self;
-}
-- (WebSocketMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
- return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
-}
-- (WebSocketMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
- PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
- while (YES) {
- SInt32 tag = [input readTag];
- switch (tag) {
- case 0:
- [self setUnknownFields:[unknownFields build]];
- return self;
- default: {
- if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
- [self setUnknownFields:[unknownFields build]];
- return self;
- }
- break;
- }
- case 8: {
- WebSocketMessageType value = (WebSocketMessageType)[input readEnum];
- if (WebSocketMessageTypeIsValidValue(value)) {
- [self setType:value];
- } else {
- [unknownFields mergeVarintField:1 value:value];
- }
- break;
- }
- case 18: {
- WebSocketRequestMessageBuilder* subBuilder = [WebSocketRequestMessage builder];
- if (self.hasRequest) {
- [subBuilder mergeFrom:self.request];
- }
- [input readMessage:subBuilder extensionRegistry:extensionRegistry];
- [self setRequest:[subBuilder buildPartial]];
- break;
- }
- case 26: {
- WebSocketResponseMessageBuilder* subBuilder = [WebSocketResponseMessage builder];
- if (self.hasResponse) {
- [subBuilder mergeFrom:self.response];
- }
- [input readMessage:subBuilder extensionRegistry:extensionRegistry];
- [self setResponse:[subBuilder buildPartial]];
- break;
- }
- }
- }
-}
-- (BOOL) hasType {
- return result.hasType;
-}
-- (WebSocketMessageType) type {
- return result.type;
-}
-- (WebSocketMessageBuilder*) setType:(WebSocketMessageType) value {
- result.hasType = YES;
- result.type = value;
- return self;
-}
-- (WebSocketMessageBuilder*) clearType {
- result.hasType = NO;
- result.type = WebSocketMessageTypeUnknown;
- return self;
-}
-- (BOOL) hasRequest {
- return result.hasRequest;
-}
-- (WebSocketRequestMessage*) request {
- return result.request;
-}
-- (WebSocketMessageBuilder*) setRequest:(WebSocketRequestMessage*) value {
- result.hasRequest = YES;
- result.request = value;
- return self;
-}
-- (WebSocketMessageBuilder*) setRequestBuilder:(WebSocketRequestMessageBuilder*) builderForValue {
- return [self setRequest:[builderForValue build]];
-}
-- (WebSocketMessageBuilder*) mergeRequest:(WebSocketRequestMessage*) value {
- if (result.hasRequest &&
- result.request != [WebSocketRequestMessage defaultInstance]) {
- result.request =
- [[[WebSocketRequestMessage builderWithPrototype:result.request] mergeFrom:value] buildPartial];
- } else {
- result.request = value;
- }
- result.hasRequest = YES;
- return self;
-}
-- (WebSocketMessageBuilder*) clearRequest {
- result.hasRequest = NO;
- result.request = [WebSocketRequestMessage defaultInstance];
- return self;
-}
-- (BOOL) hasResponse {
- return result.hasResponse;
-}
-- (WebSocketResponseMessage*) response {
- return result.response;
-}
-- (WebSocketMessageBuilder*) setResponse:(WebSocketResponseMessage*) value {
- result.hasResponse = YES;
- result.response = value;
- return self;
-}
-- (WebSocketMessageBuilder*) setResponseBuilder:(WebSocketResponseMessageBuilder*) builderForValue {
- return [self setResponse:[builderForValue build]];
-}
-- (WebSocketMessageBuilder*) mergeResponse:(WebSocketResponseMessage*) value {
- if (result.hasResponse &&
- result.response != [WebSocketResponseMessage defaultInstance]) {
- result.response =
- [[[WebSocketResponseMessage builderWithPrototype:result.response] mergeFrom:value] buildPartial];
- } else {
- result.response = value;
- }
- result.hasResponse = YES;
- return self;
-}
-- (WebSocketMessageBuilder*) clearResponse {
- result.hasResponse = NO;
- result.response = [WebSocketResponseMessage defaultInstance];
- return self;
-}
-@end
-
-
-// @@protoc_insertion_point(global_scope)
diff --git a/protobuf/WebSocketResources.proto b/protobuf/WebSocketResources.proto
deleted file mode 100644
index 35943a7826..0000000000
--- a/protobuf/WebSocketResources.proto
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- * Copyright (C) 2014-2015 Open WhisperSystems
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see .
- */
-package textsecure;
-
-option java_package = "org.whispersystems.textsecure.internal.websocket";
-option java_outer_classname = "WebSocketProtos";
-
-message WebSocketRequestMessage {
- optional string verb = 1;
- optional string path = 2;
- optional bytes body = 3;
- optional uint64 id = 4;
-}
-
-message WebSocketResponseMessage {
- optional uint64 id = 1;
- optional uint32 status = 2;
- optional string message = 3;
- optional bytes body = 4;
-}
-
-message WebSocketMessage {
- enum Type {
- UNKNOWN = 0;
- REQUEST = 1;
- RESPONSE = 2;
- }
-
- optional Type type = 1;
- optional WebSocketRequestMessage request = 2;
- optional WebSocketResponseMessage response = 3;
-}
\ No newline at end of file
diff --git a/src/Contacts/TSThread.h b/src/Contacts/TSThread.h
index c9c97cf57c..4d5e8fa775 100644
--- a/src/Contacts/TSThread.h
+++ b/src/Contacts/TSThread.h
@@ -5,6 +5,7 @@
#import
@class TSInteraction;
+@class TSInvalidIdentityKeyReceivingErrorMessage;
/**
* TSThread is the superclass of TSContactThread and TSGroupThread
@@ -42,6 +43,11 @@
*/
- (NSUInteger)numberOfInteractions;
+/**
+ * Get all messages in the thread we weren't able to decrypt
+ */
+- (NSArray *)receivedMessagesForInvalidKey:(NSData *)key;
+
/**
* Returns whether or not the thread has unread messages.
*
diff --git a/src/Contacts/TSThread.m b/src/Contacts/TSThread.m
index 0e0960d529..dc246b987a 100644
--- a/src/Contacts/TSThread.m
+++ b/src/Contacts/TSThread.m
@@ -5,6 +5,7 @@
#import "TSDatabaseView.h"
#import "TSIncomingMessage.h"
#import "TSInteraction.h"
+#import "TSInvalidIdentityKeyReceivingErrorMessage.h"
#import "TSOutgoingMessage.h"
#import "TSStorageManager.h"
@@ -105,6 +106,37 @@
[interactionsByThread enumerateRowsInGroup:self.uniqueId usingBlock:interactionBlock];
}
+/**
+ * Enumerates all the threads interactions. Note this will explode if you try to create a transaction in the block.
+ * If you need a transaction, use the sister method: `enumerateInteractionsWithTransaction:usingBlock`
+ */
+- (void)enumerateInteractionsUsingBlock:(void (^)(TSInteraction *interaction))block
+{
+ [self.dbConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
+ [self enumerateInteractionsWithTransaction:transaction
+ usingBlock:^(
+ TSInteraction *interaction, YapDatabaseReadTransaction *transaction) {
+
+ block(interaction);
+ }];
+ }];
+}
+
+- (NSArray *)receivedMessagesForInvalidKey:(NSData *)key
+{
+ NSMutableArray *errorMessages = [NSMutableArray new];
+ [self enumerateInteractionsUsingBlock:^(TSInteraction *interaction) {
+ if ([interaction isKindOfClass:[TSInvalidIdentityKeyReceivingErrorMessage class]]) {
+ TSInvalidIdentityKeyReceivingErrorMessage *error = (TSInvalidIdentityKeyReceivingErrorMessage *)interaction;
+ if ([[error newIdentityKey] isEqualToData:key]) {
+ [errorMessages addObject:(TSInvalidIdentityKeyReceivingErrorMessage *)interaction];
+ }
+ }
+ }];
+
+ return [errorMessages copy];
+}
+
- (NSUInteger)numberOfInteractions
{
__block NSUInteger count;
diff --git a/src/Contacts/Threads/TSContactThread.h b/src/Contacts/Threads/TSContactThread.h
index aa93e011d4..bb78c08c93 100644
--- a/src/Contacts/Threads/TSContactThread.h
+++ b/src/Contacts/Threads/TSContactThread.h
@@ -11,15 +11,16 @@
#import "SignalRecipient.h"
#import "TSThread.h"
-@class IncomingPushMessageSignal;
+@class OWSSignalServiceProtosEnvelope;
@interface TSContactThread : TSThread
+ (instancetype)getOrCreateThreadWithContactId:(NSString *)contactId
transaction:(YapDatabaseReadWriteTransaction *)transaction;
+
+ (instancetype)getOrCreateThreadWithContactId:(NSString *)contactId
transaction:(YapDatabaseReadWriteTransaction *)transaction
- pushSignal:(IncomingPushMessageSignal *)pushSignal;
+ envelope:(OWSSignalServiceProtosEnvelope *)envelope;
- (NSString *)contactIdentifier;
diff --git a/src/Contacts/Threads/TSContactThread.m b/src/Contacts/Threads/TSContactThread.m
index 455ce8f6e3..80c7ba2c9d 100644
--- a/src/Contacts/Threads/TSContactThread.m
+++ b/src/Contacts/Threads/TSContactThread.m
@@ -3,7 +3,7 @@
#import "TSContactThread.h"
#import "ContactsUpdater.h"
-#import "IncomingPushMessageSignal.pb.h"
+#import "OWSSignalServiceProtos.pb.h"
#import "TextSecureKitEnv.h"
#import
@@ -21,12 +21,13 @@
+ (instancetype)getOrCreateThreadWithContactId:(NSString *)contactId
transaction:(YapDatabaseReadWriteTransaction *)transaction
- pushSignal:(IncomingPushMessageSignal *)pushSignal {
+ envelope:(OWSSignalServiceProtosEnvelope *)envelope
+{
SignalRecipient *recipient =
[SignalRecipient recipientWithTextSecureIdentifier:contactId withTransaction:transaction];
if (!recipient) {
- NSString *relay = pushSignal.hasRelay && ![pushSignal.relay isEqualToString:@""] ? pushSignal.relay : nil;
+ NSString *relay = envelope.hasRelay && ![envelope.relay isEqualToString:@""] ? envelope.relay : nil;
recipient = [[SignalRecipient alloc] initWithTextSecureIdentifier:contactId relay:relay supportsVoice:YES];
[[ContactsUpdater sharedUpdater] lookupIdentifier:contactId
diff --git a/src/Messages/IncomingPushMessageSignal.pb.h b/src/Messages/IncomingPushMessageSignal.pb.h
deleted file mode 100644
index e12275a95a..0000000000
--- a/src/Messages/IncomingPushMessageSignal.pb.h
+++ /dev/null
@@ -1,402 +0,0 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-
-#import
-
-// @@protoc_insertion_point(imports)
-
-@class IncomingPushMessageSignal;
-@class IncomingPushMessageSignalBuilder;
-@class PushMessageContent;
-@class PushMessageContentAttachmentPointer;
-@class PushMessageContentAttachmentPointerBuilder;
-@class PushMessageContentBuilder;
-@class PushMessageContentGroupContext;
-@class PushMessageContentGroupContextBuilder;
-#ifndef __has_feature
-#define __has_feature(x) 0 // Compatibility with non-clang compilers.
-#endif // __has_feature
-
-#ifndef NS_RETURNS_NOT_RETAINED
-#if __has_feature(attribute_ns_returns_not_retained)
-#define NS_RETURNS_NOT_RETAINED __attribute__((ns_returns_not_retained))
-#else
-#define NS_RETURNS_NOT_RETAINED
-#endif
-#endif
-
-typedef enum {
- IncomingPushMessageSignalTypeUnknown = 0,
- IncomingPushMessageSignalTypeCiphertext = 1,
- IncomingPushMessageSignalTypeKeyExchange = 2,
- IncomingPushMessageSignalTypePrekeyBundle = 3,
- IncomingPushMessageSignalTypePlaintext = 4,
- IncomingPushMessageSignalTypeReceipt = 5,
-} IncomingPushMessageSignalType;
-
-BOOL IncomingPushMessageSignalTypeIsValidValue(IncomingPushMessageSignalType value);
-
-typedef enum {
- PushMessageContentFlagsEndSession = 1,
-} PushMessageContentFlags;
-
-BOOL PushMessageContentFlagsIsValidValue(PushMessageContentFlags value);
-
-typedef enum {
- PushMessageContentGroupContextTypeUnknown = 0,
- PushMessageContentGroupContextTypeUpdate = 1,
- PushMessageContentGroupContextTypeDeliver = 2,
- PushMessageContentGroupContextTypeQuit = 3,
-} PushMessageContentGroupContextType;
-
-BOOL PushMessageContentGroupContextTypeIsValidValue(PushMessageContentGroupContextType value);
-
-
-@interface IncomingPushMessageSignalRoot : NSObject {
-}
-+ (PBExtensionRegistry *)extensionRegistry;
-+ (void)registerAllExtensions:(PBMutableExtensionRegistry *)registry;
-@end
-
-@interface IncomingPushMessageSignal : PBGeneratedMessage {
- @private
- BOOL hasTimestamp_ : 1;
- BOOL hasSource_ : 1;
- BOOL hasRelay_ : 1;
- BOOL hasMessage_ : 1;
- BOOL hasSourceDevice_ : 1;
- BOOL hasType_ : 1;
- UInt64 timestamp;
- NSString *source;
- NSString *relay;
- NSData *message;
- UInt32 sourceDevice;
- IncomingPushMessageSignalType type;
-}
-- (BOOL)hasType;
-- (BOOL)hasSource;
-- (BOOL)hasSourceDevice;
-- (BOOL)hasRelay;
-- (BOOL)hasTimestamp;
-- (BOOL)hasMessage;
-@property (readonly) IncomingPushMessageSignalType type;
-@property (readonly, strong) NSString *source;
-@property (readonly) UInt32 sourceDevice;
-@property (readonly, strong) NSString *relay;
-@property (readonly) UInt64 timestamp;
-@property (readonly, strong) NSData *message;
-
-+ (IncomingPushMessageSignal *)defaultInstance;
-- (IncomingPushMessageSignal *)defaultInstance;
-
-- (BOOL)isInitialized;
-- (void)writeToCodedOutputStream:(PBCodedOutputStream *)output;
-- (IncomingPushMessageSignalBuilder *)builder;
-+ (IncomingPushMessageSignalBuilder *)builder;
-+ (IncomingPushMessageSignalBuilder *)builderWithPrototype:(IncomingPushMessageSignal *)prototype;
-- (IncomingPushMessageSignalBuilder *)toBuilder;
-
-+ (IncomingPushMessageSignal *)parseFromData:(NSData *)data;
-+ (IncomingPushMessageSignal *)parseFromData:(NSData *)data extensionRegistry:(PBExtensionRegistry *)extensionRegistry;
-+ (IncomingPushMessageSignal *)parseFromInputStream:(NSInputStream *)input;
-+ (IncomingPushMessageSignal *)parseFromInputStream:(NSInputStream *)input
- extensionRegistry:(PBExtensionRegistry *)extensionRegistry;
-+ (IncomingPushMessageSignal *)parseFromCodedInputStream:(PBCodedInputStream *)input;
-+ (IncomingPushMessageSignal *)parseFromCodedInputStream:(PBCodedInputStream *)input
- extensionRegistry:(PBExtensionRegistry *)extensionRegistry;
-@end
-
-@interface IncomingPushMessageSignalBuilder : PBGeneratedMessageBuilder {
- @private
- IncomingPushMessageSignal *result;
-}
-
-- (IncomingPushMessageSignal *)defaultInstance;
-
-- (IncomingPushMessageSignalBuilder *)clear;
-- (IncomingPushMessageSignalBuilder *)clone;
-
-- (IncomingPushMessageSignal *)build;
-- (IncomingPushMessageSignal *)buildPartial;
-
-- (IncomingPushMessageSignalBuilder *)mergeFrom:(IncomingPushMessageSignal *)other;
-- (IncomingPushMessageSignalBuilder *)mergeFromCodedInputStream:(PBCodedInputStream *)input;
-- (IncomingPushMessageSignalBuilder *)mergeFromCodedInputStream:(PBCodedInputStream *)input
- extensionRegistry:(PBExtensionRegistry *)extensionRegistry;
-
-- (BOOL)hasType;
-- (IncomingPushMessageSignalType)type;
-- (IncomingPushMessageSignalBuilder *)setType:(IncomingPushMessageSignalType)value;
-- (IncomingPushMessageSignalBuilder *)clearType;
-
-- (BOOL)hasSource;
-- (NSString *)source;
-- (IncomingPushMessageSignalBuilder *)setSource:(NSString *)value;
-- (IncomingPushMessageSignalBuilder *)clearSource;
-
-- (BOOL)hasSourceDevice;
-- (UInt32)sourceDevice;
-- (IncomingPushMessageSignalBuilder *)setSourceDevice:(UInt32)value;
-- (IncomingPushMessageSignalBuilder *)clearSourceDevice;
-
-- (BOOL)hasRelay;
-- (NSString *)relay;
-- (IncomingPushMessageSignalBuilder *)setRelay:(NSString *)value;
-- (IncomingPushMessageSignalBuilder *)clearRelay;
-
-- (BOOL)hasTimestamp;
-- (UInt64)timestamp;
-- (IncomingPushMessageSignalBuilder *)setTimestamp:(UInt64)value;
-- (IncomingPushMessageSignalBuilder *)clearTimestamp;
-
-- (BOOL)hasMessage;
-- (NSData *)message;
-- (IncomingPushMessageSignalBuilder *)setMessage:(NSData *)value;
-- (IncomingPushMessageSignalBuilder *)clearMessage;
-@end
-
-@interface PushMessageContent : PBGeneratedMessage {
- @private
- BOOL hasBody_ : 1;
- BOOL hasGroup_ : 1;
- BOOL hasFlags_ : 1;
- NSString *body;
- PushMessageContentGroupContext *group;
- UInt32 flags;
- NSMutableArray *attachmentsArray;
-}
-- (BOOL)hasBody;
-- (BOOL)hasGroup;
-- (BOOL)hasFlags;
-@property (readonly, strong) NSString *body;
-@property (readonly, strong) NSArray *attachments;
-@property (readonly, strong) PushMessageContentGroupContext *group;
-@property (readonly) UInt32 flags;
-- (PushMessageContentAttachmentPointer *)attachmentsAtIndex:(NSUInteger)index;
-
-+ (PushMessageContent *)defaultInstance;
-- (PushMessageContent *)defaultInstance;
-
-- (BOOL)isInitialized;
-- (void)writeToCodedOutputStream:(PBCodedOutputStream *)output;
-- (PushMessageContentBuilder *)builder;
-+ (PushMessageContentBuilder *)builder;
-+ (PushMessageContentBuilder *)builderWithPrototype:(PushMessageContent *)prototype;
-- (PushMessageContentBuilder *)toBuilder;
-
-+ (PushMessageContent *)parseFromData:(NSData *)data;
-+ (PushMessageContent *)parseFromData:(NSData *)data extensionRegistry:(PBExtensionRegistry *)extensionRegistry;
-+ (PushMessageContent *)parseFromInputStream:(NSInputStream *)input;
-+ (PushMessageContent *)parseFromInputStream:(NSInputStream *)input
- extensionRegistry:(PBExtensionRegistry *)extensionRegistry;
-+ (PushMessageContent *)parseFromCodedInputStream:(PBCodedInputStream *)input;
-+ (PushMessageContent *)parseFromCodedInputStream:(PBCodedInputStream *)input
- extensionRegistry:(PBExtensionRegistry *)extensionRegistry;
-@end
-
-@interface PushMessageContentAttachmentPointer : PBGeneratedMessage {
- @private
- BOOL hasId_ : 1;
- BOOL hasContentType_ : 1;
- BOOL hasKey_ : 1;
- UInt64 id;
- NSString *contentType;
- NSData *key;
-}
-- (BOOL)hasId;
-- (BOOL)hasContentType;
-- (BOOL)hasKey;
-@property (readonly) UInt64 id;
-@property (readonly, strong) NSString *contentType;
-@property (readonly, strong) NSData *key;
-
-+ (PushMessageContentAttachmentPointer *)defaultInstance;
-- (PushMessageContentAttachmentPointer *)defaultInstance;
-
-- (BOOL)isInitialized;
-- (void)writeToCodedOutputStream:(PBCodedOutputStream *)output;
-- (PushMessageContentAttachmentPointerBuilder *)builder;
-+ (PushMessageContentAttachmentPointerBuilder *)builder;
-+ (PushMessageContentAttachmentPointerBuilder *)builderWithPrototype:(PushMessageContentAttachmentPointer *)prototype;
-- (PushMessageContentAttachmentPointerBuilder *)toBuilder;
-
-+ (PushMessageContentAttachmentPointer *)parseFromData:(NSData *)data;
-+ (PushMessageContentAttachmentPointer *)parseFromData:(NSData *)data
- extensionRegistry:(PBExtensionRegistry *)extensionRegistry;
-+ (PushMessageContentAttachmentPointer *)parseFromInputStream:(NSInputStream *)input;
-+ (PushMessageContentAttachmentPointer *)parseFromInputStream:(NSInputStream *)input
- extensionRegistry:(PBExtensionRegistry *)extensionRegistry;
-+ (PushMessageContentAttachmentPointer *)parseFromCodedInputStream:(PBCodedInputStream *)input;
-+ (PushMessageContentAttachmentPointer *)parseFromCodedInputStream:(PBCodedInputStream *)input
- extensionRegistry:(PBExtensionRegistry *)extensionRegistry;
-@end
-
-@interface PushMessageContentAttachmentPointerBuilder : PBGeneratedMessageBuilder {
- @private
- PushMessageContentAttachmentPointer *result;
-}
-
-- (PushMessageContentAttachmentPointer *)defaultInstance;
-
-- (PushMessageContentAttachmentPointerBuilder *)clear;
-- (PushMessageContentAttachmentPointerBuilder *)clone;
-
-- (PushMessageContentAttachmentPointer *)build;
-- (PushMessageContentAttachmentPointer *)buildPartial;
-
-- (PushMessageContentAttachmentPointerBuilder *)mergeFrom:(PushMessageContentAttachmentPointer *)other;
-- (PushMessageContentAttachmentPointerBuilder *)mergeFromCodedInputStream:(PBCodedInputStream *)input;
-- (PushMessageContentAttachmentPointerBuilder *)mergeFromCodedInputStream:(PBCodedInputStream *)input
- extensionRegistry:(PBExtensionRegistry *)extensionRegistry;
-
-- (BOOL)hasId;
-- (UInt64)id;
-- (PushMessageContentAttachmentPointerBuilder *)setId:(UInt64)value;
-- (PushMessageContentAttachmentPointerBuilder *)clearId;
-
-- (BOOL)hasContentType;
-- (NSString *)contentType;
-- (PushMessageContentAttachmentPointerBuilder *)setContentType:(NSString *)value;
-- (PushMessageContentAttachmentPointerBuilder *)clearContentType;
-
-- (BOOL)hasKey;
-- (NSData *)key;
-- (PushMessageContentAttachmentPointerBuilder *)setKey:(NSData *)value;
-- (PushMessageContentAttachmentPointerBuilder *)clearKey;
-@end
-
-@interface PushMessageContentGroupContext : PBGeneratedMessage {
- @private
- BOOL hasName_ : 1;
- BOOL hasAvatar_ : 1;
- BOOL hasId_ : 1;
- BOOL hasType_ : 1;
- NSString *name;
- PushMessageContentAttachmentPointer *avatar;
- NSData *id;
- PushMessageContentGroupContextType type;
- NSMutableArray *membersArray;
-}
-- (BOOL)hasId;
-- (BOOL)hasType;
-- (BOOL)hasName;
-- (BOOL)hasAvatar;
-@property (readonly, strong) NSData *id;
-@property (readonly) PushMessageContentGroupContextType type;
-@property (readonly, strong) NSString *name;
-@property (readonly, strong) PushMessageContentAttachmentPointer *avatar;
-- (NSArray *)members;
-- (NSString *)membersAtIndex:(NSUInteger)index;
-
-+ (PushMessageContentGroupContext *)defaultInstance;
-- (PushMessageContentGroupContext *)defaultInstance;
-
-- (BOOL)isInitialized;
-- (void)writeToCodedOutputStream:(PBCodedOutputStream *)output;
-- (PushMessageContentGroupContextBuilder *)builder;
-+ (PushMessageContentGroupContextBuilder *)builder;
-+ (PushMessageContentGroupContextBuilder *)builderWithPrototype:(PushMessageContentGroupContext *)prototype;
-- (PushMessageContentGroupContextBuilder *)toBuilder;
-
-+ (PushMessageContentGroupContext *)parseFromData:(NSData *)data;
-+ (PushMessageContentGroupContext *)parseFromData:(NSData *)data
- extensionRegistry:(PBExtensionRegistry *)extensionRegistry;
-+ (PushMessageContentGroupContext *)parseFromInputStream:(NSInputStream *)input;
-+ (PushMessageContentGroupContext *)parseFromInputStream:(NSInputStream *)input
- extensionRegistry:(PBExtensionRegistry *)extensionRegistry;
-+ (PushMessageContentGroupContext *)parseFromCodedInputStream:(PBCodedInputStream *)input;
-+ (PushMessageContentGroupContext *)parseFromCodedInputStream:(PBCodedInputStream *)input
- extensionRegistry:(PBExtensionRegistry *)extensionRegistry;
-@end
-
-@interface PushMessageContentGroupContextBuilder : PBGeneratedMessageBuilder {
- @private
- PushMessageContentGroupContext *result;
-}
-
-- (PushMessageContentGroupContext *)defaultInstance;
-
-- (PushMessageContentGroupContextBuilder *)clear;
-- (PushMessageContentGroupContextBuilder *)clone;
-
-- (PushMessageContentGroupContext *)build;
-- (PushMessageContentGroupContext *)buildPartial;
-
-- (PushMessageContentGroupContextBuilder *)mergeFrom:(PushMessageContentGroupContext *)other;
-- (PushMessageContentGroupContextBuilder *)mergeFromCodedInputStream:(PBCodedInputStream *)input;
-- (PushMessageContentGroupContextBuilder *)mergeFromCodedInputStream:(PBCodedInputStream *)input
- extensionRegistry:(PBExtensionRegistry *)extensionRegistry;
-
-- (BOOL)hasId;
-- (NSData *)id;
-- (PushMessageContentGroupContextBuilder *)setId:(NSData *)value;
-- (PushMessageContentGroupContextBuilder *)clearId;
-
-- (BOOL)hasType;
-- (PushMessageContentGroupContextType)type;
-- (PushMessageContentGroupContextBuilder *)setType:(PushMessageContentGroupContextType)value;
-- (PushMessageContentGroupContextBuilder *)clearType;
-
-- (BOOL)hasName;
-- (NSString *)name;
-- (PushMessageContentGroupContextBuilder *)setName:(NSString *)value;
-- (PushMessageContentGroupContextBuilder *)clearName;
-
-- (NSMutableArray *)members;
-- (NSString *)membersAtIndex:(NSUInteger)index;
-- (PushMessageContentGroupContextBuilder *)addMembers:(NSString *)value;
-- (PushMessageContentGroupContextBuilder *)setMembersArray:(NSArray *)array;
-- (PushMessageContentGroupContextBuilder *)clearMembers;
-
-- (BOOL)hasAvatar;
-- (PushMessageContentAttachmentPointer *)avatar;
-- (PushMessageContentGroupContextBuilder *)setAvatar:(PushMessageContentAttachmentPointer *)value;
-- (PushMessageContentGroupContextBuilder *)setAvatarBuilder:
- (PushMessageContentAttachmentPointerBuilder *)builderForValue;
-- (PushMessageContentGroupContextBuilder *)mergeAvatar:(PushMessageContentAttachmentPointer *)value;
-- (PushMessageContentGroupContextBuilder *)clearAvatar;
-@end
-
-@interface PushMessageContentBuilder : PBGeneratedMessageBuilder {
- @private
- PushMessageContent *result;
-}
-
-- (PushMessageContent *)defaultInstance;
-
-- (PushMessageContentBuilder *)clear;
-- (PushMessageContentBuilder *)clone;
-
-- (PushMessageContent *)build;
-- (PushMessageContent *)buildPartial;
-
-- (PushMessageContentBuilder *)mergeFrom:(PushMessageContent *)other;
-- (PushMessageContentBuilder *)mergeFromCodedInputStream:(PBCodedInputStream *)input;
-- (PushMessageContentBuilder *)mergeFromCodedInputStream:(PBCodedInputStream *)input
- extensionRegistry:(PBExtensionRegistry *)extensionRegistry;
-
-- (BOOL)hasBody;
-- (NSString *)body;
-- (PushMessageContentBuilder *)setBody:(NSString *)value;
-- (PushMessageContentBuilder *)clearBody;
-
-- (NSMutableArray *)attachments;
-- (PushMessageContentAttachmentPointer *)attachmentsAtIndex:(NSUInteger)index;
-- (PushMessageContentBuilder *)addAttachments:(PushMessageContentAttachmentPointer *)value;
-- (PushMessageContentBuilder *)setAttachmentsArray:(NSArray *)array;
-- (PushMessageContentBuilder *)clearAttachments;
-
-- (BOOL)hasGroup;
-- (PushMessageContentGroupContext *)group;
-- (PushMessageContentBuilder *)setGroup:(PushMessageContentGroupContext *)value;
-- (PushMessageContentBuilder *)setGroupBuilder:(PushMessageContentGroupContextBuilder *)builderForValue;
-- (PushMessageContentBuilder *)mergeGroup:(PushMessageContentGroupContext *)value;
-- (PushMessageContentBuilder *)clearGroup;
-
-- (BOOL)hasFlags;
-- (UInt32)flags;
-- (PushMessageContentBuilder *)setFlags:(UInt32)value;
-- (PushMessageContentBuilder *)clearFlags;
-@end
-
-
-// @@protoc_insertion_point(global_scope)
diff --git a/src/Messages/IncomingPushMessageSignal.pb.m b/src/Messages/IncomingPushMessageSignal.pb.m
deleted file mode 100644
index f2a674ab16..0000000000
--- a/src/Messages/IncomingPushMessageSignal.pb.m
+++ /dev/null
@@ -1,1616 +0,0 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-
-#import "IncomingPushMessageSignal.pb.h"
-// @@protoc_insertion_point(imports)
-
-@implementation IncomingPushMessageSignalRoot
-static PBExtensionRegistry *extensionRegistry = nil;
-+ (PBExtensionRegistry *)extensionRegistry {
- return extensionRegistry;
-}
-
-+ (void)initialize {
- if (self == [IncomingPushMessageSignalRoot class]) {
- PBMutableExtensionRegistry *registry = [PBMutableExtensionRegistry registry];
- [self registerAllExtensions:registry];
- extensionRegistry = registry;
- }
-}
-+ (void)registerAllExtensions:(PBMutableExtensionRegistry *)registry {
-}
-@end
-
-@interface IncomingPushMessageSignal ()
-@property IncomingPushMessageSignalType type;
-@property (strong) NSString *source;
-@property UInt32 sourceDevice;
-@property (strong) NSString *relay;
-@property UInt64 timestamp;
-@property (strong) NSData *message;
-@end
-
-@implementation IncomingPushMessageSignal
-
-- (BOOL)hasType {
- return !!hasType_;
-}
-- (void)setHasType:(BOOL)value_ {
- hasType_ = !!value_;
-}
-@synthesize type;
-- (BOOL)hasSource {
- return !!hasSource_;
-}
-- (void)setHasSource:(BOOL)value_ {
- hasSource_ = !!value_;
-}
-@synthesize source;
-- (BOOL)hasSourceDevice {
- return !!hasSourceDevice_;
-}
-- (void)setHasSourceDevice:(BOOL)value_ {
- hasSourceDevice_ = !!value_;
-}
-@synthesize sourceDevice;
-- (BOOL)hasRelay {
- return !!hasRelay_;
-}
-- (void)setHasRelay:(BOOL)value_ {
- hasRelay_ = !!value_;
-}
-@synthesize relay;
-- (BOOL)hasTimestamp {
- return !!hasTimestamp_;
-}
-- (void)setHasTimestamp:(BOOL)value_ {
- hasTimestamp_ = !!value_;
-}
-@synthesize timestamp;
-- (BOOL)hasMessage {
- return !!hasMessage_;
-}
-- (void)setHasMessage:(BOOL)value_ {
- hasMessage_ = !!value_;
-}
-@synthesize message;
-- (id)init {
- if ((self = [super init])) {
- self.type = IncomingPushMessageSignalTypeUnknown;
- self.source = @"";
- self.sourceDevice = 0;
- self.relay = @"";
- self.timestamp = 0L;
- self.message = [NSData data];
- }
- return self;
-}
-static IncomingPushMessageSignal *defaultIncomingPushMessageSignalInstance = nil;
-+ (void)initialize {
- if (self == [IncomingPushMessageSignal class]) {
- defaultIncomingPushMessageSignalInstance = [[IncomingPushMessageSignal alloc] init];
- }
-}
-+ (IncomingPushMessageSignal *)defaultInstance {
- return defaultIncomingPushMessageSignalInstance;
-}
-- (IncomingPushMessageSignal *)defaultInstance {
- return defaultIncomingPushMessageSignalInstance;
-}
-- (BOOL)isInitialized {
- return YES;
-}
-- (void)writeToCodedOutputStream:(PBCodedOutputStream *)output {
- if (self.hasType) {
- [output writeEnum:1 value:self.type];
- }
- if (self.hasSource) {
- [output writeString:2 value:self.source];
- }
- if (self.hasRelay) {
- [output writeString:3 value:self.relay];
- }
- if (self.hasTimestamp) {
- [output writeUInt64:5 value:self.timestamp];
- }
- if (self.hasMessage) {
- [output writeData:6 value:self.message];
- }
- if (self.hasSourceDevice) {
- [output writeUInt32:7 value:self.sourceDevice];
- }
- [self.unknownFields writeToCodedOutputStream:output];
-}
-- (SInt32)serializedSize {
- __block SInt32 size_ = memoizedSerializedSize;
- if (size_ != -1) {
- return size_;
- }
-
- size_ = 0;
- if (self.hasType) {
- size_ += computeEnumSize(1, self.type);
- }
- if (self.hasSource) {
- size_ += computeStringSize(2, self.source);
- }
- if (self.hasRelay) {
- size_ += computeStringSize(3, self.relay);
- }
- if (self.hasTimestamp) {
- size_ += computeUInt64Size(5, self.timestamp);
- }
- if (self.hasMessage) {
- size_ += computeDataSize(6, self.message);
- }
- if (self.hasSourceDevice) {
- size_ += computeUInt32Size(7, self.sourceDevice);
- }
- size_ += self.unknownFields.serializedSize;
- memoizedSerializedSize = size_;
- return size_;
-}
-+ (IncomingPushMessageSignal *)parseFromData:(NSData *)data {
- return (IncomingPushMessageSignal *)[[[IncomingPushMessageSignal builder] mergeFromData:data] build];
-}
-+ (IncomingPushMessageSignal *)parseFromData:(NSData *)data extensionRegistry:(PBExtensionRegistry *)extensionRegistry {
- return (IncomingPushMessageSignal *)[
- [[IncomingPushMessageSignal builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
-}
-+ (IncomingPushMessageSignal *)parseFromInputStream:(NSInputStream *)input {
- return (IncomingPushMessageSignal *)[[[IncomingPushMessageSignal builder] mergeFromInputStream:input] build];
-}
-+ (IncomingPushMessageSignal *)parseFromInputStream:(NSInputStream *)input
- extensionRegistry:(PBExtensionRegistry *)extensionRegistry {
- return (IncomingPushMessageSignal *)[
- [[IncomingPushMessageSignal builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (IncomingPushMessageSignal *)parseFromCodedInputStream:(PBCodedInputStream *)input {
- return (IncomingPushMessageSignal *)[[[IncomingPushMessageSignal builder] mergeFromCodedInputStream:input] build];
-}
-+ (IncomingPushMessageSignal *)parseFromCodedInputStream:(PBCodedInputStream *)input
- extensionRegistry:(PBExtensionRegistry *)extensionRegistry {
- return (IncomingPushMessageSignal *)[
- [[IncomingPushMessageSignal builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry]
- build];
-}
-+ (IncomingPushMessageSignalBuilder *)builder {
- return [[IncomingPushMessageSignalBuilder alloc] init];
-}
-+ (IncomingPushMessageSignalBuilder *)builderWithPrototype:(IncomingPushMessageSignal *)prototype {
- return [[IncomingPushMessageSignal builder] mergeFrom:prototype];
-}
-- (IncomingPushMessageSignalBuilder *)builder {
- return [IncomingPushMessageSignal builder];
-}
-- (IncomingPushMessageSignalBuilder *)toBuilder {
- return [IncomingPushMessageSignal builderWithPrototype:self];
-}
-- (void)writeDescriptionTo:(NSMutableString *)output withIndent:(NSString *)indent {
- if (self.hasType) {
- [output appendFormat:@"%@%@: %d\n", indent, @"type", self.type];
- }
- if (self.hasSource) {
- [output appendFormat:@"%@%@: %@\n", indent, @"source", self.source];
- }
- if (self.hasRelay) {
- [output appendFormat:@"%@%@: %@\n", indent, @"relay", self.relay];
- }
- if (self.hasTimestamp) {
- [output appendFormat:@"%@%@: %@\n", indent, @"timestamp", [NSNumber numberWithLongLong:self.timestamp]];
- }
- if (self.hasMessage) {
- [output appendFormat:@"%@%@: %@\n", indent, @"message", self.message];
- }
- if (self.hasSourceDevice) {
- [output appendFormat:@"%@%@: %@\n", indent, @"sourceDevice", [NSNumber numberWithInteger:self.sourceDevice]];
- }
- [self.unknownFields writeDescriptionTo:output withIndent:indent];
-}
-- (BOOL)isEqual:(id)other {
- if (other == self) {
- return YES;
- }
- if (![other isKindOfClass:[IncomingPushMessageSignal class]]) {
- return NO;
- }
- IncomingPushMessageSignal *otherMessage = other;
- return self.hasType == otherMessage.hasType && (!self.hasType || self.type == otherMessage.type) &&
- self.hasSource == otherMessage.hasSource && (!self.hasSource || [self.source isEqual:otherMessage.source]) &&
- self.hasRelay == otherMessage.hasRelay && (!self.hasRelay || [self.relay isEqual:otherMessage.relay]) &&
- self.hasTimestamp == otherMessage.hasTimestamp &&
- (!self.hasTimestamp || self.timestamp == otherMessage.timestamp) &&
- self.hasMessage == otherMessage.hasMessage &&
- (!self.hasMessage || [self.message isEqual:otherMessage.message]) &&
- self.hasSourceDevice == otherMessage.hasSourceDevice &&
- (!self.hasSourceDevice || self.sourceDevice == otherMessage.sourceDevice) &&
- (self.unknownFields == otherMessage.unknownFields ||
- (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
-}
-- (NSUInteger)hash {
- __block NSUInteger hashCode = 7;
- if (self.hasType) {
- hashCode = hashCode * 31 + self.type;
- }
- if (self.hasSource) {
- hashCode = hashCode * 31 + [self.source hash];
- }
- if (self.hasRelay) {
- hashCode = hashCode * 31 + [self.relay hash];
- }
- if (self.hasTimestamp) {
- hashCode = hashCode * 31 + [[NSNumber numberWithLongLong:self.timestamp] hash];
- }
- if (self.hasMessage) {
- hashCode = hashCode * 31 + [self.message hash];
- }
- if (self.hasSourceDevice) {
- hashCode = hashCode * 31 + [[NSNumber numberWithInteger:self.sourceDevice] hash];
- }
- hashCode = hashCode * 31 + [self.unknownFields hash];
- return hashCode;
-}
-@end
-
-BOOL IncomingPushMessageSignalTypeIsValidValue(IncomingPushMessageSignalType value) {
- switch (value) {
- case IncomingPushMessageSignalTypeUnknown:
- case IncomingPushMessageSignalTypeCiphertext:
- case IncomingPushMessageSignalTypeKeyExchange:
- case IncomingPushMessageSignalTypePrekeyBundle:
- case IncomingPushMessageSignalTypePlaintext:
- case IncomingPushMessageSignalTypeReceipt:
- return YES;
- default:
- return NO;
- }
-}
-@interface IncomingPushMessageSignalBuilder ()
-@property (strong) IncomingPushMessageSignal *result;
-@end
-
-@implementation IncomingPushMessageSignalBuilder
-@synthesize result;
-- (id)init {
- if ((self = [super init])) {
- self.result = [[IncomingPushMessageSignal alloc] init];
- }
- return self;
-}
-- (PBGeneratedMessage *)internalGetResult {
- return result;
-}
-- (IncomingPushMessageSignalBuilder *)clear {
- self.result = [[IncomingPushMessageSignal alloc] init];
- return self;
-}
-- (IncomingPushMessageSignalBuilder *)clone {
- return [IncomingPushMessageSignal builderWithPrototype:result];
-}
-- (IncomingPushMessageSignal *)defaultInstance {
- return [IncomingPushMessageSignal defaultInstance];
-}
-- (IncomingPushMessageSignal *)build {
- [self checkInitialized];
- return [self buildPartial];
-}
-- (IncomingPushMessageSignal *)buildPartial {
- IncomingPushMessageSignal *returnMe = result;
- self.result = nil;
- return returnMe;
-}
-- (IncomingPushMessageSignalBuilder *)mergeFrom:(IncomingPushMessageSignal *)other {
- if (other == [IncomingPushMessageSignal defaultInstance]) {
- return self;
- }
- if (other.hasType) {
- [self setType:other.type];
- }
- if (other.hasSource) {
- [self setSource:other.source];
- }
- if (other.hasSourceDevice) {
- [self setSourceDevice:other.sourceDevice];
- }
- if (other.hasRelay) {
- [self setRelay:other.relay];
- }
- if (other.hasTimestamp) {
- [self setTimestamp:other.timestamp];
- }
- if (other.hasMessage) {
- [self setMessage:other.message];
- }
- [self mergeUnknownFields:other.unknownFields];
- return self;
-}
-- (IncomingPushMessageSignalBuilder *)mergeFromCodedInputStream:(PBCodedInputStream *)input {
- return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
-}
-- (IncomingPushMessageSignalBuilder *)mergeFromCodedInputStream:(PBCodedInputStream *)input
- extensionRegistry:(PBExtensionRegistry *)extensionRegistry {
- PBUnknownFieldSetBuilder *unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
- while (YES) {
- SInt32 tag = [input readTag];
- switch (tag) {
- case 0:
- [self setUnknownFields:[unknownFields build]];
- return self;
- default: {
- if (![self parseUnknownField:input
- unknownFields:unknownFields
- extensionRegistry:extensionRegistry
- tag:tag]) {
- [self setUnknownFields:[unknownFields build]];
- return self;
- }
- break;
- }
- case 8: {
- IncomingPushMessageSignalType value = (IncomingPushMessageSignalType)[input readEnum];
- if (IncomingPushMessageSignalTypeIsValidValue(value)) {
- [self setType:value];
- } else {
- [unknownFields mergeVarintField:1 value:value];
- }
- break;
- }
- case 18: {
- [self setSource:[input readString]];
- break;
- }
- case 26: {
- [self setRelay:[input readString]];
- break;
- }
- case 40: {
- [self setTimestamp:[input readUInt64]];
- break;
- }
- case 50: {
- [self setMessage:[input readData]];
- break;
- }
- case 56: {
- [self setSourceDevice:[input readUInt32]];
- break;
- }
- }
- }
-}
-- (BOOL)hasType {
- return result.hasType;
-}
-- (IncomingPushMessageSignalType)type {
- return result.type;
-}
-- (IncomingPushMessageSignalBuilder *)setType:(IncomingPushMessageSignalType)value {
- result.hasType = YES;
- result.type = value;
- return self;
-}
-- (IncomingPushMessageSignalBuilder *)clearType {
- result.hasType = NO;
- result.type = IncomingPushMessageSignalTypeUnknown;
- return self;
-}
-- (BOOL)hasSource {
- return result.hasSource;
-}
-- (NSString *)source {
- return result.source;
-}
-- (IncomingPushMessageSignalBuilder *)setSource:(NSString *)value {
- result.hasSource = YES;
- result.source = value;
- return self;
-}
-- (IncomingPushMessageSignalBuilder *)clearSource {
- result.hasSource = NO;
- result.source = @"";
- return self;
-}
-- (BOOL)hasSourceDevice {
- return result.hasSourceDevice;
-}
-- (UInt32)sourceDevice {
- return result.sourceDevice;
-}
-- (IncomingPushMessageSignalBuilder *)setSourceDevice:(UInt32)value {
- result.hasSourceDevice = YES;
- result.sourceDevice = value;
- return self;
-}
-- (IncomingPushMessageSignalBuilder *)clearSourceDevice {
- result.hasSourceDevice = NO;
- result.sourceDevice = 0;
- return self;
-}
-- (BOOL)hasRelay {
- return result.hasRelay;
-}
-- (NSString *)relay {
- return result.relay;
-}
-- (IncomingPushMessageSignalBuilder *)setRelay:(NSString *)value {
- result.hasRelay = YES;
- result.relay = value;
- return self;
-}
-- (IncomingPushMessageSignalBuilder *)clearRelay {
- result.hasRelay = NO;
- result.relay = @"";
- return self;
-}
-- (BOOL)hasTimestamp {
- return result.hasTimestamp;
-}
-- (UInt64)timestamp {
- return result.timestamp;
-}
-- (IncomingPushMessageSignalBuilder *)setTimestamp:(UInt64)value {
- result.hasTimestamp = YES;
- result.timestamp = value;
- return self;
-}
-- (IncomingPushMessageSignalBuilder *)clearTimestamp {
- result.hasTimestamp = NO;
- result.timestamp = 0L;
- return self;
-}
-- (BOOL)hasMessage {
- return result.hasMessage;
-}
-- (NSData *)message {
- return result.message;
-}
-- (IncomingPushMessageSignalBuilder *)setMessage:(NSData *)value {
- result.hasMessage = YES;
- result.message = value;
- return self;
-}
-- (IncomingPushMessageSignalBuilder *)clearMessage {
- result.hasMessage = NO;
- result.message = [NSData data];
- return self;
-}
-@end
-
-@interface PushMessageContent ()
-@property (strong) NSString *body;
-@property (strong) NSMutableArray *attachmentsArray;
-@property (strong) PushMessageContentGroupContext *group;
-@property UInt32 flags;
-@end
-
-@implementation PushMessageContent
-
-- (BOOL)hasBody {
- return !!hasBody_;
-}
-- (void)setHasBody:(BOOL)value_ {
- hasBody_ = !!value_;
-}
-@synthesize body;
-@synthesize attachmentsArray;
-@dynamic attachments;
-- (BOOL)hasGroup {
- return !!hasGroup_;
-}
-- (void)setHasGroup:(BOOL)value_ {
- hasGroup_ = !!value_;
-}
-@synthesize group;
-- (BOOL)hasFlags {
- return !!hasFlags_;
-}
-- (void)setHasFlags:(BOOL)value_ {
- hasFlags_ = !!value_;
-}
-@synthesize flags;
-- (id)init {
- if ((self = [super init])) {
- self.body = @"";
- self.group = [PushMessageContentGroupContext defaultInstance];
- self.flags = 0;
- }
- return self;
-}
-static PushMessageContent *defaultPushMessageContentInstance = nil;
-+ (void)initialize {
- if (self == [PushMessageContent class]) {
- defaultPushMessageContentInstance = [[PushMessageContent alloc] init];
- }
-}
-+ (PushMessageContent *)defaultInstance {
- return defaultPushMessageContentInstance;
-}
-- (PushMessageContent *)defaultInstance {
- return defaultPushMessageContentInstance;
-}
-- (NSArray *)attachments {
- return attachmentsArray;
-}
-- (PushMessageContentAttachmentPointer *)attachmentsAtIndex:(NSUInteger)index {
- return [attachmentsArray objectAtIndex:index];
-}
-- (BOOL)isInitialized {
- return YES;
-}
-- (void)writeToCodedOutputStream:(PBCodedOutputStream *)output {
- if (self.hasBody) {
- [output writeString:1 value:self.body];
- }
- [self.attachmentsArray
- enumerateObjectsUsingBlock:^(PushMessageContentAttachmentPointer *element, NSUInteger idx, BOOL *stop) {
- [output writeMessage:2 value:element];
- }];
- if (self.hasGroup) {
- [output writeMessage:3 value:self.group];
- }
- if (self.hasFlags) {
- [output writeUInt32:4 value:self.flags];
- }
- [self.unknownFields writeToCodedOutputStream:output];
-}
-- (SInt32)serializedSize {
- __block SInt32 size_ = memoizedSerializedSize;
- if (size_ != -1) {
- return size_;
- }
-
- size_ = 0;
- if (self.hasBody) {
- size_ += computeStringSize(1, self.body);
- }
- [self.attachmentsArray
- enumerateObjectsUsingBlock:^(PushMessageContentAttachmentPointer *element, NSUInteger idx, BOOL *stop) {
- size_ += computeMessageSize(2, element);
- }];
- if (self.hasGroup) {
- size_ += computeMessageSize(3, self.group);
- }
- if (self.hasFlags) {
- size_ += computeUInt32Size(4, self.flags);
- }
- size_ += self.unknownFields.serializedSize;
- memoizedSerializedSize = size_;
- return size_;
-}
-+ (PushMessageContent *)parseFromData:(NSData *)data {
- return (PushMessageContent *)[[[PushMessageContent builder] mergeFromData:data] build];
-}
-+ (PushMessageContent *)parseFromData:(NSData *)data extensionRegistry:(PBExtensionRegistry *)extensionRegistry {
- return (PushMessageContent *)[[[PushMessageContent builder] mergeFromData:data extensionRegistry:extensionRegistry]
- build];
-}
-+ (PushMessageContent *)parseFromInputStream:(NSInputStream *)input {
- return (PushMessageContent *)[[[PushMessageContent builder] mergeFromInputStream:input] build];
-}
-+ (PushMessageContent *)parseFromInputStream:(NSInputStream *)input
- extensionRegistry:(PBExtensionRegistry *)extensionRegistry {
- return (PushMessageContent *)[
- [[PushMessageContent builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (PushMessageContent *)parseFromCodedInputStream:(PBCodedInputStream *)input {
- return (PushMessageContent *)[[[PushMessageContent builder] mergeFromCodedInputStream:input] build];
-}
-+ (PushMessageContent *)parseFromCodedInputStream:(PBCodedInputStream *)input
- extensionRegistry:(PBExtensionRegistry *)extensionRegistry {
- return (PushMessageContent *)[
- [[PushMessageContent builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
-}
-+ (PushMessageContentBuilder *)builder {
- return [[PushMessageContentBuilder alloc] init];
-}
-+ (PushMessageContentBuilder *)builderWithPrototype:(PushMessageContent *)prototype {
- return [[PushMessageContent builder] mergeFrom:prototype];
-}
-- (PushMessageContentBuilder *)builder {
- return [PushMessageContent builder];
-}
-- (PushMessageContentBuilder *)toBuilder {
- return [PushMessageContent builderWithPrototype:self];
-}
-- (void)writeDescriptionTo:(NSMutableString *)output withIndent:(NSString *)indent {
- if (self.hasBody) {
- [output appendFormat:@"%@%@: %@\n", indent, @"body", self.body];
- }
- [self.attachmentsArray
- enumerateObjectsUsingBlock:^(PushMessageContentAttachmentPointer *element, NSUInteger idx, BOOL *stop) {
- [output appendFormat:@"%@%@ {\n", indent, @"attachments"];
- [element writeDescriptionTo:output withIndent:[NSString stringWithFormat:@"%@ ", indent]];
- [output appendFormat:@"%@}\n", indent];
- }];
- if (self.hasGroup) {
- [output appendFormat:@"%@%@ {\n", indent, @"group"];
- [self.group writeDescriptionTo:output withIndent:[NSString stringWithFormat:@"%@ ", indent]];
- [output appendFormat:@"%@}\n", indent];
- }
- if (self.hasFlags) {
- [output appendFormat:@"%@%@: %@\n", indent, @"flags", [NSNumber numberWithInteger:self.flags]];
- }
- [self.unknownFields writeDescriptionTo:output withIndent:indent];
-}
-- (BOOL)isEqual:(id)other {
- if (other == self) {
- return YES;
- }
- if (![other isKindOfClass:[PushMessageContent class]]) {
- return NO;
- }
- PushMessageContent *otherMessage = other;
- return self.hasBody == otherMessage.hasBody && (!self.hasBody || [self.body isEqual:otherMessage.body]) &&
- [self.attachmentsArray isEqualToArray:otherMessage.attachmentsArray] &&
- self.hasGroup == otherMessage.hasGroup && (!self.hasGroup || [self.group isEqual:otherMessage.group]) &&
- self.hasFlags == otherMessage.hasFlags && (!self.hasFlags || self.flags == otherMessage.flags) &&
- (self.unknownFields == otherMessage.unknownFields ||
- (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
-}
-- (NSUInteger)hash {
- __block NSUInteger hashCode = 7;
- if (self.hasBody) {
- hashCode = hashCode * 31 + [self.body hash];
- }
- [self.attachmentsArray
- enumerateObjectsUsingBlock:^(PushMessageContentAttachmentPointer *element, NSUInteger idx, BOOL *stop) {
- hashCode = hashCode * 31 + [element hash];
- }];
- if (self.hasGroup) {
- hashCode = hashCode * 31 + [self.group hash];
- }
- if (self.hasFlags) {
- hashCode = hashCode * 31 + [[NSNumber numberWithInteger:self.flags] hash];
- }
- hashCode = hashCode * 31 + [self.unknownFields hash];
- return hashCode;
-}
-@end
-
-BOOL PushMessageContentFlagsIsValidValue(PushMessageContentFlags value) {
- switch (value) {
- case PushMessageContentFlagsEndSession:
- return YES;
- default:
- return NO;
- }
-}
-@interface PushMessageContentAttachmentPointer ()
-@property UInt64 id;
-@property (strong) NSString *contentType;
-@property (strong) NSData *key;
-@end
-
-@implementation PushMessageContentAttachmentPointer
-
-- (BOOL)hasId {
- return !!hasId_;
-}
-- (void)setHasId:(BOOL)value_ {
- hasId_ = !!value_;
-}
-@synthesize id;
-- (BOOL)hasContentType {
- return !!hasContentType_;
-}
-- (void)setHasContentType:(BOOL)value_ {
- hasContentType_ = !!value_;
-}
-@synthesize contentType;
-- (BOOL)hasKey {
- return !!hasKey_;
-}
-- (void)setHasKey:(BOOL)value_ {
- hasKey_ = !!value_;
-}
-@synthesize key;
-- (id)init {
- if ((self = [super init])) {
- self.id = 0L;
- self.contentType = @"";
- self.key = [NSData data];
- }
- return self;
-}
-static PushMessageContentAttachmentPointer *defaultPushMessageContentAttachmentPointerInstance = nil;
-+ (void)initialize {
- if (self == [PushMessageContentAttachmentPointer class]) {
- defaultPushMessageContentAttachmentPointerInstance = [[PushMessageContentAttachmentPointer alloc] init];
- }
-}
-+ (PushMessageContentAttachmentPointer *)defaultInstance {
- return defaultPushMessageContentAttachmentPointerInstance;
-}
-- (PushMessageContentAttachmentPointer *)defaultInstance {
- return defaultPushMessageContentAttachmentPointerInstance;
-}
-- (BOOL)isInitialized {
- return YES;
-}
-- (void)writeToCodedOutputStream:(PBCodedOutputStream *)output {
- if (self.hasId) {
- [output writeFixed64:1 value:self.id];
- }
- if (self.hasContentType) {
- [output writeString:2 value:self.contentType];
- }
- if (self.hasKey) {
- [output writeData:3 value:self.key];
- }
- [self.unknownFields writeToCodedOutputStream:output];
-}
-- (SInt32)serializedSize {
- __block SInt32 size_ = memoizedSerializedSize;
- if (size_ != -1) {
- return size_;
- }
-
- size_ = 0;
- if (self.hasId) {
- size_ += computeFixed64Size(1, self.id);
- }
- if (self.hasContentType) {
- size_ += computeStringSize(2, self.contentType);
- }
- if (self.hasKey) {
- size_ += computeDataSize(3, self.key);
- }
- size_ += self.unknownFields.serializedSize;
- memoizedSerializedSize = size_;
- return size_;
-}
-+ (PushMessageContentAttachmentPointer *)parseFromData:(NSData *)data {
- return (PushMessageContentAttachmentPointer *)[[[PushMessageContentAttachmentPointer builder] mergeFromData:data]
- build];
-}
-+ (PushMessageContentAttachmentPointer *)parseFromData:(NSData *)data
- extensionRegistry:(PBExtensionRegistry *)extensionRegistry {
- return (PushMessageContentAttachmentPointer *)[
- [[PushMessageContentAttachmentPointer builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
-}
-+ (PushMessageContentAttachmentPointer *)parseFromInputStream:(NSInputStream *)input {
- return (PushMessageContentAttachmentPointer *)[
- [[PushMessageContentAttachmentPointer builder] mergeFromInputStream:input] build];
-}
-+ (PushMessageContentAttachmentPointer *)parseFromInputStream:(NSInputStream *)input
- extensionRegistry:(PBExtensionRegistry *)extensionRegistry {
- return (PushMessageContentAttachmentPointer *)[
- [[PushMessageContentAttachmentPointer builder] mergeFromInputStream:input extensionRegistry:extensionRegistry]
- build];
-}
-+ (PushMessageContentAttachmentPointer *)parseFromCodedInputStream:(PBCodedInputStream *)input {
- return (PushMessageContentAttachmentPointer *)[
- [[PushMessageContentAttachmentPointer builder] mergeFromCodedInputStream:input] build];
-}
-+ (PushMessageContentAttachmentPointer *)parseFromCodedInputStream:(PBCodedInputStream *)input
- extensionRegistry:(PBExtensionRegistry *)extensionRegistry {
- return (PushMessageContentAttachmentPointer *)[[[PushMessageContentAttachmentPointer builder]
- mergeFromCodedInputStream:input
- extensionRegistry:extensionRegistry] build];
-}
-+ (PushMessageContentAttachmentPointerBuilder *)builder {
- return [[PushMessageContentAttachmentPointerBuilder alloc] init];
-}
-+ (PushMessageContentAttachmentPointerBuilder *)builderWithPrototype:(PushMessageContentAttachmentPointer *)prototype {
- return [[PushMessageContentAttachmentPointer builder] mergeFrom:prototype];
-}
-- (PushMessageContentAttachmentPointerBuilder *)builder {
- return [PushMessageContentAttachmentPointer builder];
-}
-- (PushMessageContentAttachmentPointerBuilder *)toBuilder {
- return [PushMessageContentAttachmentPointer builderWithPrototype:self];
-}
-- (void)writeDescriptionTo:(NSMutableString *)output withIndent:(NSString *)indent {
- if (self.hasId) {
- [output appendFormat:@"%@%@: %@\n", indent, @"id", [NSNumber numberWithLongLong:self.id]];
- }
- if (self.hasContentType) {
- [output appendFormat:@"%@%@: %@\n", indent, @"contentType", self.contentType];
- }
- if (self.hasKey) {
- [output appendFormat:@"%@%@: %@\n", indent, @"key", self.key];
- }
- [self.unknownFields writeDescriptionTo:output withIndent:indent];
-}
-- (BOOL)isEqual:(id)other {
- if (other == self) {
- return YES;
- }
- if (![other isKindOfClass:[PushMessageContentAttachmentPointer class]]) {
- return NO;
- }
- PushMessageContentAttachmentPointer *otherMessage = other;
- return self.hasId == otherMessage.hasId && (!self.hasId || self.id == otherMessage.id) &&
- self.hasContentType == otherMessage.hasContentType &&
- (!self.hasContentType || [self.contentType isEqual:otherMessage.contentType]) &&
- self.hasKey == otherMessage.hasKey && (!self.hasKey || [self.key isEqual:otherMessage.key]) &&
- (self.unknownFields == otherMessage.unknownFields ||
- (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
-}
-- (NSUInteger)hash {
- __block NSUInteger hashCode = 7;
- if (self.hasId) {
- hashCode = hashCode * 31 + [[NSNumber numberWithLongLong:self.id] hash];
- }
- if (self.hasContentType) {
- hashCode = hashCode * 31 + [self.contentType hash];
- }
- if (self.hasKey) {
- hashCode = hashCode * 31 + [self.key hash];
- }
- hashCode = hashCode * 31 + [self.unknownFields hash];
- return hashCode;
-}
-@end
-
-@interface PushMessageContentAttachmentPointerBuilder ()
-@property (strong) PushMessageContentAttachmentPointer *result;
-@end
-
-@implementation PushMessageContentAttachmentPointerBuilder
-@synthesize result;
-- (id)init {
- if ((self = [super init])) {
- self.result = [[PushMessageContentAttachmentPointer alloc] init];
- }
- return self;
-}
-- (PBGeneratedMessage *)internalGetResult {
- return result;
-}
-- (PushMessageContentAttachmentPointerBuilder *)clear {
- self.result = [[PushMessageContentAttachmentPointer alloc] init];
- return self;
-}
-- (PushMessageContentAttachmentPointerBuilder *)clone {
- return [PushMessageContentAttachmentPointer builderWithPrototype:result];
-}
-- (PushMessageContentAttachmentPointer *)defaultInstance {
- return [PushMessageContentAttachmentPointer defaultInstance];
-}
-- (PushMessageContentAttachmentPointer *)build {
- [self checkInitialized];
- return [self buildPartial];
-}
-- (PushMessageContentAttachmentPointer *)buildPartial {
- PushMessageContentAttachmentPointer *returnMe = result;
- self.result = nil;
- return returnMe;
-}
-- (PushMessageContentAttachmentPointerBuilder *)mergeFrom:(PushMessageContentAttachmentPointer *)other {
- if (other == [PushMessageContentAttachmentPointer defaultInstance]) {
- return self;
- }
- if (other.hasId) {
- [self setId:other.id];
- }
- if (other.hasContentType) {
- [self setContentType:other.contentType];
- }
- if (other.hasKey) {
- [self setKey:other.key];
- }
- [self mergeUnknownFields:other.unknownFields];
- return self;
-}
-- (PushMessageContentAttachmentPointerBuilder *)mergeFromCodedInputStream:(PBCodedInputStream *)input {
- return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
-}
-- (PushMessageContentAttachmentPointerBuilder *)mergeFromCodedInputStream:(PBCodedInputStream *)input
- extensionRegistry:(PBExtensionRegistry *)extensionRegistry {
- PBUnknownFieldSetBuilder *unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
- while (YES) {
- SInt32 tag = [input readTag];
- switch (tag) {
- case 0:
- [self setUnknownFields:[unknownFields build]];
- return self;
- default: {
- if (![self parseUnknownField:input
- unknownFields:unknownFields
- extensionRegistry:extensionRegistry
- tag:tag]) {
- [self setUnknownFields:[unknownFields build]];
- return self;
- }
- break;
- }
- case 9: {
- [self setId:[input readFixed64]];
- break;
- }
- case 18: {
- [self setContentType:[input readString]];
- break;
- }
- case 26: {
- [self setKey:[input readData]];
- break;
- }
- }
- }
-}
-- (BOOL)hasId {
- return result.hasId;
-}
-- (UInt64)id {
- return result.id;
-}
-- (PushMessageContentAttachmentPointerBuilder *)setId:(UInt64)value {
- result.hasId = YES;
- result.id = value;
- return self;
-}
-- (PushMessageContentAttachmentPointerBuilder *)clearId {
- result.hasId = NO;
- result.id = 0L;
- return self;
-}
-- (BOOL)hasContentType {
- return result.hasContentType;
-}
-- (NSString *)contentType {
- return result.contentType;
-}
-- (PushMessageContentAttachmentPointerBuilder *)setContentType:(NSString *)value {
- result.hasContentType = YES;
- result.contentType = value;
- return self;
-}
-- (PushMessageContentAttachmentPointerBuilder *)clearContentType {
- result.hasContentType = NO;
- result.contentType = @"";
- return self;
-}
-- (BOOL)hasKey {
- return result.hasKey;
-}
-- (NSData *)key {
- return result.key;
-}
-- (PushMessageContentAttachmentPointerBuilder *)setKey:(NSData *)value {
- result.hasKey = YES;
- result.key = value;
- return self;
-}
-- (PushMessageContentAttachmentPointerBuilder *)clearKey {
- result.hasKey = NO;
- result.key = [NSData data];
- return self;
-}
-@end
-
-@interface PushMessageContentGroupContext ()
-@property (strong) NSData *id;
-@property PushMessageContentGroupContextType type;
-@property (strong) NSString *name;
-@property (strong) NSMutableArray *membersArray;
-@property (strong) PushMessageContentAttachmentPointer *avatar;
-@end
-
-@implementation PushMessageContentGroupContext
-
-- (BOOL)hasId {
- return !!hasId_;
-}
-- (void)setHasId:(BOOL)value_ {
- hasId_ = !!value_;
-}
-@synthesize id;
-- (BOOL)hasType {
- return !!hasType_;
-}
-- (void)setHasType:(BOOL)value_ {
- hasType_ = !!value_;
-}
-@synthesize type;
-- (BOOL)hasName {
- return !!hasName_;
-}
-- (void)setHasName:(BOOL)value_ {
- hasName_ = !!value_;
-}
-@synthesize name;
-@synthesize membersArray;
-- (BOOL)hasAvatar {
- return !!hasAvatar_;
-}
-- (void)setHasAvatar:(BOOL)value_ {
- hasAvatar_ = !!value_;
-}
-@synthesize avatar;
-- (id)init {
- if ((self = [super init])) {
- self.id = [NSData data];
- self.type = PushMessageContentGroupContextTypeUnknown;
- self.name = @"";
- self.avatar = [PushMessageContentAttachmentPointer defaultInstance];
- }
- return self;
-}
-static PushMessageContentGroupContext *defaultPushMessageContentGroupContextInstance = nil;
-+ (void)initialize {
- if (self == [PushMessageContentGroupContext class]) {
- defaultPushMessageContentGroupContextInstance = [[PushMessageContentGroupContext alloc] init];
- }
-}
-+ (PushMessageContentGroupContext *)defaultInstance {
- return defaultPushMessageContentGroupContextInstance;
-}
-- (PushMessageContentGroupContext *)defaultInstance {
- return defaultPushMessageContentGroupContextInstance;
-}
-- (NSArray *)members {
- return membersArray;
-}
-- (NSString *)membersAtIndex:(NSUInteger)index {
- return [membersArray objectAtIndex:index];
-}
-- (BOOL)isInitialized {
- return YES;
-}
-- (void)writeToCodedOutputStream:(PBCodedOutputStream *)output {
- if (self.hasId) {
- [output writeData:1 value:self.id];
- }
- if (self.hasType) {
- [output writeEnum:2 value:self.type];
- }
- if (self.hasName) {
- [output writeString:3 value:self.name];
- }
- [self.membersArray enumerateObjectsUsingBlock:^(NSString *element, NSUInteger idx, BOOL *stop) {
- [output writeString:4 value:element];
- }];
- if (self.hasAvatar) {
- [output writeMessage:5 value:self.avatar];
- }
- [self.unknownFields writeToCodedOutputStream:output];
-}
-- (SInt32)serializedSize {
- __block SInt32 size_ = memoizedSerializedSize;
- if (size_ != -1) {
- return size_;
- }
-
- size_ = 0;
- if (self.hasId) {
- size_ += computeDataSize(1, self.id);
- }
- if (self.hasType) {
- size_ += computeEnumSize(2, self.type);
- }
- if (self.hasName) {
- size_ += computeStringSize(3, self.name);
- }
- {
- __block SInt32 dataSize = 0;
- const NSUInteger count = self.membersArray.count;
- [self.membersArray enumerateObjectsUsingBlock:^(NSString *element, NSUInteger idx, BOOL *stop) {
- dataSize += computeStringSizeNoTag(element);
- }];
- size_ += dataSize;
- size_ += (SInt32)(1 * count);
- }
- if (self.hasAvatar) {
- size_ += computeMessageSize(5, self.avatar);
- }
- size_ += self.unknownFields.serializedSize;
- memoizedSerializedSize = size_;
- return size_;
-}
-+ (PushMessageContentGroupContext *)parseFromData:(NSData *)data {
- return (PushMessageContentGroupContext *)[[[PushMessageContentGroupContext builder] mergeFromData:data] build];
-}
-+ (PushMessageContentGroupContext *)parseFromData:(NSData *)data
- extensionRegistry:(PBExtensionRegistry *)extensionRegistry {
- return (PushMessageContentGroupContext *)[
- [[PushMessageContentGroupContext builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
-}
-+ (PushMessageContentGroupContext *)parseFromInputStream:(NSInputStream *)input {
- return (PushMessageContentGroupContext *)[[[PushMessageContentGroupContext builder] mergeFromInputStream:input]
- build];
-}
-+ (PushMessageContentGroupContext *)parseFromInputStream:(NSInputStream *)input
- extensionRegistry:(PBExtensionRegistry *)extensionRegistry {
- return (PushMessageContentGroupContext *)[
- [[PushMessageContentGroupContext builder] mergeFromInputStream:input extensionRegistry:extensionRegistry]
- build];
-}
-+ (PushMessageContentGroupContext *)parseFromCodedInputStream:(PBCodedInputStream *)input {
- return (PushMessageContentGroupContext *)[[[PushMessageContentGroupContext builder] mergeFromCodedInputStream:input]
- build];
-}
-+ (PushMessageContentGroupContext *)parseFromCodedInputStream:(PBCodedInputStream *)input
- extensionRegistry:(PBExtensionRegistry *)extensionRegistry {
- return (PushMessageContentGroupContext *)[
- [[PushMessageContentGroupContext builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry]
- build];
-}
-+ (PushMessageContentGroupContextBuilder *)builder {
- return [[PushMessageContentGroupContextBuilder alloc] init];
-}
-+ (PushMessageContentGroupContextBuilder *)builderWithPrototype:(PushMessageContentGroupContext *)prototype {
- return [[PushMessageContentGroupContext builder] mergeFrom:prototype];
-}
-- (PushMessageContentGroupContextBuilder *)builder {
- return [PushMessageContentGroupContext builder];
-}
-- (PushMessageContentGroupContextBuilder *)toBuilder {
- return [PushMessageContentGroupContext builderWithPrototype:self];
-}
-- (void)writeDescriptionTo:(NSMutableString *)output withIndent:(NSString *)indent {
- if (self.hasId) {
- [output appendFormat:@"%@%@: %@\n", indent, @"id", self.id];
- }
- if (self.hasType) {
- [output appendFormat:@"%@%@: %d\n", indent, @"type", self.type];
- }
- if (self.hasName) {
- [output appendFormat:@"%@%@: %@\n", indent, @"name", self.name];
- }
- [self.membersArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
- [output appendFormat:@"%@%@: %@\n", indent, @"members", obj];
- }];
- if (self.hasAvatar) {
- [output appendFormat:@"%@%@ {\n", indent, @"avatar"];
- [self.avatar writeDescriptionTo:output withIndent:[NSString stringWithFormat:@"%@ ", indent]];
- [output appendFormat:@"%@}\n", indent];
- }
- [self.unknownFields writeDescriptionTo:output withIndent:indent];
-}
-- (BOOL)isEqual:(id)other {
- if (other == self) {
- return YES;
- }
- if (![other isKindOfClass:[PushMessageContentGroupContext class]]) {
- return NO;
- }
- PushMessageContentGroupContext *otherMessage = other;
- return self.hasId == otherMessage.hasId && (!self.hasId || [self.id isEqual:otherMessage.id]) &&
- self.hasType == otherMessage.hasType && (!self.hasType || self.type == otherMessage.type) &&
- self.hasName == otherMessage.hasName && (!self.hasName || [self.name isEqual:otherMessage.name]) &&
- [self.membersArray isEqualToArray:otherMessage.membersArray] && self.hasAvatar == otherMessage.hasAvatar &&
- (!self.hasAvatar || [self.avatar isEqual:otherMessage.avatar]) &&
- (self.unknownFields == otherMessage.unknownFields ||
- (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
-}
-- (NSUInteger)hash {
- __block NSUInteger hashCode = 7;
- if (self.hasId) {
- hashCode = hashCode * 31 + [self.id hash];
- }
- if (self.hasType) {
- hashCode = hashCode * 31 + self.type;
- }
- if (self.hasName) {
- hashCode = hashCode * 31 + [self.name hash];
- }
- [self.membersArray enumerateObjectsUsingBlock:^(id element, NSUInteger idx, BOOL *stop) {
- hashCode = hashCode * 31 + [element hash];
- }];
- if (self.hasAvatar) {
- hashCode = hashCode * 31 + [self.avatar hash];
- }
- hashCode = hashCode * 31 + [self.unknownFields hash];
- return hashCode;
-}
-@end
-
-BOOL PushMessageContentGroupContextTypeIsValidValue(PushMessageContentGroupContextType value) {
- switch (value) {
- case PushMessageContentGroupContextTypeUnknown:
- case PushMessageContentGroupContextTypeUpdate:
- case PushMessageContentGroupContextTypeDeliver:
- case PushMessageContentGroupContextTypeQuit:
- return YES;
- default:
- return NO;
- }
-}
-@interface PushMessageContentGroupContextBuilder ()
-@property (strong) PushMessageContentGroupContext *result;
-@end
-
-@implementation PushMessageContentGroupContextBuilder
-@synthesize result;
-- (id)init {
- if ((self = [super init])) {
- self.result = [[PushMessageContentGroupContext alloc] init];
- }
- return self;
-}
-- (PBGeneratedMessage *)internalGetResult {
- return result;
-}
-- (PushMessageContentGroupContextBuilder *)clear {
- self.result = [[PushMessageContentGroupContext alloc] init];
- return self;
-}
-- (PushMessageContentGroupContextBuilder *)clone {
- return [PushMessageContentGroupContext builderWithPrototype:result];
-}
-- (PushMessageContentGroupContext *)defaultInstance {
- return [PushMessageContentGroupContext defaultInstance];
-}
-- (PushMessageContentGroupContext *)build {
- [self checkInitialized];
- return [self buildPartial];
-}
-- (PushMessageContentGroupContext *)buildPartial {
- PushMessageContentGroupContext *returnMe = result;
- self.result = nil;
- return returnMe;
-}
-- (PushMessageContentGroupContextBuilder *)mergeFrom:(PushMessageContentGroupContext *)other {
- if (other == [PushMessageContentGroupContext defaultInstance]) {
- return self;
- }
- if (other.hasId) {
- [self setId:other.id];
- }
- if (other.hasType) {
- [self setType:other.type];
- }
- if (other.hasName) {
- [self setName:other.name];
- }
- if (other.membersArray.count > 0) {
- if (result.membersArray == nil) {
- result.membersArray = [[NSMutableArray alloc] initWithArray:other.membersArray];
- } else {
- [result.membersArray addObjectsFromArray:other.membersArray];
- }
- }
- if (other.hasAvatar) {
- [self mergeAvatar:other.avatar];
- }
- [self mergeUnknownFields:other.unknownFields];
- return self;
-}
-- (PushMessageContentGroupContextBuilder *)mergeFromCodedInputStream:(PBCodedInputStream *)input {
- return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
-}
-- (PushMessageContentGroupContextBuilder *)mergeFromCodedInputStream:(PBCodedInputStream *)input
- extensionRegistry:(PBExtensionRegistry *)extensionRegistry {
- PBUnknownFieldSetBuilder *unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
- while (YES) {
- SInt32 tag = [input readTag];
- switch (tag) {
- case 0:
- [self setUnknownFields:[unknownFields build]];
- return self;
- default: {
- if (![self parseUnknownField:input
- unknownFields:unknownFields
- extensionRegistry:extensionRegistry
- tag:tag]) {
- [self setUnknownFields:[unknownFields build]];
- return self;
- }
- break;
- }
- case 10: {
- [self setId:[input readData]];
- break;
- }
- case 16: {
- PushMessageContentGroupContextType value = (PushMessageContentGroupContextType)[input readEnum];
- if (PushMessageContentGroupContextTypeIsValidValue(value)) {
- [self setType:value];
- } else {
- [unknownFields mergeVarintField:2 value:value];
- }
- break;
- }
- case 26: {
- [self setName:[input readString]];
- break;
- }
- case 34: {
- [self addMembers:[input readString]];
- break;
- }
- case 42: {
- PushMessageContentAttachmentPointerBuilder *subBuilder = [PushMessageContentAttachmentPointer builder];
- if (self.hasAvatar) {
- [subBuilder mergeFrom:self.avatar];
- }
- [input readMessage:subBuilder extensionRegistry:extensionRegistry];
- [self setAvatar:[subBuilder buildPartial]];
- break;
- }
- }
- }
-}
-- (BOOL)hasId {
- return result.hasId;
-}
-- (NSData *)id {
- return result.id;
-}
-- (PushMessageContentGroupContextBuilder *)setId:(NSData *)value {
- result.hasId = YES;
- result.id = value;
- return self;
-}
-- (PushMessageContentGroupContextBuilder *)clearId {
- result.hasId = NO;
- result.id = [NSData data];
- return self;
-}
-- (BOOL)hasType {
- return result.hasType;
-}
-- (PushMessageContentGroupContextType)type {
- return result.type;
-}
-- (PushMessageContentGroupContextBuilder *)setType:(PushMessageContentGroupContextType)value {
- result.hasType = YES;
- result.type = value;
- return self;
-}
-- (PushMessageContentGroupContextBuilder *)clearType {
- result.hasType = NO;
- result.type = PushMessageContentGroupContextTypeUnknown;
- return self;
-}
-- (BOOL)hasName {
- return result.hasName;
-}
-- (NSString *)name {
- return result.name;
-}
-- (PushMessageContentGroupContextBuilder *)setName:(NSString *)value {
- result.hasName = YES;
- result.name = value;
- return self;
-}
-- (PushMessageContentGroupContextBuilder *)clearName {
- result.hasName = NO;
- result.name = @"";
- return self;
-}
-- (NSMutableArray *)members {
- return result.membersArray;
-}
-- (NSString *)membersAtIndex:(NSUInteger)index {
- return [result membersAtIndex:index];
-}
-- (PushMessageContentGroupContextBuilder *)addMembers:(NSString *)value {
- if (result.membersArray == nil) {
- result.membersArray = [[NSMutableArray alloc] init];
- }
- [result.membersArray addObject:value];
- return self;
-}
-- (PushMessageContentGroupContextBuilder *)setMembersArray:(NSArray *)array {
- result.membersArray = [[NSMutableArray alloc] initWithArray:array];
- return self;
-}
-- (PushMessageContentGroupContextBuilder *)clearMembers {
- result.membersArray = nil;
- return self;
-}
-- (BOOL)hasAvatar {
- return result.hasAvatar;
-}
-- (PushMessageContentAttachmentPointer *)avatar {
- return result.avatar;
-}
-- (PushMessageContentGroupContextBuilder *)setAvatar:(PushMessageContentAttachmentPointer *)value {
- result.hasAvatar = YES;
- result.avatar = value;
- return self;
-}
-- (PushMessageContentGroupContextBuilder *)setAvatarBuilder:
- (PushMessageContentAttachmentPointerBuilder *)builderForValue {
- return [self setAvatar:[builderForValue build]];
-}
-- (PushMessageContentGroupContextBuilder *)mergeAvatar:(PushMessageContentAttachmentPointer *)value {
- if (result.hasAvatar && result.avatar != [PushMessageContentAttachmentPointer defaultInstance]) {
- result.avatar =
- [[[PushMessageContentAttachmentPointer builderWithPrototype:result.avatar] mergeFrom:value] buildPartial];
- } else {
- result.avatar = value;
- }
- result.hasAvatar = YES;
- return self;
-}
-- (PushMessageContentGroupContextBuilder *)clearAvatar {
- result.hasAvatar = NO;
- result.avatar = [PushMessageContentAttachmentPointer defaultInstance];
- return self;
-}
-@end
-
-@interface PushMessageContentBuilder ()
-@property (strong) PushMessageContent *result;
-@end
-
-@implementation PushMessageContentBuilder
-@synthesize result;
-- (id)init {
- if ((self = [super init])) {
- self.result = [[PushMessageContent alloc] init];
- }
- return self;
-}
-- (PBGeneratedMessage *)internalGetResult {
- return result;
-}
-- (PushMessageContentBuilder *)clear {
- self.result = [[PushMessageContent alloc] init];
- return self;
-}
-- (PushMessageContentBuilder *)clone {
- return [PushMessageContent builderWithPrototype:result];
-}
-- (PushMessageContent *)defaultInstance {
- return [PushMessageContent defaultInstance];
-}
-- (PushMessageContent *)build {
- [self checkInitialized];
- return [self buildPartial];
-}
-- (PushMessageContent *)buildPartial {
- PushMessageContent *returnMe = result;
- self.result = nil;
- return returnMe;
-}
-- (PushMessageContentBuilder *)mergeFrom:(PushMessageContent *)other {
- if (other == [PushMessageContent defaultInstance]) {
- return self;
- }
- if (other.hasBody) {
- [self setBody:other.body];
- }
- if (other.attachmentsArray.count > 0) {
- if (result.attachmentsArray == nil) {
- result.attachmentsArray = [[NSMutableArray alloc] initWithArray:other.attachmentsArray];
- } else {
- [result.attachmentsArray addObjectsFromArray:other.attachmentsArray];
- }
- }
- if (other.hasGroup) {
- [self mergeGroup:other.group];
- }
- if (other.hasFlags) {
- [self setFlags:other.flags];
- }
- [self mergeUnknownFields:other.unknownFields];
- return self;
-}
-- (PushMessageContentBuilder *)mergeFromCodedInputStream:(PBCodedInputStream *)input {
- return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
-}
-- (PushMessageContentBuilder *)mergeFromCodedInputStream:(PBCodedInputStream *)input
- extensionRegistry:(PBExtensionRegistry *)extensionRegistry {
- PBUnknownFieldSetBuilder *unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
- while (YES) {
- SInt32 tag = [input readTag];
- switch (tag) {
- case 0:
- [self setUnknownFields:[unknownFields build]];
- return self;
- default: {
- if (![self parseUnknownField:input
- unknownFields:unknownFields
- extensionRegistry:extensionRegistry
- tag:tag]) {
- [self setUnknownFields:[unknownFields build]];
- return self;
- }
- break;
- }
- case 10: {
- [self setBody:[input readString]];
- break;
- }
- case 18: {
- PushMessageContentAttachmentPointerBuilder *subBuilder = [PushMessageContentAttachmentPointer builder];
- [input readMessage:subBuilder extensionRegistry:extensionRegistry];
- [self addAttachments:[subBuilder buildPartial]];
- break;
- }
- case 26: {
- PushMessageContentGroupContextBuilder *subBuilder = [PushMessageContentGroupContext builder];
- if (self.hasGroup) {
- [subBuilder mergeFrom:self.group];
- }
- [input readMessage:subBuilder extensionRegistry:extensionRegistry];
- [self setGroup:[subBuilder buildPartial]];
- break;
- }
- case 32: {
- [self setFlags:[input readUInt32]];
- break;
- }
- }
- }
-}
-- (BOOL)hasBody {
- return result.hasBody;
-}
-- (NSString *)body {
- return result.body;
-}
-- (PushMessageContentBuilder *)setBody:(NSString *)value {
- result.hasBody = YES;
- result.body = value;
- return self;
-}
-- (PushMessageContentBuilder *)clearBody {
- result.hasBody = NO;
- result.body = @"";
- return self;
-}
-- (NSMutableArray *)attachments {
- return result.attachmentsArray;
-}
-- (PushMessageContentAttachmentPointer *)attachmentsAtIndex:(NSUInteger)index {
- return [result attachmentsAtIndex:index];
-}
-- (PushMessageContentBuilder *)addAttachments:(PushMessageContentAttachmentPointer *)value {
- if (result.attachmentsArray == nil) {
- result.attachmentsArray = [[NSMutableArray alloc] init];
- }
- [result.attachmentsArray addObject:value];
- return self;
-}
-- (PushMessageContentBuilder *)setAttachmentsArray:(NSArray *)array {
- result.attachmentsArray = [[NSMutableArray alloc] initWithArray:array];
- return self;
-}
-- (PushMessageContentBuilder *)clearAttachments {
- result.attachmentsArray = nil;
- return self;
-}
-- (BOOL)hasGroup {
- return result.hasGroup;
-}
-- (PushMessageContentGroupContext *)group {
- return result.group;
-}
-- (PushMessageContentBuilder *)setGroup:(PushMessageContentGroupContext *)value {
- result.hasGroup = YES;
- result.group = value;
- return self;
-}
-- (PushMessageContentBuilder *)setGroupBuilder:(PushMessageContentGroupContextBuilder *)builderForValue {
- return [self setGroup:[builderForValue build]];
-}
-- (PushMessageContentBuilder *)mergeGroup:(PushMessageContentGroupContext *)value {
- if (result.hasGroup && result.group != [PushMessageContentGroupContext defaultInstance]) {
- result.group =
- [[[PushMessageContentGroupContext builderWithPrototype:result.group] mergeFrom:value] buildPartial];
- } else {
- result.group = value;
- }
- result.hasGroup = YES;
- return self;
-}
-- (PushMessageContentBuilder *)clearGroup {
- result.hasGroup = NO;
- result.group = [PushMessageContentGroupContext defaultInstance];
- return self;
-}
-- (BOOL)hasFlags {
- return result.hasFlags;
-}
-- (UInt32)flags {
- return result.flags;
-}
-- (PushMessageContentBuilder *)setFlags:(UInt32)value {
- result.hasFlags = YES;
- result.flags = value;
- return self;
-}
-- (PushMessageContentBuilder *)clearFlags {
- result.hasFlags = NO;
- result.flags = 0;
- return self;
-}
-@end
-
-
-// @@protoc_insertion_point(global_scope)
diff --git a/src/Messages/Interactions/TSErrorMessage.h b/src/Messages/Interactions/TSErrorMessage.h
index b930ec8dad..342e09bf68 100644
--- a/src/Messages/Interactions/TSErrorMessage.h
+++ b/src/Messages/Interactions/TSErrorMessage.h
@@ -1,12 +1,7 @@
-//
-// TSErrorMessage.h
-// TextSecureKit
-//
// Created by Frederic Jacobs on 12/11/14.
// Copyright (c) 2014 Open Whisper Systems. All rights reserved.
-//
-#import "IncomingPushMessageSignal.pb.h"
+#import "OWSSignalServiceProtos.pb.h"
#import "TSMessage.h"
@interface TSErrorMessage : TSMessage
@@ -15,22 +10,23 @@ typedef NS_ENUM(int32_t, TSErrorMessageType) {
TSErrorMessageNoSession,
TSErrorMessageWrongTrustedIdentityKey,
TSErrorMessageInvalidKeyException,
- TSErrorMessageMissingKeyId,
+ TSErrorMessageMissingKeyId, // unused
TSErrorMessageInvalidMessage,
TSErrorMessageDuplicateMessage,
TSErrorMessageInvalidVersion,
};
-+ (instancetype)corruptedMessageWithSignal:(IncomingPushMessageSignal *)preKeyMessage
++ (instancetype)corruptedMessageWithEnvelope:(OWSSignalServiceProtosEnvelope *)envelope
+ withTransaction:(YapDatabaseReadWriteTransaction *)transaction;
+
++ (instancetype)invalidVersionWithEnvelope:(OWSSignalServiceProtosEnvelope *)envelope
+ withTransaction:(YapDatabaseReadWriteTransaction *)transaction;
+
++ (instancetype)invalidKeyExceptionWithEnvelope:(OWSSignalServiceProtosEnvelope *)envelope
+ withTransaction:(YapDatabaseReadWriteTransaction *)transaction;
+
++ (instancetype)missingSessionWithEnvelope:(OWSSignalServiceProtosEnvelope *)envelope
withTransaction:(YapDatabaseReadWriteTransaction *)transaction;
-+ (instancetype)invalidVersionWithSignal:(IncomingPushMessageSignal *)preKeyMessage
- withTransaction:(YapDatabaseReadWriteTransaction *)transaction;
-+ (instancetype)missingKeyIdWithSignal:(IncomingPushMessageSignal *)preKeyMessage
- withTransaction:(YapDatabaseReadWriteTransaction *)transaction;
-+ (instancetype)invalidKeyExceptionWithSignal:(IncomingPushMessageSignal *)preKeyMessage
- withTransaction:(YapDatabaseReadWriteTransaction *)transaction;
-+ (instancetype)missingSessionWithSignal:(IncomingPushMessageSignal *)preKeyMessage
- withTransaction:(YapDatabaseReadWriteTransaction *)transaction;
@property (nonatomic, readonly) TSErrorMessageType errorType;
diff --git a/src/Messages/Interactions/TSErrorMessage.m b/src/Messages/Interactions/TSErrorMessage.m
index 990e47d37c..3e04996908 100644
--- a/src/Messages/Interactions/TSErrorMessage.m
+++ b/src/Messages/Interactions/TSErrorMessage.m
@@ -31,21 +31,20 @@
return self;
}
-- (instancetype)initWithSignal:(IncomingPushMessageSignal *)signal
- transaction:(YapDatabaseReadWriteTransaction *)transaction
- failedMessageType:(TSErrorMessageType)errorMessageType {
+- (instancetype)initWithEnvelope:(OWSSignalServiceProtosEnvelope *)envelope
+ withTransaction:(YapDatabaseReadWriteTransaction *)transaction
+ failedMessageType:(TSErrorMessageType)errorMessageType
+{
TSContactThread *contactThread =
- [TSContactThread getOrCreateThreadWithContactId:signal.source transaction:transaction];
+ [TSContactThread getOrCreateThreadWithContactId:envelope.source transaction:transaction];
- return [self initWithTimestamp:signal.timestamp inThread:contactThread failedMessageType:errorMessageType];
+ return [self initWithTimestamp:envelope.timestamp inThread:contactThread failedMessageType:errorMessageType];
}
- (NSString *)description {
switch (_errorType) {
case TSErrorMessageNoSession:
return NSLocalizedString(@"ERROR_MESSAGE_NO_SESSION", @"");
- case TSErrorMessageMissingKeyId:
- return NSLocalizedString(@"ERROR_MESSAGE_MISSING_KEY", @"");
case TSErrorMessageInvalidMessage:
return NSLocalizedString(@"ERROR_MESSAGE_INVALID_MESSAGE", @"");
case TSErrorMessageInvalidVersion:
@@ -62,31 +61,35 @@
}
}
-+ (instancetype)corruptedMessageWithSignal:(IncomingPushMessageSignal *)signal
- withTransaction:(YapDatabaseReadWriteTransaction *)transaction {
- return [[self alloc] initWithSignal:signal transaction:transaction failedMessageType:TSErrorMessageInvalidMessage];
++ (instancetype)corruptedMessageWithEnvelope:(OWSSignalServiceProtosEnvelope *)envelope
+ withTransaction:(YapDatabaseReadWriteTransaction *)transaction
+{
+ return [[self alloc] initWithEnvelope:envelope
+ withTransaction:transaction
+ failedMessageType:TSErrorMessageInvalidMessage];
}
-+ (instancetype)invalidVersionWithSignal:(IncomingPushMessageSignal *)signal
- withTransaction:(YapDatabaseReadWriteTransaction *)transaction {
- return [[self alloc] initWithSignal:signal transaction:transaction failedMessageType:TSErrorMessageInvalidVersion];
++ (instancetype)invalidVersionWithEnvelope:(OWSSignalServiceProtosEnvelope *)envelope
+ withTransaction:(YapDatabaseReadWriteTransaction *)transaction
+{
+ return [[self alloc] initWithEnvelope:envelope
+ withTransaction:transaction
+ failedMessageType:TSErrorMessageInvalidVersion];
}
-+ (instancetype)missingKeyIdWithSignal:(IncomingPushMessageSignal *)signal
- withTransaction:(YapDatabaseReadWriteTransaction *)transaction {
- return [[self alloc] initWithSignal:signal transaction:transaction failedMessageType:TSErrorMessageMissingKeyId];
++ (instancetype)invalidKeyExceptionWithEnvelope:(OWSSignalServiceProtosEnvelope *)envelope
+ withTransaction:(YapDatabaseReadWriteTransaction *)transaction
+{
+ return [[self alloc] initWithEnvelope:envelope
+ withTransaction:transaction
+ failedMessageType:TSErrorMessageInvalidKeyException];
}
-+ (instancetype)invalidKeyExceptionWithSignal:(IncomingPushMessageSignal *)signal
- withTransaction:(YapDatabaseReadWriteTransaction *)transaction {
- return [[self alloc] initWithSignal:signal
- transaction:transaction
- failedMessageType:TSErrorMessageInvalidKeyException];
-}
-
-+ (instancetype)missingSessionWithSignal:(IncomingPushMessageSignal *)signal
- withTransaction:(YapDatabaseReadWriteTransaction *)transaction {
- return [[self alloc] initWithSignal:signal transaction:transaction failedMessageType:TSErrorMessageNoSession];
++ (instancetype)missingSessionWithEnvelope:(OWSSignalServiceProtosEnvelope *)envelope
+ withTransaction:(YapDatabaseReadWriteTransaction *)transaction
+{
+ return
+ [[self alloc] initWithEnvelope:envelope withTransaction:transaction failedMessageType:TSErrorMessageNoSession];
}
@end
diff --git a/src/Messages/Interactions/TSErrorMessage_privateConstructor.h b/src/Messages/Interactions/TSErrorMessage_privateConstructor.h
index e10840627a..43ba58c217 100644
--- a/src/Messages/Interactions/TSErrorMessage_privateConstructor.h
+++ b/src/Messages/Interactions/TSErrorMessage_privateConstructor.h
@@ -14,7 +14,7 @@
inThread:(TSThread *)thread
failedMessageType:(TSErrorMessageType)errorMessageType NS_DESIGNATED_INITIALIZER;
-@property NSData *pushSignal;
+@property NSData *envelopeData;
@property NSDictionary *pendingOutgoingMessage;
diff --git a/src/Messages/Interactions/TSInteraction.h b/src/Messages/Interactions/TSInteraction.h
index 10e0a53a98..16156b8484 100644
--- a/src/Messages/Interactions/TSInteraction.h
+++ b/src/Messages/Interactions/TSInteraction.h
@@ -10,6 +10,7 @@
- (instancetype)initWithTimestamp:(uint64_t)timestamp inThread:(TSThread *)thread;
@property (nonatomic, readonly) NSString *uniqueThreadId;
+@property (nonatomic, readonly) TSThread *thread;
@property (nonatomic, readonly) uint64_t timestamp;
- (NSDate *)date;
diff --git a/src/Messages/Interactions/TSInteraction.m b/src/Messages/Interactions/TSInteraction.m
index b350bea21a..8eb32b5d42 100644
--- a/src/Messages/Interactions/TSInteraction.m
+++ b/src/Messages/Interactions/TSInteraction.m
@@ -8,17 +8,6 @@
@implementation TSInteraction
-- (instancetype)initWithTimestamp:(uint64_t)timestamp inThread:(TSThread *)thread {
- self = [super initWithUniqueId:nil];
-
- if (self) {
- _timestamp = timestamp;
- _uniqueThreadId = thread.uniqueId;
- }
-
- return self;
-}
-
+ (instancetype)interactionForTimestamp:(uint64_t)timestamp
withTransaction:(YapDatabaseReadWriteTransaction *)transaction {
__block int counter = 0;
@@ -28,14 +17,14 @@
enumerateMessagesWithTimestamp:timestamp
withBlock:^(NSString *collection, NSString *key, BOOL *stop) {
- if (counter != 0) {
- DDLogWarn(@"The database contains two colliding timestamps at: %lld.", timestamp);
- return;
- }
+ if (counter != 0) {
+ DDLogWarn(@"The database contains two colliding timestamps at: %lld.", timestamp);
+ return;
+ }
- interaction = [TSInteraction fetchObjectWithUniqueID:key transaction:transaction];
+ interaction = [TSInteraction fetchObjectWithUniqueID:key transaction:transaction];
- counter++;
+ counter++;
}
usingTransaction:transaction];
@@ -46,6 +35,25 @@
return @"TSInteraction";
}
+- (instancetype)initWithTimestamp:(uint64_t)timestamp inThread:(TSThread *)thread
+{
+ self = [super initWithUniqueId:nil];
+
+ if (!self) {
+ return self;
+ }
+
+ _timestamp = timestamp;
+ _uniqueThreadId = thread.uniqueId;
+
+ return self;
+}
+
+- (TSThread *)thread
+{
+ return [TSThread fetchObjectWithUniqueID:self.uniqueThreadId];
+}
+
#pragma mark Date operations
- (uint64_t)millisecondsTimestamp {
diff --git a/src/Messages/InvalidKeyMessages/TSInvalidIdentityKeyErrorMessage.h b/src/Messages/InvalidKeyMessages/TSInvalidIdentityKeyErrorMessage.h
index 01bee9f3e1..44a52f4c6e 100644
--- a/src/Messages/InvalidKeyMessages/TSInvalidIdentityKeyErrorMessage.h
+++ b/src/Messages/InvalidKeyMessages/TSInvalidIdentityKeyErrorMessage.h
@@ -11,6 +11,6 @@
@interface TSInvalidIdentityKeyErrorMessage : TSErrorMessage
- (void)acceptNewIdentityKey;
-- (NSString *)newIdentityKey;
+- (NSString *)newIdentityFingerprint;
@end
diff --git a/src/Messages/InvalidKeyMessages/TSInvalidIdentityKeyErrorMessage.m b/src/Messages/InvalidKeyMessages/TSInvalidIdentityKeyErrorMessage.m
index d8952ca8a8..b53ea3c396 100644
--- a/src/Messages/InvalidKeyMessages/TSInvalidIdentityKeyErrorMessage.m
+++ b/src/Messages/InvalidKeyMessages/TSInvalidIdentityKeyErrorMessage.m
@@ -13,7 +13,8 @@
- (void)acceptNewIdentityKey {
NSAssert(NO, @"Method needs to be implemented in subclasses of TSInvalidIdentityKeyErrorMessage.");
}
-- (NSString *)newIdentityKey {
+- (NSString *)newIdentityFingerprint
+{
NSAssert(NO, @"Method needs to be implemented in subclasses of TSInvalidIdentityKeyErrorMessage.");
return nil;
}
diff --git a/src/Messages/InvalidKeyMessages/TSInvalidIdentityKeyReceivingErrorMessage.h b/src/Messages/InvalidKeyMessages/TSInvalidIdentityKeyReceivingErrorMessage.h
index a64a837ea7..b9f81c3a92 100644
--- a/src/Messages/InvalidKeyMessages/TSInvalidIdentityKeyReceivingErrorMessage.h
+++ b/src/Messages/InvalidKeyMessages/TSInvalidIdentityKeyReceivingErrorMessage.h
@@ -10,7 +10,8 @@
@interface TSInvalidIdentityKeyReceivingErrorMessage : TSInvalidIdentityKeyErrorMessage
-+ (instancetype)untrustedKeyWithSignal:(IncomingPushMessageSignal *)preKeyMessage
- withTransaction:(YapDatabaseReadWriteTransaction *)transaction;
++ (instancetype)untrustedKeyWithEnvelope:(OWSSignalServiceProtosEnvelope *)envelope
+ withTransaction:(YapDatabaseReadWriteTransaction *)transaction;
+- (NSData *)newIdentityKey;
@end
diff --git a/src/Messages/InvalidKeyMessages/TSInvalidIdentityKeyReceivingErrorMessage.m b/src/Messages/InvalidKeyMessages/TSInvalidIdentityKeyReceivingErrorMessage.m
index 153a2c31c3..0aed655d60 100644
--- a/src/Messages/InvalidKeyMessages/TSInvalidIdentityKeyReceivingErrorMessage.m
+++ b/src/Messages/InvalidKeyMessages/TSInvalidIdentityKeyReceivingErrorMessage.m
@@ -14,96 +14,103 @@
#import
#import
-@implementation TSInvalidIdentityKeyReceivingErrorMessage
+@implementation TSInvalidIdentityKeyReceivingErrorMessage {
+ // Not using a property declaration in order to exclude from DB serialization
+ OWSSignalServiceProtosEnvelope *_envelope;
+}
+
+@synthesize envelopeData = _envelopeData;
+
++ (instancetype)untrustedKeyWithEnvelope:(OWSSignalServiceProtosEnvelope *)envelope
+ withTransaction:(YapDatabaseReadWriteTransaction *)transaction
+{
+ TSContactThread *contactThread =
+ [TSContactThread getOrCreateThreadWithContactId:envelope.source transaction:transaction];
+ TSInvalidIdentityKeyReceivingErrorMessage *errorMessage =
+ [[self alloc] initForUnknownIdentityKeyWithTimestamp:envelope.timestamp
+ inThread:contactThread
+ incomingEnvelopeData:envelope.data];
+ return errorMessage;
+}
- (instancetype)initForUnknownIdentityKeyWithTimestamp:(uint64_t)timestamp
inThread:(TSThread *)thread
- incomingPushSignal:(NSData *)signal {
+ incomingEnvelopeData:(NSData *)envelopeData
+{
self = [self initWithTimestamp:timestamp inThread:thread failedMessageType:TSErrorMessageWrongTrustedIdentityKey];
-
- if (self) {
- self.pushSignal = signal;
+ if (!self) {
+ return self;
}
+ _envelopeData = envelopeData;
+
return self;
}
-+ (instancetype)untrustedKeyWithSignal:(IncomingPushMessageSignal *)preKeyMessage
- withTransaction:(YapDatabaseReadWriteTransaction *)transaction {
- TSContactThread *contactThread =
- [TSContactThread getOrCreateThreadWithContactId:preKeyMessage.source transaction:transaction];
- TSInvalidIdentityKeyReceivingErrorMessage *errorMessage =
- [[self alloc] initForUnknownIdentityKeyWithTimestamp:preKeyMessage.timestamp
- inThread:contactThread
- incomingPushSignal:preKeyMessage.data];
- return errorMessage;
+- (OWSSignalServiceProtosEnvelope *)envelope
+{
+ if (!_envelope) {
+ _envelope = [OWSSignalServiceProtosEnvelope parseFromData:self.envelopeData];
+ }
+ return _envelope;
}
-- (void)acceptNewIdentityKey {
- if (self.errorType != TSErrorMessageWrongTrustedIdentityKey || !self.pushSignal) {
+
+- (void)acceptNewIdentityKey
+{
+ if (self.errorType != TSErrorMessageWrongTrustedIdentityKey) {
+ DDLogError(@"Refusing to accept identity key for anything but a Key error.");
return;
}
- TSStorageManager *storage = [TSStorageManager sharedManager];
- IncomingPushMessageSignal *signal = [IncomingPushMessageSignal parseFromData:self.pushSignal];
- PreKeyWhisperMessage *message = [[PreKeyWhisperMessage alloc] initWithData:signal.message];
- NSData *newKey = [message.identityKey removeKeyType];
+ NSData *newKey = [self newIdentityKey];
+ if (!newKey) {
+ DDLogError(@"Couldn't extract identity key to accept");
+ return;
+ }
- [storage saveRemoteIdentity:newKey recipientId:signal.source];
-
- [[TSMessagesManager sharedManager] handleMessageSignal:signal];
-
- __block NSMutableSet *messagesToDecrypt = [NSMutableSet set];
-
- [[TSStorageManager sharedManager]
- .dbConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
- [[transaction ext:TSMessageDatabaseViewExtensionName]
- enumerateKeysAndObjectsInGroup:self.uniqueThreadId
- withOptions:NSEnumerationReverse
- usingBlock:^(
- NSString *collection, NSString *key, id object, NSUInteger index, BOOL *stop) {
- TSInteraction *interaction = (TSInteraction *)object;
-
- DDLogVerbose(@"Interaction type: %@", interaction.debugDescription);
-
- if ([interaction isKindOfClass:[TSInvalidIdentityKeyErrorMessage class]]) {
- TSInvalidIdentityKeyErrorMessage *invalidKeyMessage =
- (TSInvalidIdentityKeyReceivingErrorMessage *)interaction;
- IncomingPushMessageSignal *invalidMessageSignal =
- [IncomingPushMessageSignal parseFromData:invalidKeyMessage.pushSignal];
- PreKeyWhisperMessage *pkwm =
- [[PreKeyWhisperMessage alloc] initWithData:invalidMessageSignal.message];
- NSData *newKeyCandidate = [pkwm.identityKey removeKeyType];
-
- if ([newKeyCandidate isEqualToData:newKey]) {
- [messagesToDecrypt addObject:invalidKeyMessage];
- }
- }
- }];
- }];
+ [[TSStorageManager sharedManager] saveRemoteIdentity:newKey recipientId:self.envelope.source];
+ // Decrypt this and any old messages for the newly accepted key
+ NSArray *messagesToDecrypt =
+ [self.thread receivedMessagesForInvalidKey:newKey];
for (TSInvalidIdentityKeyReceivingErrorMessage *errorMessage in messagesToDecrypt) {
- [[TSMessagesManager sharedManager]
- handleMessageSignal:[IncomingPushMessageSignal parseFromData:errorMessage.pushSignal]];
+ [[TSMessagesManager sharedManager] handleReceivedEnvelope:errorMessage.envelope];
- [[TSStorageManager sharedManager]
- .dbConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
- [errorMessage removeWithTransaction:transaction];
- }];
+ // Here we remove the existing error message because handleReceivedEnvelope will either
+ // 1.) succeed and create a new successful message in the thread or...
+ // 2.) fail and create a new identical error message in the thread.
+ [errorMessage remove];
}
}
-- (NSString *)newIdentityKey {
- if (!self.pushSignal) {
- return @"";
+- (NSData *)newIdentityKey
+{
+ if (!self.envelope) {
+ DDLogError(@"Error message had no envelope data to extract key from");
+ return nil;
}
- IncomingPushMessageSignal *signal = [IncomingPushMessageSignal parseFromData:self.pushSignal];
- PreKeyWhisperMessage *message = [[PreKeyWhisperMessage alloc] initWithData:signal.message];
- NSData *identityKey = [message.identityKey removeKeyType];
+ if (self.envelope.type != OWSSignalServiceProtosEnvelopeTypePrekeyBundle) {
+ DDLogError(@"Refusing to attempt key extraction from an envelope which isn't a prekey bundle");
+ return nil;
+ }
- return [TSFingerprintGenerator getFingerprintForDisplay:identityKey];
+ // DEPRECATED - Remove after all clients have been upgraded.
+ NSData *pkwmData = self.envelope.hasContent ? self.envelope.content : self.envelope.legacyMessage;
+ if (!pkwmData) {
+ DDLogError(@"Ignoring acceptNewIdentityKey for empty message");
+ return nil;
+ }
+
+ PreKeyWhisperMessage *message = [[PreKeyWhisperMessage alloc] initWithData:pkwmData];
+ return [message.identityKey removeKeyType];
+}
+
+- (NSString *)newIdentityFingerprint
+{
+ return [TSFingerprintGenerator getFingerprintForDisplay:[self newIdentityKey]];
}
@end
diff --git a/src/Messages/InvalidKeyMessages/TSInvalidIdentityKeySendingErrorMessage.m b/src/Messages/InvalidKeyMessages/TSInvalidIdentityKeySendingErrorMessage.m
index 9e278a4426..24a8fd63cc 100644
--- a/src/Messages/InvalidKeyMessages/TSInvalidIdentityKeySendingErrorMessage.m
+++ b/src/Messages/InvalidKeyMessages/TSInvalidIdentityKeySendingErrorMessage.m
@@ -95,7 +95,8 @@
}
}
-- (NSString *)newIdentityKey {
+- (NSString *)newIdentityFingerprint
+{
NSData *identityKey = [self newKey];
return [TSFingerprintGenerator getFingerprintForDisplay:identityKey];
diff --git a/src/Messages/OWSSignalServiceProtos.pb.h b/src/Messages/OWSSignalServiceProtos.pb.h
new file mode 100644
index 0000000000..59432d03db
--- /dev/null
+++ b/src/Messages/OWSSignalServiceProtos.pb.h
@@ -0,0 +1,1234 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+
+#import
+
+// @@protoc_insertion_point(imports)
+
+@class OWSSignalServiceProtosAttachmentPointer;
+@class OWSSignalServiceProtosAttachmentPointerBuilder;
+@class OWSSignalServiceProtosContactDetails;
+@class OWSSignalServiceProtosContactDetailsAvatar;
+@class OWSSignalServiceProtosContactDetailsAvatarBuilder;
+@class OWSSignalServiceProtosContactDetailsBuilder;
+@class OWSSignalServiceProtosContent;
+@class OWSSignalServiceProtosContentBuilder;
+@class OWSSignalServiceProtosDataMessage;
+@class OWSSignalServiceProtosDataMessageBuilder;
+@class OWSSignalServiceProtosEnvelope;
+@class OWSSignalServiceProtosEnvelopeBuilder;
+@class OWSSignalServiceProtosGroupContext;
+@class OWSSignalServiceProtosGroupContextBuilder;
+@class OWSSignalServiceProtosGroupDetails;
+@class OWSSignalServiceProtosGroupDetailsAvatar;
+@class OWSSignalServiceProtosGroupDetailsAvatarBuilder;
+@class OWSSignalServiceProtosGroupDetailsBuilder;
+@class OWSSignalServiceProtosSyncMessage;
+@class OWSSignalServiceProtosSyncMessageBuilder;
+@class OWSSignalServiceProtosSyncMessageContacts;
+@class OWSSignalServiceProtosSyncMessageContactsBuilder;
+@class OWSSignalServiceProtosSyncMessageGroups;
+@class OWSSignalServiceProtosSyncMessageGroupsBuilder;
+@class OWSSignalServiceProtosSyncMessageRead;
+@class OWSSignalServiceProtosSyncMessageReadBuilder;
+@class OWSSignalServiceProtosSyncMessageRequest;
+@class OWSSignalServiceProtosSyncMessageRequestBuilder;
+@class OWSSignalServiceProtosSyncMessageSent;
+@class OWSSignalServiceProtosSyncMessageSentBuilder;
+@class ObjectiveCFileOptions;
+@class ObjectiveCFileOptionsBuilder;
+@class PBDescriptorProto;
+@class PBDescriptorProtoBuilder;
+@class PBDescriptorProtoExtensionRange;
+@class PBDescriptorProtoExtensionRangeBuilder;
+@class PBEnumDescriptorProto;
+@class PBEnumDescriptorProtoBuilder;
+@class PBEnumOptions;
+@class PBEnumOptionsBuilder;
+@class PBEnumValueDescriptorProto;
+@class PBEnumValueDescriptorProtoBuilder;
+@class PBEnumValueOptions;
+@class PBEnumValueOptionsBuilder;
+@class PBFieldDescriptorProto;
+@class PBFieldDescriptorProtoBuilder;
+@class PBFieldOptions;
+@class PBFieldOptionsBuilder;
+@class PBFileDescriptorProto;
+@class PBFileDescriptorProtoBuilder;
+@class PBFileDescriptorSet;
+@class PBFileDescriptorSetBuilder;
+@class PBFileOptions;
+@class PBFileOptionsBuilder;
+@class PBMessageOptions;
+@class PBMessageOptionsBuilder;
+@class PBMethodDescriptorProto;
+@class PBMethodDescriptorProtoBuilder;
+@class PBMethodOptions;
+@class PBMethodOptionsBuilder;
+@class PBOneofDescriptorProto;
+@class PBOneofDescriptorProtoBuilder;
+@class PBServiceDescriptorProto;
+@class PBServiceDescriptorProtoBuilder;
+@class PBServiceOptions;
+@class PBServiceOptionsBuilder;
+@class PBSourceCodeInfo;
+@class PBSourceCodeInfoBuilder;
+@class PBSourceCodeInfoLocation;
+@class PBSourceCodeInfoLocationBuilder;
+@class PBUninterpretedOption;
+@class PBUninterpretedOptionBuilder;
+@class PBUninterpretedOptionNamePart;
+@class PBUninterpretedOptionNamePartBuilder;
+
+
+typedef NS_ENUM(SInt32, OWSSignalServiceProtosEnvelopeType) {
+ OWSSignalServiceProtosEnvelopeTypeUnknown = 0,
+ OWSSignalServiceProtosEnvelopeTypeCiphertext = 1,
+ OWSSignalServiceProtosEnvelopeTypeKeyExchange = 2,
+ OWSSignalServiceProtosEnvelopeTypePrekeyBundle = 3,
+ OWSSignalServiceProtosEnvelopeTypeReceipt = 5,
+};
+
+BOOL OWSSignalServiceProtosEnvelopeTypeIsValidValue(OWSSignalServiceProtosEnvelopeType value);
+NSString *NSStringFromOWSSignalServiceProtosEnvelopeType(OWSSignalServiceProtosEnvelopeType value);
+
+typedef NS_ENUM(SInt32, OWSSignalServiceProtosDataMessageFlags) {
+ OWSSignalServiceProtosDataMessageFlagsEndSession = 1,
+};
+
+BOOL OWSSignalServiceProtosDataMessageFlagsIsValidValue(OWSSignalServiceProtosDataMessageFlags value);
+NSString *NSStringFromOWSSignalServiceProtosDataMessageFlags(OWSSignalServiceProtosDataMessageFlags value);
+
+typedef NS_ENUM(SInt32, OWSSignalServiceProtosSyncMessageRequestType) {
+ OWSSignalServiceProtosSyncMessageRequestTypeUnknown = 0,
+ OWSSignalServiceProtosSyncMessageRequestTypeContacts = 1,
+ OWSSignalServiceProtosSyncMessageRequestTypeGroups = 2,
+};
+
+BOOL OWSSignalServiceProtosSyncMessageRequestTypeIsValidValue(OWSSignalServiceProtosSyncMessageRequestType value);
+NSString *NSStringFromOWSSignalServiceProtosSyncMessageRequestType(OWSSignalServiceProtosSyncMessageRequestType value);
+
+typedef NS_ENUM(SInt32, OWSSignalServiceProtosGroupContextType) {
+ OWSSignalServiceProtosGroupContextTypeUnknown = 0,
+ OWSSignalServiceProtosGroupContextTypeUpdate = 1,
+ OWSSignalServiceProtosGroupContextTypeDeliver = 2,
+ OWSSignalServiceProtosGroupContextTypeQuit = 3,
+};
+
+BOOL OWSSignalServiceProtosGroupContextTypeIsValidValue(OWSSignalServiceProtosGroupContextType value);
+NSString *NSStringFromOWSSignalServiceProtosGroupContextType(OWSSignalServiceProtosGroupContextType value);
+
+
+@interface OWSSignalServiceProtosOwssignalServiceProtosRoot : NSObject {
+}
++ (PBExtensionRegistry*) extensionRegistry;
++ (void) registerAllExtensions:(PBMutableExtensionRegistry*) registry;
+@end
+
+#define Envelope_type @"type"
+#define Envelope_source @"source"
+#define Envelope_sourceDevice @"sourceDevice"
+#define Envelope_relay @"relay"
+#define Envelope_timestamp @"timestamp"
+#define Envelope_legacyMessage @"legacyMessage"
+#define Envelope_content @"content"
+@interface OWSSignalServiceProtosEnvelope : PBGeneratedMessage {
+@private
+ BOOL hasTimestamp_:1;
+ BOOL hasSource_:1;
+ BOOL hasRelay_:1;
+ BOOL hasLegacyMessage_:1;
+ BOOL hasContent_:1;
+ BOOL hasSourceDevice_:1;
+ BOOL hasType_:1;
+ UInt64 timestamp;
+ NSString* source;
+ NSString* relay;
+ NSData* legacyMessage;
+ NSData* content;
+ UInt32 sourceDevice;
+ OWSSignalServiceProtosEnvelopeType type;
+}
+- (BOOL) hasType;
+- (BOOL) hasSource;
+- (BOOL) hasSourceDevice;
+- (BOOL) hasRelay;
+- (BOOL) hasTimestamp;
+- (BOOL) hasLegacyMessage;
+- (BOOL) hasContent;
+@property (readonly) OWSSignalServiceProtosEnvelopeType type;
+@property (readonly, strong) NSString* source;
+@property (readonly) UInt32 sourceDevice;
+@property (readonly, strong) NSString* relay;
+@property (readonly) UInt64 timestamp;
+@property (readonly, strong) NSData* legacyMessage;
+@property (readonly, strong) NSData* content;
+
++ (instancetype) defaultInstance;
+- (instancetype) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (OWSSignalServiceProtosEnvelopeBuilder*) builder;
++ (OWSSignalServiceProtosEnvelopeBuilder*) builder;
++ (OWSSignalServiceProtosEnvelopeBuilder*) builderWithPrototype:(OWSSignalServiceProtosEnvelope*) prototype;
+- (OWSSignalServiceProtosEnvelopeBuilder*) toBuilder;
+
++ (OWSSignalServiceProtosEnvelope*) parseFromData:(NSData*) data;
++ (OWSSignalServiceProtosEnvelope*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (OWSSignalServiceProtosEnvelope*) parseFromInputStream:(NSInputStream*) input;
++ (OWSSignalServiceProtosEnvelope*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (OWSSignalServiceProtosEnvelope*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (OWSSignalServiceProtosEnvelope*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface OWSSignalServiceProtosEnvelopeBuilder : PBGeneratedMessageBuilder {
+@private
+ OWSSignalServiceProtosEnvelope* resultEnvelope;
+}
+
+- (OWSSignalServiceProtosEnvelope*) defaultInstance;
+
+- (OWSSignalServiceProtosEnvelopeBuilder*) clear;
+- (OWSSignalServiceProtosEnvelopeBuilder*) clone;
+
+- (OWSSignalServiceProtosEnvelope*) build;
+- (OWSSignalServiceProtosEnvelope*) buildPartial;
+
+- (OWSSignalServiceProtosEnvelopeBuilder*) mergeFrom:(OWSSignalServiceProtosEnvelope*) other;
+- (OWSSignalServiceProtosEnvelopeBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (OWSSignalServiceProtosEnvelopeBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasType;
+- (OWSSignalServiceProtosEnvelopeType) type;
+- (OWSSignalServiceProtosEnvelopeBuilder*) setType:(OWSSignalServiceProtosEnvelopeType) value;
+- (OWSSignalServiceProtosEnvelopeBuilder*) clearType;
+
+- (BOOL) hasSource;
+- (NSString*) source;
+- (OWSSignalServiceProtosEnvelopeBuilder*) setSource:(NSString*) value;
+- (OWSSignalServiceProtosEnvelopeBuilder*) clearSource;
+
+- (BOOL) hasSourceDevice;
+- (UInt32) sourceDevice;
+- (OWSSignalServiceProtosEnvelopeBuilder*) setSourceDevice:(UInt32) value;
+- (OWSSignalServiceProtosEnvelopeBuilder*) clearSourceDevice;
+
+- (BOOL) hasRelay;
+- (NSString*) relay;
+- (OWSSignalServiceProtosEnvelopeBuilder*) setRelay:(NSString*) value;
+- (OWSSignalServiceProtosEnvelopeBuilder*) clearRelay;
+
+- (BOOL) hasTimestamp;
+- (UInt64) timestamp;
+- (OWSSignalServiceProtosEnvelopeBuilder*) setTimestamp:(UInt64) value;
+- (OWSSignalServiceProtosEnvelopeBuilder*) clearTimestamp;
+
+- (BOOL) hasLegacyMessage;
+- (NSData*) legacyMessage;
+- (OWSSignalServiceProtosEnvelopeBuilder*) setLegacyMessage:(NSData*) value;
+- (OWSSignalServiceProtosEnvelopeBuilder*) clearLegacyMessage;
+
+- (BOOL) hasContent;
+- (NSData*) content;
+- (OWSSignalServiceProtosEnvelopeBuilder*) setContent:(NSData*) value;
+- (OWSSignalServiceProtosEnvelopeBuilder*) clearContent;
+@end
+
+#define Content_dataMessage @"dataMessage"
+#define Content_syncMessage @"syncMessage"
+@interface OWSSignalServiceProtosContent : PBGeneratedMessage {
+@private
+ BOOL hasDataMessage_:1;
+ BOOL hasSyncMessage_:1;
+ OWSSignalServiceProtosDataMessage* dataMessage;
+ OWSSignalServiceProtosSyncMessage* syncMessage;
+}
+- (BOOL) hasDataMessage;
+- (BOOL) hasSyncMessage;
+@property (readonly, strong) OWSSignalServiceProtosDataMessage* dataMessage;
+@property (readonly, strong) OWSSignalServiceProtosSyncMessage* syncMessage;
+
++ (instancetype) defaultInstance;
+- (instancetype) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (OWSSignalServiceProtosContentBuilder*) builder;
++ (OWSSignalServiceProtosContentBuilder*) builder;
++ (OWSSignalServiceProtosContentBuilder*) builderWithPrototype:(OWSSignalServiceProtosContent*) prototype;
+- (OWSSignalServiceProtosContentBuilder*) toBuilder;
+
++ (OWSSignalServiceProtosContent*) parseFromData:(NSData*) data;
++ (OWSSignalServiceProtosContent*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (OWSSignalServiceProtosContent*) parseFromInputStream:(NSInputStream*) input;
++ (OWSSignalServiceProtosContent*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (OWSSignalServiceProtosContent*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (OWSSignalServiceProtosContent*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface OWSSignalServiceProtosContentBuilder : PBGeneratedMessageBuilder {
+@private
+ OWSSignalServiceProtosContent* resultContent;
+}
+
+- (OWSSignalServiceProtosContent*) defaultInstance;
+
+- (OWSSignalServiceProtosContentBuilder*) clear;
+- (OWSSignalServiceProtosContentBuilder*) clone;
+
+- (OWSSignalServiceProtosContent*) build;
+- (OWSSignalServiceProtosContent*) buildPartial;
+
+- (OWSSignalServiceProtosContentBuilder*) mergeFrom:(OWSSignalServiceProtosContent*) other;
+- (OWSSignalServiceProtosContentBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (OWSSignalServiceProtosContentBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasDataMessage;
+- (OWSSignalServiceProtosDataMessage*) dataMessage;
+- (OWSSignalServiceProtosContentBuilder*) setDataMessage:(OWSSignalServiceProtosDataMessage*) value;
+- (OWSSignalServiceProtosContentBuilder*) setDataMessageBuilder:(OWSSignalServiceProtosDataMessageBuilder*) builderForValue;
+- (OWSSignalServiceProtosContentBuilder*) mergeDataMessage:(OWSSignalServiceProtosDataMessage*) value;
+- (OWSSignalServiceProtosContentBuilder*) clearDataMessage;
+
+- (BOOL) hasSyncMessage;
+- (OWSSignalServiceProtosSyncMessage*) syncMessage;
+- (OWSSignalServiceProtosContentBuilder*) setSyncMessage:(OWSSignalServiceProtosSyncMessage*) value;
+- (OWSSignalServiceProtosContentBuilder*) setSyncMessageBuilder:(OWSSignalServiceProtosSyncMessageBuilder*) builderForValue;
+- (OWSSignalServiceProtosContentBuilder*) mergeSyncMessage:(OWSSignalServiceProtosSyncMessage*) value;
+- (OWSSignalServiceProtosContentBuilder*) clearSyncMessage;
+@end
+
+#define DataMessage_body @"body"
+#define DataMessage_attachments @"attachments"
+#define DataMessage_group @"group"
+#define DataMessage_flags @"flags"
+@interface OWSSignalServiceProtosDataMessage : PBGeneratedMessage {
+@private
+ BOOL hasBody_:1;
+ BOOL hasGroup_:1;
+ BOOL hasFlags_:1;
+ NSString* body;
+ OWSSignalServiceProtosGroupContext* group;
+ UInt32 flags;
+ NSMutableArray * attachmentsArray;
+}
+- (BOOL) hasBody;
+- (BOOL) hasGroup;
+- (BOOL) hasFlags;
+@property (readonly, strong) NSString* body;
+@property (readonly, strong) NSArray * attachments;
+@property (readonly, strong) OWSSignalServiceProtosGroupContext* group;
+@property (readonly) UInt32 flags;
+- (OWSSignalServiceProtosAttachmentPointer*)attachmentsAtIndex:(NSUInteger)index;
+
++ (instancetype) defaultInstance;
+- (instancetype) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (OWSSignalServiceProtosDataMessageBuilder*) builder;
++ (OWSSignalServiceProtosDataMessageBuilder*) builder;
++ (OWSSignalServiceProtosDataMessageBuilder*) builderWithPrototype:(OWSSignalServiceProtosDataMessage*) prototype;
+- (OWSSignalServiceProtosDataMessageBuilder*) toBuilder;
+
++ (OWSSignalServiceProtosDataMessage*) parseFromData:(NSData*) data;
++ (OWSSignalServiceProtosDataMessage*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (OWSSignalServiceProtosDataMessage*) parseFromInputStream:(NSInputStream*) input;
++ (OWSSignalServiceProtosDataMessage*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (OWSSignalServiceProtosDataMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (OWSSignalServiceProtosDataMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface OWSSignalServiceProtosDataMessageBuilder : PBGeneratedMessageBuilder {
+@private
+ OWSSignalServiceProtosDataMessage* resultDataMessage;
+}
+
+- (OWSSignalServiceProtosDataMessage*) defaultInstance;
+
+- (OWSSignalServiceProtosDataMessageBuilder*) clear;
+- (OWSSignalServiceProtosDataMessageBuilder*) clone;
+
+- (OWSSignalServiceProtosDataMessage*) build;
+- (OWSSignalServiceProtosDataMessage*) buildPartial;
+
+- (OWSSignalServiceProtosDataMessageBuilder*) mergeFrom:(OWSSignalServiceProtosDataMessage*) other;
+- (OWSSignalServiceProtosDataMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (OWSSignalServiceProtosDataMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasBody;
+- (NSString*) body;
+- (OWSSignalServiceProtosDataMessageBuilder*) setBody:(NSString*) value;
+- (OWSSignalServiceProtosDataMessageBuilder*) clearBody;
+
+- (NSMutableArray *)attachments;
+- (OWSSignalServiceProtosAttachmentPointer*)attachmentsAtIndex:(NSUInteger)index;
+- (OWSSignalServiceProtosDataMessageBuilder *)addAttachments:(OWSSignalServiceProtosAttachmentPointer*)value;
+- (OWSSignalServiceProtosDataMessageBuilder *)setAttachmentsArray:(NSArray *)array;
+- (OWSSignalServiceProtosDataMessageBuilder *)clearAttachments;
+
+- (BOOL) hasGroup;
+- (OWSSignalServiceProtosGroupContext*) group;
+- (OWSSignalServiceProtosDataMessageBuilder*) setGroup:(OWSSignalServiceProtosGroupContext*) value;
+- (OWSSignalServiceProtosDataMessageBuilder*) setGroupBuilder:(OWSSignalServiceProtosGroupContextBuilder*) builderForValue;
+- (OWSSignalServiceProtosDataMessageBuilder*) mergeGroup:(OWSSignalServiceProtosGroupContext*) value;
+- (OWSSignalServiceProtosDataMessageBuilder*) clearGroup;
+
+- (BOOL) hasFlags;
+- (UInt32) flags;
+- (OWSSignalServiceProtosDataMessageBuilder*) setFlags:(UInt32) value;
+- (OWSSignalServiceProtosDataMessageBuilder*) clearFlags;
+@end
+
+#define SyncMessage_sent @"sent"
+#define SyncMessage_contacts @"contacts"
+#define SyncMessage_groups @"groups"
+#define SyncMessage_request @"request"
+#define SyncMessage_read @"read"
+@interface OWSSignalServiceProtosSyncMessage : PBGeneratedMessage {
+@private
+ BOOL hasSent_:1;
+ BOOL hasContacts_:1;
+ BOOL hasGroups_:1;
+ BOOL hasRequest_:1;
+ OWSSignalServiceProtosSyncMessageSent* sent;
+ OWSSignalServiceProtosSyncMessageContacts* contacts;
+ OWSSignalServiceProtosSyncMessageGroups* groups;
+ OWSSignalServiceProtosSyncMessageRequest* request;
+ NSMutableArray * readArray;
+}
+- (BOOL) hasSent;
+- (BOOL) hasContacts;
+- (BOOL) hasGroups;
+- (BOOL) hasRequest;
+@property (readonly, strong) OWSSignalServiceProtosSyncMessageSent* sent;
+@property (readonly, strong) OWSSignalServiceProtosSyncMessageContacts* contacts;
+@property (readonly, strong) OWSSignalServiceProtosSyncMessageGroups* groups;
+@property (readonly, strong) OWSSignalServiceProtosSyncMessageRequest* request;
+@property (readonly, strong) NSArray * read;
+- (OWSSignalServiceProtosSyncMessageRead*)readAtIndex:(NSUInteger)index;
+
++ (instancetype) defaultInstance;
+- (instancetype) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (OWSSignalServiceProtosSyncMessageBuilder*) builder;
++ (OWSSignalServiceProtosSyncMessageBuilder*) builder;
++ (OWSSignalServiceProtosSyncMessageBuilder*) builderWithPrototype:(OWSSignalServiceProtosSyncMessage*) prototype;
+- (OWSSignalServiceProtosSyncMessageBuilder*) toBuilder;
+
++ (OWSSignalServiceProtosSyncMessage*) parseFromData:(NSData*) data;
++ (OWSSignalServiceProtosSyncMessage*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (OWSSignalServiceProtosSyncMessage*) parseFromInputStream:(NSInputStream*) input;
++ (OWSSignalServiceProtosSyncMessage*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (OWSSignalServiceProtosSyncMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (OWSSignalServiceProtosSyncMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+#define Sent_destination @"destination"
+#define Sent_timestamp @"timestamp"
+#define Sent_message @"message"
+@interface OWSSignalServiceProtosSyncMessageSent : PBGeneratedMessage {
+@private
+ BOOL hasTimestamp_:1;
+ BOOL hasDestination_:1;
+ BOOL hasMessage_:1;
+ UInt64 timestamp;
+ NSString* destination;
+ OWSSignalServiceProtosDataMessage* message;
+}
+- (BOOL) hasDestination;
+- (BOOL) hasTimestamp;
+- (BOOL) hasMessage;
+@property (readonly, strong) NSString* destination;
+@property (readonly) UInt64 timestamp;
+@property (readonly, strong) OWSSignalServiceProtosDataMessage* message;
+
++ (instancetype) defaultInstance;
+- (instancetype) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (OWSSignalServiceProtosSyncMessageSentBuilder*) builder;
++ (OWSSignalServiceProtosSyncMessageSentBuilder*) builder;
++ (OWSSignalServiceProtosSyncMessageSentBuilder*) builderWithPrototype:(OWSSignalServiceProtosSyncMessageSent*) prototype;
+- (OWSSignalServiceProtosSyncMessageSentBuilder*) toBuilder;
+
++ (OWSSignalServiceProtosSyncMessageSent*) parseFromData:(NSData*) data;
++ (OWSSignalServiceProtosSyncMessageSent*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (OWSSignalServiceProtosSyncMessageSent*) parseFromInputStream:(NSInputStream*) input;
++ (OWSSignalServiceProtosSyncMessageSent*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (OWSSignalServiceProtosSyncMessageSent*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (OWSSignalServiceProtosSyncMessageSent*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface OWSSignalServiceProtosSyncMessageSentBuilder : PBGeneratedMessageBuilder {
+@private
+ OWSSignalServiceProtosSyncMessageSent* resultSent;
+}
+
+- (OWSSignalServiceProtosSyncMessageSent*) defaultInstance;
+
+- (OWSSignalServiceProtosSyncMessageSentBuilder*) clear;
+- (OWSSignalServiceProtosSyncMessageSentBuilder*) clone;
+
+- (OWSSignalServiceProtosSyncMessageSent*) build;
+- (OWSSignalServiceProtosSyncMessageSent*) buildPartial;
+
+- (OWSSignalServiceProtosSyncMessageSentBuilder*) mergeFrom:(OWSSignalServiceProtosSyncMessageSent*) other;
+- (OWSSignalServiceProtosSyncMessageSentBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (OWSSignalServiceProtosSyncMessageSentBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasDestination;
+- (NSString*) destination;
+- (OWSSignalServiceProtosSyncMessageSentBuilder*) setDestination:(NSString*) value;
+- (OWSSignalServiceProtosSyncMessageSentBuilder*) clearDestination;
+
+- (BOOL) hasTimestamp;
+- (UInt64) timestamp;
+- (OWSSignalServiceProtosSyncMessageSentBuilder*) setTimestamp:(UInt64) value;
+- (OWSSignalServiceProtosSyncMessageSentBuilder*) clearTimestamp;
+
+- (BOOL) hasMessage;
+- (OWSSignalServiceProtosDataMessage*) message;
+- (OWSSignalServiceProtosSyncMessageSentBuilder*) setMessage:(OWSSignalServiceProtosDataMessage*) value;
+- (OWSSignalServiceProtosSyncMessageSentBuilder*) setMessageBuilder:(OWSSignalServiceProtosDataMessageBuilder*) builderForValue;
+- (OWSSignalServiceProtosSyncMessageSentBuilder*) mergeMessage:(OWSSignalServiceProtosDataMessage*) value;
+- (OWSSignalServiceProtosSyncMessageSentBuilder*) clearMessage;
+@end
+
+#define Contacts_blob @"blob"
+@interface OWSSignalServiceProtosSyncMessageContacts : PBGeneratedMessage {
+@private
+ BOOL hasBlob_:1;
+ OWSSignalServiceProtosAttachmentPointer* blob;
+}
+- (BOOL) hasBlob;
+@property (readonly, strong) OWSSignalServiceProtosAttachmentPointer* blob;
+
++ (instancetype) defaultInstance;
+- (instancetype) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (OWSSignalServiceProtosSyncMessageContactsBuilder*) builder;
++ (OWSSignalServiceProtosSyncMessageContactsBuilder*) builder;
++ (OWSSignalServiceProtosSyncMessageContactsBuilder*) builderWithPrototype:(OWSSignalServiceProtosSyncMessageContacts*) prototype;
+- (OWSSignalServiceProtosSyncMessageContactsBuilder*) toBuilder;
+
++ (OWSSignalServiceProtosSyncMessageContacts*) parseFromData:(NSData*) data;
++ (OWSSignalServiceProtosSyncMessageContacts*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (OWSSignalServiceProtosSyncMessageContacts*) parseFromInputStream:(NSInputStream*) input;
++ (OWSSignalServiceProtosSyncMessageContacts*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (OWSSignalServiceProtosSyncMessageContacts*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (OWSSignalServiceProtosSyncMessageContacts*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface OWSSignalServiceProtosSyncMessageContactsBuilder : PBGeneratedMessageBuilder {
+@private
+ OWSSignalServiceProtosSyncMessageContacts* resultContacts;
+}
+
+- (OWSSignalServiceProtosSyncMessageContacts*) defaultInstance;
+
+- (OWSSignalServiceProtosSyncMessageContactsBuilder*) clear;
+- (OWSSignalServiceProtosSyncMessageContactsBuilder*) clone;
+
+- (OWSSignalServiceProtosSyncMessageContacts*) build;
+- (OWSSignalServiceProtosSyncMessageContacts*) buildPartial;
+
+- (OWSSignalServiceProtosSyncMessageContactsBuilder*) mergeFrom:(OWSSignalServiceProtosSyncMessageContacts*) other;
+- (OWSSignalServiceProtosSyncMessageContactsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (OWSSignalServiceProtosSyncMessageContactsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasBlob;
+- (OWSSignalServiceProtosAttachmentPointer*) blob;
+- (OWSSignalServiceProtosSyncMessageContactsBuilder*) setBlob:(OWSSignalServiceProtosAttachmentPointer*) value;
+- (OWSSignalServiceProtosSyncMessageContactsBuilder*) setBlobBuilder:(OWSSignalServiceProtosAttachmentPointerBuilder*) builderForValue;
+- (OWSSignalServiceProtosSyncMessageContactsBuilder*) mergeBlob:(OWSSignalServiceProtosAttachmentPointer*) value;
+- (OWSSignalServiceProtosSyncMessageContactsBuilder*) clearBlob;
+@end
+
+#define Groups_blob @"blob"
+@interface OWSSignalServiceProtosSyncMessageGroups : PBGeneratedMessage {
+@private
+ BOOL hasBlob_:1;
+ OWSSignalServiceProtosAttachmentPointer* blob;
+}
+- (BOOL) hasBlob;
+@property (readonly, strong) OWSSignalServiceProtosAttachmentPointer* blob;
+
++ (instancetype) defaultInstance;
+- (instancetype) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (OWSSignalServiceProtosSyncMessageGroupsBuilder*) builder;
++ (OWSSignalServiceProtosSyncMessageGroupsBuilder*) builder;
++ (OWSSignalServiceProtosSyncMessageGroupsBuilder*) builderWithPrototype:(OWSSignalServiceProtosSyncMessageGroups*) prototype;
+- (OWSSignalServiceProtosSyncMessageGroupsBuilder*) toBuilder;
+
++ (OWSSignalServiceProtosSyncMessageGroups*) parseFromData:(NSData*) data;
++ (OWSSignalServiceProtosSyncMessageGroups*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (OWSSignalServiceProtosSyncMessageGroups*) parseFromInputStream:(NSInputStream*) input;
++ (OWSSignalServiceProtosSyncMessageGroups*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (OWSSignalServiceProtosSyncMessageGroups*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (OWSSignalServiceProtosSyncMessageGroups*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface OWSSignalServiceProtosSyncMessageGroupsBuilder : PBGeneratedMessageBuilder {
+@private
+ OWSSignalServiceProtosSyncMessageGroups* resultGroups;
+}
+
+- (OWSSignalServiceProtosSyncMessageGroups*) defaultInstance;
+
+- (OWSSignalServiceProtosSyncMessageGroupsBuilder*) clear;
+- (OWSSignalServiceProtosSyncMessageGroupsBuilder*) clone;
+
+- (OWSSignalServiceProtosSyncMessageGroups*) build;
+- (OWSSignalServiceProtosSyncMessageGroups*) buildPartial;
+
+- (OWSSignalServiceProtosSyncMessageGroupsBuilder*) mergeFrom:(OWSSignalServiceProtosSyncMessageGroups*) other;
+- (OWSSignalServiceProtosSyncMessageGroupsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (OWSSignalServiceProtosSyncMessageGroupsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasBlob;
+- (OWSSignalServiceProtosAttachmentPointer*) blob;
+- (OWSSignalServiceProtosSyncMessageGroupsBuilder*) setBlob:(OWSSignalServiceProtosAttachmentPointer*) value;
+- (OWSSignalServiceProtosSyncMessageGroupsBuilder*) setBlobBuilder:(OWSSignalServiceProtosAttachmentPointerBuilder*) builderForValue;
+- (OWSSignalServiceProtosSyncMessageGroupsBuilder*) mergeBlob:(OWSSignalServiceProtosAttachmentPointer*) value;
+- (OWSSignalServiceProtosSyncMessageGroupsBuilder*) clearBlob;
+@end
+
+#define Request_type @"type"
+@interface OWSSignalServiceProtosSyncMessageRequest : PBGeneratedMessage {
+@private
+ BOOL hasType_:1;
+ OWSSignalServiceProtosSyncMessageRequestType type;
+}
+- (BOOL) hasType;
+@property (readonly) OWSSignalServiceProtosSyncMessageRequestType type;
+
++ (instancetype) defaultInstance;
+- (instancetype) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (OWSSignalServiceProtosSyncMessageRequestBuilder*) builder;
++ (OWSSignalServiceProtosSyncMessageRequestBuilder*) builder;
++ (OWSSignalServiceProtosSyncMessageRequestBuilder*) builderWithPrototype:(OWSSignalServiceProtosSyncMessageRequest*) prototype;
+- (OWSSignalServiceProtosSyncMessageRequestBuilder*) toBuilder;
+
++ (OWSSignalServiceProtosSyncMessageRequest*) parseFromData:(NSData*) data;
++ (OWSSignalServiceProtosSyncMessageRequest*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (OWSSignalServiceProtosSyncMessageRequest*) parseFromInputStream:(NSInputStream*) input;
++ (OWSSignalServiceProtosSyncMessageRequest*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (OWSSignalServiceProtosSyncMessageRequest*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (OWSSignalServiceProtosSyncMessageRequest*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface OWSSignalServiceProtosSyncMessageRequestBuilder : PBGeneratedMessageBuilder {
+@private
+ OWSSignalServiceProtosSyncMessageRequest* resultRequest;
+}
+
+- (OWSSignalServiceProtosSyncMessageRequest*) defaultInstance;
+
+- (OWSSignalServiceProtosSyncMessageRequestBuilder*) clear;
+- (OWSSignalServiceProtosSyncMessageRequestBuilder*) clone;
+
+- (OWSSignalServiceProtosSyncMessageRequest*) build;
+- (OWSSignalServiceProtosSyncMessageRequest*) buildPartial;
+
+- (OWSSignalServiceProtosSyncMessageRequestBuilder*) mergeFrom:(OWSSignalServiceProtosSyncMessageRequest*) other;
+- (OWSSignalServiceProtosSyncMessageRequestBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (OWSSignalServiceProtosSyncMessageRequestBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasType;
+- (OWSSignalServiceProtosSyncMessageRequestType) type;
+- (OWSSignalServiceProtosSyncMessageRequestBuilder*) setType:(OWSSignalServiceProtosSyncMessageRequestType) value;
+- (OWSSignalServiceProtosSyncMessageRequestBuilder*) clearType;
+@end
+
+#define Read_sender @"sender"
+#define Read_timestamp @"timestamp"
+@interface OWSSignalServiceProtosSyncMessageRead : PBGeneratedMessage {
+@private
+ BOOL hasTimestamp_:1;
+ BOOL hasSender_:1;
+ UInt64 timestamp;
+ NSString* sender;
+}
+- (BOOL) hasSender;
+- (BOOL) hasTimestamp;
+@property (readonly, strong) NSString* sender;
+@property (readonly) UInt64 timestamp;
+
++ (instancetype) defaultInstance;
+- (instancetype) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (OWSSignalServiceProtosSyncMessageReadBuilder*) builder;
++ (OWSSignalServiceProtosSyncMessageReadBuilder*) builder;
++ (OWSSignalServiceProtosSyncMessageReadBuilder*) builderWithPrototype:(OWSSignalServiceProtosSyncMessageRead*) prototype;
+- (OWSSignalServiceProtosSyncMessageReadBuilder*) toBuilder;
+
++ (OWSSignalServiceProtosSyncMessageRead*) parseFromData:(NSData*) data;
++ (OWSSignalServiceProtosSyncMessageRead*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (OWSSignalServiceProtosSyncMessageRead*) parseFromInputStream:(NSInputStream*) input;
++ (OWSSignalServiceProtosSyncMessageRead*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (OWSSignalServiceProtosSyncMessageRead*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (OWSSignalServiceProtosSyncMessageRead*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface OWSSignalServiceProtosSyncMessageReadBuilder : PBGeneratedMessageBuilder {
+@private
+ OWSSignalServiceProtosSyncMessageRead* resultRead;
+}
+
+- (OWSSignalServiceProtosSyncMessageRead*) defaultInstance;
+
+- (OWSSignalServiceProtosSyncMessageReadBuilder*) clear;
+- (OWSSignalServiceProtosSyncMessageReadBuilder*) clone;
+
+- (OWSSignalServiceProtosSyncMessageRead*) build;
+- (OWSSignalServiceProtosSyncMessageRead*) buildPartial;
+
+- (OWSSignalServiceProtosSyncMessageReadBuilder*) mergeFrom:(OWSSignalServiceProtosSyncMessageRead*) other;
+- (OWSSignalServiceProtosSyncMessageReadBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (OWSSignalServiceProtosSyncMessageReadBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasSender;
+- (NSString*) sender;
+- (OWSSignalServiceProtosSyncMessageReadBuilder*) setSender:(NSString*) value;
+- (OWSSignalServiceProtosSyncMessageReadBuilder*) clearSender;
+
+- (BOOL) hasTimestamp;
+- (UInt64) timestamp;
+- (OWSSignalServiceProtosSyncMessageReadBuilder*) setTimestamp:(UInt64) value;
+- (OWSSignalServiceProtosSyncMessageReadBuilder*) clearTimestamp;
+@end
+
+@interface OWSSignalServiceProtosSyncMessageBuilder : PBGeneratedMessageBuilder {
+@private
+ OWSSignalServiceProtosSyncMessage* resultSyncMessage;
+}
+
+- (OWSSignalServiceProtosSyncMessage*) defaultInstance;
+
+- (OWSSignalServiceProtosSyncMessageBuilder*) clear;
+- (OWSSignalServiceProtosSyncMessageBuilder*) clone;
+
+- (OWSSignalServiceProtosSyncMessage*) build;
+- (OWSSignalServiceProtosSyncMessage*) buildPartial;
+
+- (OWSSignalServiceProtosSyncMessageBuilder*) mergeFrom:(OWSSignalServiceProtosSyncMessage*) other;
+- (OWSSignalServiceProtosSyncMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (OWSSignalServiceProtosSyncMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasSent;
+- (OWSSignalServiceProtosSyncMessageSent*) sent;
+- (OWSSignalServiceProtosSyncMessageBuilder*) setSent:(OWSSignalServiceProtosSyncMessageSent*) value;
+- (OWSSignalServiceProtosSyncMessageBuilder*) setSentBuilder:(OWSSignalServiceProtosSyncMessageSentBuilder*) builderForValue;
+- (OWSSignalServiceProtosSyncMessageBuilder*) mergeSent:(OWSSignalServiceProtosSyncMessageSent*) value;
+- (OWSSignalServiceProtosSyncMessageBuilder*) clearSent;
+
+- (BOOL) hasContacts;
+- (OWSSignalServiceProtosSyncMessageContacts*) contacts;
+- (OWSSignalServiceProtosSyncMessageBuilder*) setContacts:(OWSSignalServiceProtosSyncMessageContacts*) value;
+- (OWSSignalServiceProtosSyncMessageBuilder*) setContactsBuilder:(OWSSignalServiceProtosSyncMessageContactsBuilder*) builderForValue;
+- (OWSSignalServiceProtosSyncMessageBuilder*) mergeContacts:(OWSSignalServiceProtosSyncMessageContacts*) value;
+- (OWSSignalServiceProtosSyncMessageBuilder*) clearContacts;
+
+- (BOOL) hasGroups;
+- (OWSSignalServiceProtosSyncMessageGroups*) groups;
+- (OWSSignalServiceProtosSyncMessageBuilder*) setGroups:(OWSSignalServiceProtosSyncMessageGroups*) value;
+- (OWSSignalServiceProtosSyncMessageBuilder*) setGroupsBuilder:(OWSSignalServiceProtosSyncMessageGroupsBuilder*) builderForValue;
+- (OWSSignalServiceProtosSyncMessageBuilder*) mergeGroups:(OWSSignalServiceProtosSyncMessageGroups*) value;
+- (OWSSignalServiceProtosSyncMessageBuilder*) clearGroups;
+
+- (BOOL) hasRequest;
+- (OWSSignalServiceProtosSyncMessageRequest*) request;
+- (OWSSignalServiceProtosSyncMessageBuilder*) setRequest:(OWSSignalServiceProtosSyncMessageRequest*) value;
+- (OWSSignalServiceProtosSyncMessageBuilder*) setRequestBuilder:(OWSSignalServiceProtosSyncMessageRequestBuilder*) builderForValue;
+- (OWSSignalServiceProtosSyncMessageBuilder*) mergeRequest:(OWSSignalServiceProtosSyncMessageRequest*) value;
+- (OWSSignalServiceProtosSyncMessageBuilder*) clearRequest;
+
+- (NSMutableArray *)read;
+- (OWSSignalServiceProtosSyncMessageRead*)readAtIndex:(NSUInteger)index;
+- (OWSSignalServiceProtosSyncMessageBuilder *)addRead:(OWSSignalServiceProtosSyncMessageRead*)value;
+- (OWSSignalServiceProtosSyncMessageBuilder *)setReadArray:(NSArray *)array;
+- (OWSSignalServiceProtosSyncMessageBuilder *)clearRead;
+@end
+
+#define AttachmentPointer_id @"id"
+#define AttachmentPointer_contentType @"contentType"
+#define AttachmentPointer_key @"key"
+#define AttachmentPointer_size @"size"
+#define AttachmentPointer_thumbnail @"thumbnail"
+@interface OWSSignalServiceProtosAttachmentPointer : PBGeneratedMessage {
+@private
+ BOOL hasId_:1;
+ BOOL hasContentType_:1;
+ BOOL hasKey_:1;
+ BOOL hasThumbnail_:1;
+ BOOL hasSize_:1;
+ UInt64 id;
+ NSString* contentType;
+ NSData* key;
+ NSData* thumbnail;
+ UInt32 size;
+}
+- (BOOL) hasId;
+- (BOOL) hasContentType;
+- (BOOL) hasKey;
+- (BOOL) hasSize;
+- (BOOL) hasThumbnail;
+@property (readonly) UInt64 id;
+@property (readonly, strong) NSString* contentType;
+@property (readonly, strong) NSData* key;
+@property (readonly) UInt32 size;
+@property (readonly, strong) NSData* thumbnail;
+
++ (instancetype) defaultInstance;
+- (instancetype) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) builder;
++ (OWSSignalServiceProtosAttachmentPointerBuilder*) builder;
++ (OWSSignalServiceProtosAttachmentPointerBuilder*) builderWithPrototype:(OWSSignalServiceProtosAttachmentPointer*) prototype;
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) toBuilder;
+
++ (OWSSignalServiceProtosAttachmentPointer*) parseFromData:(NSData*) data;
++ (OWSSignalServiceProtosAttachmentPointer*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (OWSSignalServiceProtosAttachmentPointer*) parseFromInputStream:(NSInputStream*) input;
++ (OWSSignalServiceProtosAttachmentPointer*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (OWSSignalServiceProtosAttachmentPointer*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (OWSSignalServiceProtosAttachmentPointer*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface OWSSignalServiceProtosAttachmentPointerBuilder : PBGeneratedMessageBuilder {
+@private
+ OWSSignalServiceProtosAttachmentPointer* resultAttachmentPointer;
+}
+
+- (OWSSignalServiceProtosAttachmentPointer*) defaultInstance;
+
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) clear;
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) clone;
+
+- (OWSSignalServiceProtosAttachmentPointer*) build;
+- (OWSSignalServiceProtosAttachmentPointer*) buildPartial;
+
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) mergeFrom:(OWSSignalServiceProtosAttachmentPointer*) other;
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasId;
+- (UInt64) id;
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) setId:(UInt64) value;
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) clearId;
+
+- (BOOL) hasContentType;
+- (NSString*) contentType;
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) setContentType:(NSString*) value;
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) clearContentType;
+
+- (BOOL) hasKey;
+- (NSData*) key;
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) setKey:(NSData*) value;
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) clearKey;
+
+- (BOOL) hasSize;
+- (UInt32) size;
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) setSize:(UInt32) value;
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) clearSize;
+
+- (BOOL) hasThumbnail;
+- (NSData*) thumbnail;
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) setThumbnail:(NSData*) value;
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) clearThumbnail;
+@end
+
+#define GroupContext_id @"id"
+#define GroupContext_type @"type"
+#define GroupContext_name @"name"
+#define GroupContext_members @"members"
+#define GroupContext_avatar @"avatar"
+@interface OWSSignalServiceProtosGroupContext : PBGeneratedMessage {
+@private
+ BOOL hasName_:1;
+ BOOL hasAvatar_:1;
+ BOOL hasId_:1;
+ BOOL hasType_:1;
+ NSString* name;
+ OWSSignalServiceProtosAttachmentPointer* avatar;
+ NSData* id;
+ OWSSignalServiceProtosGroupContextType type;
+ NSMutableArray * membersArray;
+}
+- (BOOL) hasId;
+- (BOOL) hasType;
+- (BOOL) hasName;
+- (BOOL) hasAvatar;
+@property (readonly, strong) NSData* id;
+@property (readonly) OWSSignalServiceProtosGroupContextType type;
+@property (readonly, strong) NSString* name;
+@property (readonly, strong) NSArray * members;
+@property (readonly, strong) OWSSignalServiceProtosAttachmentPointer* avatar;
+- (NSString*)membersAtIndex:(NSUInteger)index;
+
++ (instancetype) defaultInstance;
+- (instancetype) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (OWSSignalServiceProtosGroupContextBuilder*) builder;
++ (OWSSignalServiceProtosGroupContextBuilder*) builder;
++ (OWSSignalServiceProtosGroupContextBuilder*) builderWithPrototype:(OWSSignalServiceProtosGroupContext*) prototype;
+- (OWSSignalServiceProtosGroupContextBuilder*) toBuilder;
+
++ (OWSSignalServiceProtosGroupContext*) parseFromData:(NSData*) data;
++ (OWSSignalServiceProtosGroupContext*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (OWSSignalServiceProtosGroupContext*) parseFromInputStream:(NSInputStream*) input;
++ (OWSSignalServiceProtosGroupContext*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (OWSSignalServiceProtosGroupContext*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (OWSSignalServiceProtosGroupContext*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface OWSSignalServiceProtosGroupContextBuilder : PBGeneratedMessageBuilder {
+@private
+ OWSSignalServiceProtosGroupContext* resultGroupContext;
+}
+
+- (OWSSignalServiceProtosGroupContext*) defaultInstance;
+
+- (OWSSignalServiceProtosGroupContextBuilder*) clear;
+- (OWSSignalServiceProtosGroupContextBuilder*) clone;
+
+- (OWSSignalServiceProtosGroupContext*) build;
+- (OWSSignalServiceProtosGroupContext*) buildPartial;
+
+- (OWSSignalServiceProtosGroupContextBuilder*) mergeFrom:(OWSSignalServiceProtosGroupContext*) other;
+- (OWSSignalServiceProtosGroupContextBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (OWSSignalServiceProtosGroupContextBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasId;
+- (NSData*) id;
+- (OWSSignalServiceProtosGroupContextBuilder*) setId:(NSData*) value;
+- (OWSSignalServiceProtosGroupContextBuilder*) clearId;
+
+- (BOOL) hasType;
+- (OWSSignalServiceProtosGroupContextType) type;
+- (OWSSignalServiceProtosGroupContextBuilder*) setType:(OWSSignalServiceProtosGroupContextType) value;
+- (OWSSignalServiceProtosGroupContextBuilder*) clearType;
+
+- (BOOL) hasName;
+- (NSString*) name;
+- (OWSSignalServiceProtosGroupContextBuilder*) setName:(NSString*) value;
+- (OWSSignalServiceProtosGroupContextBuilder*) clearName;
+
+- (NSMutableArray *)members;
+- (NSString*)membersAtIndex:(NSUInteger)index;
+- (OWSSignalServiceProtosGroupContextBuilder *)addMembers:(NSString*)value;
+- (OWSSignalServiceProtosGroupContextBuilder *)setMembersArray:(NSArray *)array;
+- (OWSSignalServiceProtosGroupContextBuilder *)clearMembers;
+
+- (BOOL) hasAvatar;
+- (OWSSignalServiceProtosAttachmentPointer*) avatar;
+- (OWSSignalServiceProtosGroupContextBuilder*) setAvatar:(OWSSignalServiceProtosAttachmentPointer*) value;
+- (OWSSignalServiceProtosGroupContextBuilder*) setAvatarBuilder:(OWSSignalServiceProtosAttachmentPointerBuilder*) builderForValue;
+- (OWSSignalServiceProtosGroupContextBuilder*) mergeAvatar:(OWSSignalServiceProtosAttachmentPointer*) value;
+- (OWSSignalServiceProtosGroupContextBuilder*) clearAvatar;
+@end
+
+#define ContactDetails_number @"number"
+#define ContactDetails_name @"name"
+#define ContactDetails_avatar @"avatar"
+@interface OWSSignalServiceProtosContactDetails : PBGeneratedMessage {
+@private
+ BOOL hasNumber_:1;
+ BOOL hasName_:1;
+ BOOL hasAvatar_:1;
+ NSString* number;
+ NSString* name;
+ OWSSignalServiceProtosContactDetailsAvatar* avatar;
+}
+- (BOOL) hasNumber;
+- (BOOL) hasName;
+- (BOOL) hasAvatar;
+@property (readonly, strong) NSString* number;
+@property (readonly, strong) NSString* name;
+@property (readonly, strong) OWSSignalServiceProtosContactDetailsAvatar* avatar;
+
++ (instancetype) defaultInstance;
+- (instancetype) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (OWSSignalServiceProtosContactDetailsBuilder*) builder;
++ (OWSSignalServiceProtosContactDetailsBuilder*) builder;
++ (OWSSignalServiceProtosContactDetailsBuilder*) builderWithPrototype:(OWSSignalServiceProtosContactDetails*) prototype;
+- (OWSSignalServiceProtosContactDetailsBuilder*) toBuilder;
+
++ (OWSSignalServiceProtosContactDetails*) parseFromData:(NSData*) data;
++ (OWSSignalServiceProtosContactDetails*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (OWSSignalServiceProtosContactDetails*) parseFromInputStream:(NSInputStream*) input;
++ (OWSSignalServiceProtosContactDetails*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (OWSSignalServiceProtosContactDetails*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (OWSSignalServiceProtosContactDetails*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+#define Avatar_contentType @"contentType"
+#define Avatar_length @"length"
+@interface OWSSignalServiceProtosContactDetailsAvatar : PBGeneratedMessage {
+@private
+ BOOL hasContentType_:1;
+ BOOL hasLength_:1;
+ NSString* contentType;
+ UInt32 length;
+}
+- (BOOL) hasContentType;
+- (BOOL) hasLength;
+@property (readonly, strong) NSString* contentType;
+@property (readonly) UInt32 length;
+
++ (instancetype) defaultInstance;
+- (instancetype) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (OWSSignalServiceProtosContactDetailsAvatarBuilder*) builder;
++ (OWSSignalServiceProtosContactDetailsAvatarBuilder*) builder;
++ (OWSSignalServiceProtosContactDetailsAvatarBuilder*) builderWithPrototype:(OWSSignalServiceProtosContactDetailsAvatar*) prototype;
+- (OWSSignalServiceProtosContactDetailsAvatarBuilder*) toBuilder;
+
++ (OWSSignalServiceProtosContactDetailsAvatar*) parseFromData:(NSData*) data;
++ (OWSSignalServiceProtosContactDetailsAvatar*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (OWSSignalServiceProtosContactDetailsAvatar*) parseFromInputStream:(NSInputStream*) input;
++ (OWSSignalServiceProtosContactDetailsAvatar*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (OWSSignalServiceProtosContactDetailsAvatar*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (OWSSignalServiceProtosContactDetailsAvatar*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface OWSSignalServiceProtosContactDetailsAvatarBuilder : PBGeneratedMessageBuilder {
+@private
+ OWSSignalServiceProtosContactDetailsAvatar* resultAvatar;
+}
+
+- (OWSSignalServiceProtosContactDetailsAvatar*) defaultInstance;
+
+- (OWSSignalServiceProtosContactDetailsAvatarBuilder*) clear;
+- (OWSSignalServiceProtosContactDetailsAvatarBuilder*) clone;
+
+- (OWSSignalServiceProtosContactDetailsAvatar*) build;
+- (OWSSignalServiceProtosContactDetailsAvatar*) buildPartial;
+
+- (OWSSignalServiceProtosContactDetailsAvatarBuilder*) mergeFrom:(OWSSignalServiceProtosContactDetailsAvatar*) other;
+- (OWSSignalServiceProtosContactDetailsAvatarBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (OWSSignalServiceProtosContactDetailsAvatarBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasContentType;
+- (NSString*) contentType;
+- (OWSSignalServiceProtosContactDetailsAvatarBuilder*) setContentType:(NSString*) value;
+- (OWSSignalServiceProtosContactDetailsAvatarBuilder*) clearContentType;
+
+- (BOOL) hasLength;
+- (UInt32) length;
+- (OWSSignalServiceProtosContactDetailsAvatarBuilder*) setLength:(UInt32) value;
+- (OWSSignalServiceProtosContactDetailsAvatarBuilder*) clearLength;
+@end
+
+@interface OWSSignalServiceProtosContactDetailsBuilder : PBGeneratedMessageBuilder {
+@private
+ OWSSignalServiceProtosContactDetails* resultContactDetails;
+}
+
+- (OWSSignalServiceProtosContactDetails*) defaultInstance;
+
+- (OWSSignalServiceProtosContactDetailsBuilder*) clear;
+- (OWSSignalServiceProtosContactDetailsBuilder*) clone;
+
+- (OWSSignalServiceProtosContactDetails*) build;
+- (OWSSignalServiceProtosContactDetails*) buildPartial;
+
+- (OWSSignalServiceProtosContactDetailsBuilder*) mergeFrom:(OWSSignalServiceProtosContactDetails*) other;
+- (OWSSignalServiceProtosContactDetailsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (OWSSignalServiceProtosContactDetailsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasNumber;
+- (NSString*) number;
+- (OWSSignalServiceProtosContactDetailsBuilder*) setNumber:(NSString*) value;
+- (OWSSignalServiceProtosContactDetailsBuilder*) clearNumber;
+
+- (BOOL) hasName;
+- (NSString*) name;
+- (OWSSignalServiceProtosContactDetailsBuilder*) setName:(NSString*) value;
+- (OWSSignalServiceProtosContactDetailsBuilder*) clearName;
+
+- (BOOL) hasAvatar;
+- (OWSSignalServiceProtosContactDetailsAvatar*) avatar;
+- (OWSSignalServiceProtosContactDetailsBuilder*) setAvatar:(OWSSignalServiceProtosContactDetailsAvatar*) value;
+- (OWSSignalServiceProtosContactDetailsBuilder*) setAvatarBuilder:(OWSSignalServiceProtosContactDetailsAvatarBuilder*) builderForValue;
+- (OWSSignalServiceProtosContactDetailsBuilder*) mergeAvatar:(OWSSignalServiceProtosContactDetailsAvatar*) value;
+- (OWSSignalServiceProtosContactDetailsBuilder*) clearAvatar;
+@end
+
+#define GroupDetails_id @"id"
+#define GroupDetails_name @"name"
+#define GroupDetails_members @"members"
+#define GroupDetails_avatar @"avatar"
+#define GroupDetails_active @"active"
+@interface OWSSignalServiceProtosGroupDetails : PBGeneratedMessage {
+@private
+ BOOL hasActive_:1;
+ BOOL hasName_:1;
+ BOOL hasAvatar_:1;
+ BOOL hasId_:1;
+ BOOL active_:1;
+ NSString* name;
+ OWSSignalServiceProtosGroupDetailsAvatar* avatar;
+ NSData* id;
+ NSMutableArray * membersArray;
+}
+- (BOOL) hasId;
+- (BOOL) hasName;
+- (BOOL) hasAvatar;
+- (BOOL) hasActive;
+@property (readonly, strong) NSData* id;
+@property (readonly, strong) NSString* name;
+@property (readonly, strong) NSArray * members;
+@property (readonly, strong) OWSSignalServiceProtosGroupDetailsAvatar* avatar;
+- (BOOL) active;
+- (NSString*)membersAtIndex:(NSUInteger)index;
+
++ (instancetype) defaultInstance;
+- (instancetype) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (OWSSignalServiceProtosGroupDetailsBuilder*) builder;
++ (OWSSignalServiceProtosGroupDetailsBuilder*) builder;
++ (OWSSignalServiceProtosGroupDetailsBuilder*) builderWithPrototype:(OWSSignalServiceProtosGroupDetails*) prototype;
+- (OWSSignalServiceProtosGroupDetailsBuilder*) toBuilder;
+
++ (OWSSignalServiceProtosGroupDetails*) parseFromData:(NSData*) data;
++ (OWSSignalServiceProtosGroupDetails*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (OWSSignalServiceProtosGroupDetails*) parseFromInputStream:(NSInputStream*) input;
++ (OWSSignalServiceProtosGroupDetails*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (OWSSignalServiceProtosGroupDetails*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (OWSSignalServiceProtosGroupDetails*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+#define Avatar_contentType @"contentType"
+#define Avatar_length @"length"
+@interface OWSSignalServiceProtosGroupDetailsAvatar : PBGeneratedMessage {
+@private
+ BOOL hasContentType_:1;
+ BOOL hasLength_:1;
+ NSString* contentType;
+ UInt32 length;
+}
+- (BOOL) hasContentType;
+- (BOOL) hasLength;
+@property (readonly, strong) NSString* contentType;
+@property (readonly) UInt32 length;
+
++ (instancetype) defaultInstance;
+- (instancetype) defaultInstance;
+
+- (BOOL) isInitialized;
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
+- (OWSSignalServiceProtosGroupDetailsAvatarBuilder*) builder;
++ (OWSSignalServiceProtosGroupDetailsAvatarBuilder*) builder;
++ (OWSSignalServiceProtosGroupDetailsAvatarBuilder*) builderWithPrototype:(OWSSignalServiceProtosGroupDetailsAvatar*) prototype;
+- (OWSSignalServiceProtosGroupDetailsAvatarBuilder*) toBuilder;
+
++ (OWSSignalServiceProtosGroupDetailsAvatar*) parseFromData:(NSData*) data;
++ (OWSSignalServiceProtosGroupDetailsAvatar*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (OWSSignalServiceProtosGroupDetailsAvatar*) parseFromInputStream:(NSInputStream*) input;
++ (OWSSignalServiceProtosGroupDetailsAvatar*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
++ (OWSSignalServiceProtosGroupDetailsAvatar*) parseFromCodedInputStream:(PBCodedInputStream*) input;
++ (OWSSignalServiceProtosGroupDetailsAvatar*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+@end
+
+@interface OWSSignalServiceProtosGroupDetailsAvatarBuilder : PBGeneratedMessageBuilder {
+@private
+ OWSSignalServiceProtosGroupDetailsAvatar* resultAvatar;
+}
+
+- (OWSSignalServiceProtosGroupDetailsAvatar*) defaultInstance;
+
+- (OWSSignalServiceProtosGroupDetailsAvatarBuilder*) clear;
+- (OWSSignalServiceProtosGroupDetailsAvatarBuilder*) clone;
+
+- (OWSSignalServiceProtosGroupDetailsAvatar*) build;
+- (OWSSignalServiceProtosGroupDetailsAvatar*) buildPartial;
+
+- (OWSSignalServiceProtosGroupDetailsAvatarBuilder*) mergeFrom:(OWSSignalServiceProtosGroupDetailsAvatar*) other;
+- (OWSSignalServiceProtosGroupDetailsAvatarBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (OWSSignalServiceProtosGroupDetailsAvatarBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasContentType;
+- (NSString*) contentType;
+- (OWSSignalServiceProtosGroupDetailsAvatarBuilder*) setContentType:(NSString*) value;
+- (OWSSignalServiceProtosGroupDetailsAvatarBuilder*) clearContentType;
+
+- (BOOL) hasLength;
+- (UInt32) length;
+- (OWSSignalServiceProtosGroupDetailsAvatarBuilder*) setLength:(UInt32) value;
+- (OWSSignalServiceProtosGroupDetailsAvatarBuilder*) clearLength;
+@end
+
+@interface OWSSignalServiceProtosGroupDetailsBuilder : PBGeneratedMessageBuilder {
+@private
+ OWSSignalServiceProtosGroupDetails* resultGroupDetails;
+}
+
+- (OWSSignalServiceProtosGroupDetails*) defaultInstance;
+
+- (OWSSignalServiceProtosGroupDetailsBuilder*) clear;
+- (OWSSignalServiceProtosGroupDetailsBuilder*) clone;
+
+- (OWSSignalServiceProtosGroupDetails*) build;
+- (OWSSignalServiceProtosGroupDetails*) buildPartial;
+
+- (OWSSignalServiceProtosGroupDetailsBuilder*) mergeFrom:(OWSSignalServiceProtosGroupDetails*) other;
+- (OWSSignalServiceProtosGroupDetailsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input;
+- (OWSSignalServiceProtosGroupDetailsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
+
+- (BOOL) hasId;
+- (NSData*) id;
+- (OWSSignalServiceProtosGroupDetailsBuilder*) setId:(NSData*) value;
+- (OWSSignalServiceProtosGroupDetailsBuilder*) clearId;
+
+- (BOOL) hasName;
+- (NSString*) name;
+- (OWSSignalServiceProtosGroupDetailsBuilder*) setName:(NSString*) value;
+- (OWSSignalServiceProtosGroupDetailsBuilder*) clearName;
+
+- (NSMutableArray *)members;
+- (NSString*)membersAtIndex:(NSUInteger)index;
+- (OWSSignalServiceProtosGroupDetailsBuilder *)addMembers:(NSString*)value;
+- (OWSSignalServiceProtosGroupDetailsBuilder *)setMembersArray:(NSArray *)array;
+- (OWSSignalServiceProtosGroupDetailsBuilder *)clearMembers;
+
+- (BOOL) hasAvatar;
+- (OWSSignalServiceProtosGroupDetailsAvatar*) avatar;
+- (OWSSignalServiceProtosGroupDetailsBuilder*) setAvatar:(OWSSignalServiceProtosGroupDetailsAvatar*) value;
+- (OWSSignalServiceProtosGroupDetailsBuilder*) setAvatarBuilder:(OWSSignalServiceProtosGroupDetailsAvatarBuilder*) builderForValue;
+- (OWSSignalServiceProtosGroupDetailsBuilder*) mergeAvatar:(OWSSignalServiceProtosGroupDetailsAvatar*) value;
+- (OWSSignalServiceProtosGroupDetailsBuilder*) clearAvatar;
+
+- (BOOL) hasActive;
+- (BOOL) active;
+- (OWSSignalServiceProtosGroupDetailsBuilder*) setActive:(BOOL) value;
+- (OWSSignalServiceProtosGroupDetailsBuilder*) clearActive;
+@end
+
+
+// @@protoc_insertion_point(global_scope)
diff --git a/src/Messages/OWSSignalServiceProtos.pb.m b/src/Messages/OWSSignalServiceProtos.pb.m
new file mode 100644
index 0000000000..4579e1e27e
--- /dev/null
+++ b/src/Messages/OWSSignalServiceProtos.pb.m
@@ -0,0 +1,5213 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+
+#import "OWSSignalServiceProtos.pb.h"
+// @@protoc_insertion_point(imports)
+
+@implementation OWSSignalServiceProtosOwssignalServiceProtosRoot
+static PBExtensionRegistry* extensionRegistry = nil;
++ (PBExtensionRegistry*) extensionRegistry {
+ return extensionRegistry;
+}
+
++ (void) initialize {
+ if (self == [OWSSignalServiceProtosOwssignalServiceProtosRoot class]) {
+ PBMutableExtensionRegistry* registry = [PBMutableExtensionRegistry registry];
+ [self registerAllExtensions:registry];
+ [ObjectivecDescriptorRoot registerAllExtensions:registry];
+ extensionRegistry = registry;
+ }
+}
++ (void) registerAllExtensions:(PBMutableExtensionRegistry*) registry {
+}
+@end
+
+@interface OWSSignalServiceProtosEnvelope ()
+@property OWSSignalServiceProtosEnvelopeType type;
+@property (strong) NSString* source;
+@property UInt32 sourceDevice;
+@property (strong) NSString* relay;
+@property UInt64 timestamp;
+@property (strong) NSData* legacyMessage;
+@property (strong) NSData* content;
+@end
+
+@implementation OWSSignalServiceProtosEnvelope
+
+- (BOOL) hasType {
+ return !!hasType_;
+}
+- (void) setHasType:(BOOL) _value_ {
+ hasType_ = !!_value_;
+}
+@synthesize type;
+- (BOOL) hasSource {
+ return !!hasSource_;
+}
+- (void) setHasSource:(BOOL) _value_ {
+ hasSource_ = !!_value_;
+}
+@synthesize source;
+- (BOOL) hasSourceDevice {
+ return !!hasSourceDevice_;
+}
+- (void) setHasSourceDevice:(BOOL) _value_ {
+ hasSourceDevice_ = !!_value_;
+}
+@synthesize sourceDevice;
+- (BOOL) hasRelay {
+ return !!hasRelay_;
+}
+- (void) setHasRelay:(BOOL) _value_ {
+ hasRelay_ = !!_value_;
+}
+@synthesize relay;
+- (BOOL) hasTimestamp {
+ return !!hasTimestamp_;
+}
+- (void) setHasTimestamp:(BOOL) _value_ {
+ hasTimestamp_ = !!_value_;
+}
+@synthesize timestamp;
+- (BOOL) hasLegacyMessage {
+ return !!hasLegacyMessage_;
+}
+- (void) setHasLegacyMessage:(BOOL) _value_ {
+ hasLegacyMessage_ = !!_value_;
+}
+@synthesize legacyMessage;
+- (BOOL) hasContent {
+ return !!hasContent_;
+}
+- (void) setHasContent:(BOOL) _value_ {
+ hasContent_ = !!_value_;
+}
+@synthesize content;
+- (instancetype) init {
+ if ((self = [super init])) {
+ self.type = OWSSignalServiceProtosEnvelopeTypeUnknown;
+ self.source = @"";
+ self.sourceDevice = 0;
+ self.relay = @"";
+ self.timestamp = 0L;
+ self.legacyMessage = [NSData data];
+ self.content = [NSData data];
+ }
+ return self;
+}
+static OWSSignalServiceProtosEnvelope* defaultOWSSignalServiceProtosEnvelopeInstance = nil;
++ (void) initialize {
+ if (self == [OWSSignalServiceProtosEnvelope class]) {
+ defaultOWSSignalServiceProtosEnvelopeInstance = [[OWSSignalServiceProtosEnvelope alloc] init];
+ }
+}
++ (instancetype) defaultInstance {
+ return defaultOWSSignalServiceProtosEnvelopeInstance;
+}
+- (instancetype) defaultInstance {
+ return defaultOWSSignalServiceProtosEnvelopeInstance;
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasType) {
+ [output writeEnum:1 value:self.type];
+ }
+ if (self.hasSource) {
+ [output writeString:2 value:self.source];
+ }
+ if (self.hasRelay) {
+ [output writeString:3 value:self.relay];
+ }
+ if (self.hasTimestamp) {
+ [output writeUInt64:5 value:self.timestamp];
+ }
+ if (self.hasLegacyMessage) {
+ [output writeData:6 value:self.legacyMessage];
+ }
+ if (self.hasSourceDevice) {
+ [output writeUInt32:7 value:self.sourceDevice];
+ }
+ if (self.hasContent) {
+ [output writeData:8 value:self.content];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (SInt32) serializedSize {
+ __block SInt32 size_ = memoizedSerializedSize;
+ if (size_ != -1) {
+ return size_;
+ }
+
+ size_ = 0;
+ if (self.hasType) {
+ size_ += computeEnumSize(1, self.type);
+ }
+ if (self.hasSource) {
+ size_ += computeStringSize(2, self.source);
+ }
+ if (self.hasRelay) {
+ size_ += computeStringSize(3, self.relay);
+ }
+ if (self.hasTimestamp) {
+ size_ += computeUInt64Size(5, self.timestamp);
+ }
+ if (self.hasLegacyMessage) {
+ size_ += computeDataSize(6, self.legacyMessage);
+ }
+ if (self.hasSourceDevice) {
+ size_ += computeUInt32Size(7, self.sourceDevice);
+ }
+ if (self.hasContent) {
+ size_ += computeDataSize(8, self.content);
+ }
+ size_ += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size_;
+ return size_;
+}
++ (OWSSignalServiceProtosEnvelope*) parseFromData:(NSData*) data {
+ return (OWSSignalServiceProtosEnvelope*)[[[OWSSignalServiceProtosEnvelope builder] mergeFromData:data] build];
+}
++ (OWSSignalServiceProtosEnvelope*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosEnvelope*)[[[OWSSignalServiceProtosEnvelope builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosEnvelope*) parseFromInputStream:(NSInputStream*) input {
+ return (OWSSignalServiceProtosEnvelope*)[[[OWSSignalServiceProtosEnvelope builder] mergeFromInputStream:input] build];
+}
++ (OWSSignalServiceProtosEnvelope*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosEnvelope*)[[[OWSSignalServiceProtosEnvelope builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosEnvelope*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (OWSSignalServiceProtosEnvelope*)[[[OWSSignalServiceProtosEnvelope builder] mergeFromCodedInputStream:input] build];
+}
++ (OWSSignalServiceProtosEnvelope*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosEnvelope*)[[[OWSSignalServiceProtosEnvelope builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosEnvelopeBuilder*) builder {
+ return [[OWSSignalServiceProtosEnvelopeBuilder alloc] init];
+}
++ (OWSSignalServiceProtosEnvelopeBuilder*) builderWithPrototype:(OWSSignalServiceProtosEnvelope*) prototype {
+ return [[OWSSignalServiceProtosEnvelope builder] mergeFrom:prototype];
+}
+- (OWSSignalServiceProtosEnvelopeBuilder*) builder {
+ return [OWSSignalServiceProtosEnvelope builder];
+}
+- (OWSSignalServiceProtosEnvelopeBuilder*) toBuilder {
+ return [OWSSignalServiceProtosEnvelope builderWithPrototype:self];
+}
+- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
+ if (self.hasType) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"type", NSStringFromOWSSignalServiceProtosEnvelopeType(self.type)];
+ }
+ if (self.hasSource) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"source", self.source];
+ }
+ if (self.hasRelay) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"relay", self.relay];
+ }
+ if (self.hasTimestamp) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"timestamp", [NSNumber numberWithLongLong:self.timestamp]];
+ }
+ if (self.hasLegacyMessage) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"legacyMessage", self.legacyMessage];
+ }
+ if (self.hasSourceDevice) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"sourceDevice", [NSNumber numberWithInteger:self.sourceDevice]];
+ }
+ if (self.hasContent) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"content", self.content];
+ }
+ [self.unknownFields writeDescriptionTo:output withIndent:indent];
+}
+- (void) storeInDictionary:(NSMutableDictionary *)dictionary {
+ if (self.hasType) {
+ [dictionary setObject: @(self.type) forKey: @"type"];
+ }
+ if (self.hasSource) {
+ [dictionary setObject: self.source forKey: @"source"];
+ }
+ if (self.hasRelay) {
+ [dictionary setObject: self.relay forKey: @"relay"];
+ }
+ if (self.hasTimestamp) {
+ [dictionary setObject: [NSNumber numberWithLongLong:self.timestamp] forKey: @"timestamp"];
+ }
+ if (self.hasLegacyMessage) {
+ [dictionary setObject: self.legacyMessage forKey: @"legacyMessage"];
+ }
+ if (self.hasSourceDevice) {
+ [dictionary setObject: [NSNumber numberWithInteger:self.sourceDevice] forKey: @"sourceDevice"];
+ }
+ if (self.hasContent) {
+ [dictionary setObject: self.content forKey: @"content"];
+ }
+ [self.unknownFields storeInDictionary:dictionary];
+}
+- (BOOL) isEqual:(id)other {
+ if (other == self) {
+ return YES;
+ }
+ if (![other isKindOfClass:[OWSSignalServiceProtosEnvelope class]]) {
+ return NO;
+ }
+ OWSSignalServiceProtosEnvelope *otherMessage = other;
+ return
+ self.hasType == otherMessage.hasType &&
+ (!self.hasType || self.type == otherMessage.type) &&
+ self.hasSource == otherMessage.hasSource &&
+ (!self.hasSource || [self.source isEqual:otherMessage.source]) &&
+ self.hasRelay == otherMessage.hasRelay &&
+ (!self.hasRelay || [self.relay isEqual:otherMessage.relay]) &&
+ self.hasTimestamp == otherMessage.hasTimestamp &&
+ (!self.hasTimestamp || self.timestamp == otherMessage.timestamp) &&
+ self.hasLegacyMessage == otherMessage.hasLegacyMessage &&
+ (!self.hasLegacyMessage || [self.legacyMessage isEqual:otherMessage.legacyMessage]) &&
+ self.hasSourceDevice == otherMessage.hasSourceDevice &&
+ (!self.hasSourceDevice || self.sourceDevice == otherMessage.sourceDevice) &&
+ self.hasContent == otherMessage.hasContent &&
+ (!self.hasContent || [self.content isEqual:otherMessage.content]) &&
+ (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
+}
+- (NSUInteger) hash {
+ __block NSUInteger hashCode = 7;
+ if (self.hasType) {
+ hashCode = hashCode * 31 + self.type;
+ }
+ if (self.hasSource) {
+ hashCode = hashCode * 31 + [self.source hash];
+ }
+ if (self.hasRelay) {
+ hashCode = hashCode * 31 + [self.relay hash];
+ }
+ if (self.hasTimestamp) {
+ hashCode = hashCode * 31 + [[NSNumber numberWithLongLong:self.timestamp] hash];
+ }
+ if (self.hasLegacyMessage) {
+ hashCode = hashCode * 31 + [self.legacyMessage hash];
+ }
+ if (self.hasSourceDevice) {
+ hashCode = hashCode * 31 + [[NSNumber numberWithInteger:self.sourceDevice] hash];
+ }
+ if (self.hasContent) {
+ hashCode = hashCode * 31 + [self.content hash];
+ }
+ hashCode = hashCode * 31 + [self.unknownFields hash];
+ return hashCode;
+}
+@end
+
+BOOL OWSSignalServiceProtosEnvelopeTypeIsValidValue(OWSSignalServiceProtosEnvelopeType value) {
+ switch (value) {
+ case OWSSignalServiceProtosEnvelopeTypeUnknown:
+ case OWSSignalServiceProtosEnvelopeTypeCiphertext:
+ case OWSSignalServiceProtosEnvelopeTypeKeyExchange:
+ case OWSSignalServiceProtosEnvelopeTypePrekeyBundle:
+ case OWSSignalServiceProtosEnvelopeTypeReceipt:
+ return YES;
+ default:
+ return NO;
+ }
+}
+NSString *NSStringFromOWSSignalServiceProtosEnvelopeType(OWSSignalServiceProtosEnvelopeType value) {
+ switch (value) {
+ case OWSSignalServiceProtosEnvelopeTypeUnknown:
+ return @"OWSSignalServiceProtosEnvelopeTypeUnknown";
+ case OWSSignalServiceProtosEnvelopeTypeCiphertext:
+ return @"OWSSignalServiceProtosEnvelopeTypeCiphertext";
+ case OWSSignalServiceProtosEnvelopeTypeKeyExchange:
+ return @"OWSSignalServiceProtosEnvelopeTypeKeyExchange";
+ case OWSSignalServiceProtosEnvelopeTypePrekeyBundle:
+ return @"OWSSignalServiceProtosEnvelopeTypePrekeyBundle";
+ case OWSSignalServiceProtosEnvelopeTypeReceipt:
+ return @"OWSSignalServiceProtosEnvelopeTypeReceipt";
+ default:
+ return nil;
+ }
+}
+
+@interface OWSSignalServiceProtosEnvelopeBuilder()
+@property (strong) OWSSignalServiceProtosEnvelope* resultEnvelope;
+@end
+
+@implementation OWSSignalServiceProtosEnvelopeBuilder
+@synthesize resultEnvelope;
+- (instancetype) init {
+ if ((self = [super init])) {
+ self.resultEnvelope = [[OWSSignalServiceProtosEnvelope alloc] init];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return resultEnvelope;
+}
+- (OWSSignalServiceProtosEnvelopeBuilder*) clear {
+ self.resultEnvelope = [[OWSSignalServiceProtosEnvelope alloc] init];
+ return self;
+}
+- (OWSSignalServiceProtosEnvelopeBuilder*) clone {
+ return [OWSSignalServiceProtosEnvelope builderWithPrototype:resultEnvelope];
+}
+- (OWSSignalServiceProtosEnvelope*) defaultInstance {
+ return [OWSSignalServiceProtosEnvelope defaultInstance];
+}
+- (OWSSignalServiceProtosEnvelope*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (OWSSignalServiceProtosEnvelope*) buildPartial {
+ OWSSignalServiceProtosEnvelope* returnMe = resultEnvelope;
+ self.resultEnvelope = nil;
+ return returnMe;
+}
+- (OWSSignalServiceProtosEnvelopeBuilder*) mergeFrom:(OWSSignalServiceProtosEnvelope*) other {
+ if (other == [OWSSignalServiceProtosEnvelope defaultInstance]) {
+ return self;
+ }
+ if (other.hasType) {
+ [self setType:other.type];
+ }
+ if (other.hasSource) {
+ [self setSource:other.source];
+ }
+ if (other.hasSourceDevice) {
+ [self setSourceDevice:other.sourceDevice];
+ }
+ if (other.hasRelay) {
+ [self setRelay:other.relay];
+ }
+ if (other.hasTimestamp) {
+ [self setTimestamp:other.timestamp];
+ }
+ if (other.hasLegacyMessage) {
+ [self setLegacyMessage:other.legacyMessage];
+ }
+ if (other.hasContent) {
+ [self setContent:other.content];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (OWSSignalServiceProtosEnvelopeBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (OWSSignalServiceProtosEnvelopeBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ SInt32 tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 8: {
+ OWSSignalServiceProtosEnvelopeType value = (OWSSignalServiceProtosEnvelopeType)[input readEnum];
+ if (OWSSignalServiceProtosEnvelopeTypeIsValidValue(value)) {
+ [self setType:value];
+ } else {
+ [unknownFields mergeVarintField:1 value:value];
+ }
+ break;
+ }
+ case 18: {
+ [self setSource:[input readString]];
+ break;
+ }
+ case 26: {
+ [self setRelay:[input readString]];
+ break;
+ }
+ case 40: {
+ [self setTimestamp:[input readUInt64]];
+ break;
+ }
+ case 50: {
+ [self setLegacyMessage:[input readData]];
+ break;
+ }
+ case 56: {
+ [self setSourceDevice:[input readUInt32]];
+ break;
+ }
+ case 66: {
+ [self setContent:[input readData]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasType {
+ return resultEnvelope.hasType;
+}
+- (OWSSignalServiceProtosEnvelopeType) type {
+ return resultEnvelope.type;
+}
+- (OWSSignalServiceProtosEnvelopeBuilder*) setType:(OWSSignalServiceProtosEnvelopeType) value {
+ resultEnvelope.hasType = YES;
+ resultEnvelope.type = value;
+ return self;
+}
+- (OWSSignalServiceProtosEnvelopeBuilder*) clearType {
+ resultEnvelope.hasType = NO;
+ resultEnvelope.type = OWSSignalServiceProtosEnvelopeTypeUnknown;
+ return self;
+}
+- (BOOL) hasSource {
+ return resultEnvelope.hasSource;
+}
+- (NSString*) source {
+ return resultEnvelope.source;
+}
+- (OWSSignalServiceProtosEnvelopeBuilder*) setSource:(NSString*) value {
+ resultEnvelope.hasSource = YES;
+ resultEnvelope.source = value;
+ return self;
+}
+- (OWSSignalServiceProtosEnvelopeBuilder*) clearSource {
+ resultEnvelope.hasSource = NO;
+ resultEnvelope.source = @"";
+ return self;
+}
+- (BOOL) hasSourceDevice {
+ return resultEnvelope.hasSourceDevice;
+}
+- (UInt32) sourceDevice {
+ return resultEnvelope.sourceDevice;
+}
+- (OWSSignalServiceProtosEnvelopeBuilder*) setSourceDevice:(UInt32) value {
+ resultEnvelope.hasSourceDevice = YES;
+ resultEnvelope.sourceDevice = value;
+ return self;
+}
+- (OWSSignalServiceProtosEnvelopeBuilder*) clearSourceDevice {
+ resultEnvelope.hasSourceDevice = NO;
+ resultEnvelope.sourceDevice = 0;
+ return self;
+}
+- (BOOL) hasRelay {
+ return resultEnvelope.hasRelay;
+}
+- (NSString*) relay {
+ return resultEnvelope.relay;
+}
+- (OWSSignalServiceProtosEnvelopeBuilder*) setRelay:(NSString*) value {
+ resultEnvelope.hasRelay = YES;
+ resultEnvelope.relay = value;
+ return self;
+}
+- (OWSSignalServiceProtosEnvelopeBuilder*) clearRelay {
+ resultEnvelope.hasRelay = NO;
+ resultEnvelope.relay = @"";
+ return self;
+}
+- (BOOL) hasTimestamp {
+ return resultEnvelope.hasTimestamp;
+}
+- (UInt64) timestamp {
+ return resultEnvelope.timestamp;
+}
+- (OWSSignalServiceProtosEnvelopeBuilder*) setTimestamp:(UInt64) value {
+ resultEnvelope.hasTimestamp = YES;
+ resultEnvelope.timestamp = value;
+ return self;
+}
+- (OWSSignalServiceProtosEnvelopeBuilder*) clearTimestamp {
+ resultEnvelope.hasTimestamp = NO;
+ resultEnvelope.timestamp = 0L;
+ return self;
+}
+- (BOOL) hasLegacyMessage {
+ return resultEnvelope.hasLegacyMessage;
+}
+- (NSData*) legacyMessage {
+ return resultEnvelope.legacyMessage;
+}
+- (OWSSignalServiceProtosEnvelopeBuilder*) setLegacyMessage:(NSData*) value {
+ resultEnvelope.hasLegacyMessage = YES;
+ resultEnvelope.legacyMessage = value;
+ return self;
+}
+- (OWSSignalServiceProtosEnvelopeBuilder*) clearLegacyMessage {
+ resultEnvelope.hasLegacyMessage = NO;
+ resultEnvelope.legacyMessage = [NSData data];
+ return self;
+}
+- (BOOL) hasContent {
+ return resultEnvelope.hasContent;
+}
+- (NSData*) content {
+ return resultEnvelope.content;
+}
+- (OWSSignalServiceProtosEnvelopeBuilder*) setContent:(NSData*) value {
+ resultEnvelope.hasContent = YES;
+ resultEnvelope.content = value;
+ return self;
+}
+- (OWSSignalServiceProtosEnvelopeBuilder*) clearContent {
+ resultEnvelope.hasContent = NO;
+ resultEnvelope.content = [NSData data];
+ return self;
+}
+@end
+
+@interface OWSSignalServiceProtosContent ()
+@property (strong) OWSSignalServiceProtosDataMessage* dataMessage;
+@property (strong) OWSSignalServiceProtosSyncMessage* syncMessage;
+@end
+
+@implementation OWSSignalServiceProtosContent
+
+- (BOOL) hasDataMessage {
+ return !!hasDataMessage_;
+}
+- (void) setHasDataMessage:(BOOL) _value_ {
+ hasDataMessage_ = !!_value_;
+}
+@synthesize dataMessage;
+- (BOOL) hasSyncMessage {
+ return !!hasSyncMessage_;
+}
+- (void) setHasSyncMessage:(BOOL) _value_ {
+ hasSyncMessage_ = !!_value_;
+}
+@synthesize syncMessage;
+- (instancetype) init {
+ if ((self = [super init])) {
+ self.dataMessage = [OWSSignalServiceProtosDataMessage defaultInstance];
+ self.syncMessage = [OWSSignalServiceProtosSyncMessage defaultInstance];
+ }
+ return self;
+}
+static OWSSignalServiceProtosContent* defaultOWSSignalServiceProtosContentInstance = nil;
++ (void) initialize {
+ if (self == [OWSSignalServiceProtosContent class]) {
+ defaultOWSSignalServiceProtosContentInstance = [[OWSSignalServiceProtosContent alloc] init];
+ }
+}
++ (instancetype) defaultInstance {
+ return defaultOWSSignalServiceProtosContentInstance;
+}
+- (instancetype) defaultInstance {
+ return defaultOWSSignalServiceProtosContentInstance;
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasDataMessage) {
+ [output writeMessage:1 value:self.dataMessage];
+ }
+ if (self.hasSyncMessage) {
+ [output writeMessage:2 value:self.syncMessage];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (SInt32) serializedSize {
+ __block SInt32 size_ = memoizedSerializedSize;
+ if (size_ != -1) {
+ return size_;
+ }
+
+ size_ = 0;
+ if (self.hasDataMessage) {
+ size_ += computeMessageSize(1, self.dataMessage);
+ }
+ if (self.hasSyncMessage) {
+ size_ += computeMessageSize(2, self.syncMessage);
+ }
+ size_ += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size_;
+ return size_;
+}
++ (OWSSignalServiceProtosContent*) parseFromData:(NSData*) data {
+ return (OWSSignalServiceProtosContent*)[[[OWSSignalServiceProtosContent builder] mergeFromData:data] build];
+}
++ (OWSSignalServiceProtosContent*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosContent*)[[[OWSSignalServiceProtosContent builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosContent*) parseFromInputStream:(NSInputStream*) input {
+ return (OWSSignalServiceProtosContent*)[[[OWSSignalServiceProtosContent builder] mergeFromInputStream:input] build];
+}
++ (OWSSignalServiceProtosContent*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosContent*)[[[OWSSignalServiceProtosContent builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosContent*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (OWSSignalServiceProtosContent*)[[[OWSSignalServiceProtosContent builder] mergeFromCodedInputStream:input] build];
+}
++ (OWSSignalServiceProtosContent*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosContent*)[[[OWSSignalServiceProtosContent builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosContentBuilder*) builder {
+ return [[OWSSignalServiceProtosContentBuilder alloc] init];
+}
++ (OWSSignalServiceProtosContentBuilder*) builderWithPrototype:(OWSSignalServiceProtosContent*) prototype {
+ return [[OWSSignalServiceProtosContent builder] mergeFrom:prototype];
+}
+- (OWSSignalServiceProtosContentBuilder*) builder {
+ return [OWSSignalServiceProtosContent builder];
+}
+- (OWSSignalServiceProtosContentBuilder*) toBuilder {
+ return [OWSSignalServiceProtosContent builderWithPrototype:self];
+}
+- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
+ if (self.hasDataMessage) {
+ [output appendFormat:@"%@%@ {\n", indent, @"dataMessage"];
+ [self.dataMessage writeDescriptionTo:output
+ withIndent:[NSString stringWithFormat:@"%@ ", indent]];
+ [output appendFormat:@"%@}\n", indent];
+ }
+ if (self.hasSyncMessage) {
+ [output appendFormat:@"%@%@ {\n", indent, @"syncMessage"];
+ [self.syncMessage writeDescriptionTo:output
+ withIndent:[NSString stringWithFormat:@"%@ ", indent]];
+ [output appendFormat:@"%@}\n", indent];
+ }
+ [self.unknownFields writeDescriptionTo:output withIndent:indent];
+}
+- (void) storeInDictionary:(NSMutableDictionary *)dictionary {
+ if (self.hasDataMessage) {
+ NSMutableDictionary *messageDictionary = [NSMutableDictionary dictionary];
+ [self.dataMessage storeInDictionary:messageDictionary];
+ [dictionary setObject:[NSDictionary dictionaryWithDictionary:messageDictionary] forKey:@"dataMessage"];
+ }
+ if (self.hasSyncMessage) {
+ NSMutableDictionary *messageDictionary = [NSMutableDictionary dictionary];
+ [self.syncMessage storeInDictionary:messageDictionary];
+ [dictionary setObject:[NSDictionary dictionaryWithDictionary:messageDictionary] forKey:@"syncMessage"];
+ }
+ [self.unknownFields storeInDictionary:dictionary];
+}
+- (BOOL) isEqual:(id)other {
+ if (other == self) {
+ return YES;
+ }
+ if (![other isKindOfClass:[OWSSignalServiceProtosContent class]]) {
+ return NO;
+ }
+ OWSSignalServiceProtosContent *otherMessage = other;
+ return
+ self.hasDataMessage == otherMessage.hasDataMessage &&
+ (!self.hasDataMessage || [self.dataMessage isEqual:otherMessage.dataMessage]) &&
+ self.hasSyncMessage == otherMessage.hasSyncMessage &&
+ (!self.hasSyncMessage || [self.syncMessage isEqual:otherMessage.syncMessage]) &&
+ (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
+}
+- (NSUInteger) hash {
+ __block NSUInteger hashCode = 7;
+ if (self.hasDataMessage) {
+ hashCode = hashCode * 31 + [self.dataMessage hash];
+ }
+ if (self.hasSyncMessage) {
+ hashCode = hashCode * 31 + [self.syncMessage hash];
+ }
+ hashCode = hashCode * 31 + [self.unknownFields hash];
+ return hashCode;
+}
+@end
+
+@interface OWSSignalServiceProtosContentBuilder()
+@property (strong) OWSSignalServiceProtosContent* resultContent;
+@end
+
+@implementation OWSSignalServiceProtosContentBuilder
+@synthesize resultContent;
+- (instancetype) init {
+ if ((self = [super init])) {
+ self.resultContent = [[OWSSignalServiceProtosContent alloc] init];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return resultContent;
+}
+- (OWSSignalServiceProtosContentBuilder*) clear {
+ self.resultContent = [[OWSSignalServiceProtosContent alloc] init];
+ return self;
+}
+- (OWSSignalServiceProtosContentBuilder*) clone {
+ return [OWSSignalServiceProtosContent builderWithPrototype:resultContent];
+}
+- (OWSSignalServiceProtosContent*) defaultInstance {
+ return [OWSSignalServiceProtosContent defaultInstance];
+}
+- (OWSSignalServiceProtosContent*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (OWSSignalServiceProtosContent*) buildPartial {
+ OWSSignalServiceProtosContent* returnMe = resultContent;
+ self.resultContent = nil;
+ return returnMe;
+}
+- (OWSSignalServiceProtosContentBuilder*) mergeFrom:(OWSSignalServiceProtosContent*) other {
+ if (other == [OWSSignalServiceProtosContent defaultInstance]) {
+ return self;
+ }
+ if (other.hasDataMessage) {
+ [self mergeDataMessage:other.dataMessage];
+ }
+ if (other.hasSyncMessage) {
+ [self mergeSyncMessage:other.syncMessage];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (OWSSignalServiceProtosContentBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (OWSSignalServiceProtosContentBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ SInt32 tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 10: {
+ OWSSignalServiceProtosDataMessageBuilder* subBuilder = [OWSSignalServiceProtosDataMessage builder];
+ if (self.hasDataMessage) {
+ [subBuilder mergeFrom:self.dataMessage];
+ }
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self setDataMessage:[subBuilder buildPartial]];
+ break;
+ }
+ case 18: {
+ OWSSignalServiceProtosSyncMessageBuilder* subBuilder = [OWSSignalServiceProtosSyncMessage builder];
+ if (self.hasSyncMessage) {
+ [subBuilder mergeFrom:self.syncMessage];
+ }
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self setSyncMessage:[subBuilder buildPartial]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasDataMessage {
+ return resultContent.hasDataMessage;
+}
+- (OWSSignalServiceProtosDataMessage*) dataMessage {
+ return resultContent.dataMessage;
+}
+- (OWSSignalServiceProtosContentBuilder*) setDataMessage:(OWSSignalServiceProtosDataMessage*) value {
+ resultContent.hasDataMessage = YES;
+ resultContent.dataMessage = value;
+ return self;
+}
+- (OWSSignalServiceProtosContentBuilder*) setDataMessageBuilder:(OWSSignalServiceProtosDataMessageBuilder*) builderForValue {
+ return [self setDataMessage:[builderForValue build]];
+}
+- (OWSSignalServiceProtosContentBuilder*) mergeDataMessage:(OWSSignalServiceProtosDataMessage*) value {
+ if (resultContent.hasDataMessage &&
+ resultContent.dataMessage != [OWSSignalServiceProtosDataMessage defaultInstance]) {
+ resultContent.dataMessage =
+ [[[OWSSignalServiceProtosDataMessage builderWithPrototype:resultContent.dataMessage] mergeFrom:value] buildPartial];
+ } else {
+ resultContent.dataMessage = value;
+ }
+ resultContent.hasDataMessage = YES;
+ return self;
+}
+- (OWSSignalServiceProtosContentBuilder*) clearDataMessage {
+ resultContent.hasDataMessage = NO;
+ resultContent.dataMessage = [OWSSignalServiceProtosDataMessage defaultInstance];
+ return self;
+}
+- (BOOL) hasSyncMessage {
+ return resultContent.hasSyncMessage;
+}
+- (OWSSignalServiceProtosSyncMessage*) syncMessage {
+ return resultContent.syncMessage;
+}
+- (OWSSignalServiceProtosContentBuilder*) setSyncMessage:(OWSSignalServiceProtosSyncMessage*) value {
+ resultContent.hasSyncMessage = YES;
+ resultContent.syncMessage = value;
+ return self;
+}
+- (OWSSignalServiceProtosContentBuilder*) setSyncMessageBuilder:(OWSSignalServiceProtosSyncMessageBuilder*) builderForValue {
+ return [self setSyncMessage:[builderForValue build]];
+}
+- (OWSSignalServiceProtosContentBuilder*) mergeSyncMessage:(OWSSignalServiceProtosSyncMessage*) value {
+ if (resultContent.hasSyncMessage &&
+ resultContent.syncMessage != [OWSSignalServiceProtosSyncMessage defaultInstance]) {
+ resultContent.syncMessage =
+ [[[OWSSignalServiceProtosSyncMessage builderWithPrototype:resultContent.syncMessage] mergeFrom:value] buildPartial];
+ } else {
+ resultContent.syncMessage = value;
+ }
+ resultContent.hasSyncMessage = YES;
+ return self;
+}
+- (OWSSignalServiceProtosContentBuilder*) clearSyncMessage {
+ resultContent.hasSyncMessage = NO;
+ resultContent.syncMessage = [OWSSignalServiceProtosSyncMessage defaultInstance];
+ return self;
+}
+@end
+
+@interface OWSSignalServiceProtosDataMessage ()
+@property (strong) NSString* body;
+@property (strong) NSMutableArray * attachmentsArray;
+@property (strong) OWSSignalServiceProtosGroupContext* group;
+@property UInt32 flags;
+@end
+
+@implementation OWSSignalServiceProtosDataMessage
+
+- (BOOL) hasBody {
+ return !!hasBody_;
+}
+- (void) setHasBody:(BOOL) _value_ {
+ hasBody_ = !!_value_;
+}
+@synthesize body;
+@synthesize attachmentsArray;
+@dynamic attachments;
+- (BOOL) hasGroup {
+ return !!hasGroup_;
+}
+- (void) setHasGroup:(BOOL) _value_ {
+ hasGroup_ = !!_value_;
+}
+@synthesize group;
+- (BOOL) hasFlags {
+ return !!hasFlags_;
+}
+- (void) setHasFlags:(BOOL) _value_ {
+ hasFlags_ = !!_value_;
+}
+@synthesize flags;
+- (instancetype) init {
+ if ((self = [super init])) {
+ self.body = @"";
+ self.group = [OWSSignalServiceProtosGroupContext defaultInstance];
+ self.flags = 0;
+ }
+ return self;
+}
+static OWSSignalServiceProtosDataMessage* defaultOWSSignalServiceProtosDataMessageInstance = nil;
++ (void) initialize {
+ if (self == [OWSSignalServiceProtosDataMessage class]) {
+ defaultOWSSignalServiceProtosDataMessageInstance = [[OWSSignalServiceProtosDataMessage alloc] init];
+ }
+}
++ (instancetype) defaultInstance {
+ return defaultOWSSignalServiceProtosDataMessageInstance;
+}
+- (instancetype) defaultInstance {
+ return defaultOWSSignalServiceProtosDataMessageInstance;
+}
+- (NSArray *)attachments {
+ return attachmentsArray;
+}
+- (OWSSignalServiceProtosAttachmentPointer*)attachmentsAtIndex:(NSUInteger)index {
+ return [attachmentsArray objectAtIndex:index];
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasBody) {
+ [output writeString:1 value:self.body];
+ }
+ [self.attachmentsArray enumerateObjectsUsingBlock:^(OWSSignalServiceProtosAttachmentPointer *element, NSUInteger idx, BOOL *stop) {
+ [output writeMessage:2 value:element];
+ }];
+ if (self.hasGroup) {
+ [output writeMessage:3 value:self.group];
+ }
+ if (self.hasFlags) {
+ [output writeUInt32:4 value:self.flags];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (SInt32) serializedSize {
+ __block SInt32 size_ = memoizedSerializedSize;
+ if (size_ != -1) {
+ return size_;
+ }
+
+ size_ = 0;
+ if (self.hasBody) {
+ size_ += computeStringSize(1, self.body);
+ }
+ [self.attachmentsArray enumerateObjectsUsingBlock:^(OWSSignalServiceProtosAttachmentPointer *element, NSUInteger idx, BOOL *stop) {
+ size_ += computeMessageSize(2, element);
+ }];
+ if (self.hasGroup) {
+ size_ += computeMessageSize(3, self.group);
+ }
+ if (self.hasFlags) {
+ size_ += computeUInt32Size(4, self.flags);
+ }
+ size_ += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size_;
+ return size_;
+}
++ (OWSSignalServiceProtosDataMessage*) parseFromData:(NSData*) data {
+ return (OWSSignalServiceProtosDataMessage*)[[[OWSSignalServiceProtosDataMessage builder] mergeFromData:data] build];
+}
++ (OWSSignalServiceProtosDataMessage*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosDataMessage*)[[[OWSSignalServiceProtosDataMessage builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosDataMessage*) parseFromInputStream:(NSInputStream*) input {
+ return (OWSSignalServiceProtosDataMessage*)[[[OWSSignalServiceProtosDataMessage builder] mergeFromInputStream:input] build];
+}
++ (OWSSignalServiceProtosDataMessage*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosDataMessage*)[[[OWSSignalServiceProtosDataMessage builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosDataMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (OWSSignalServiceProtosDataMessage*)[[[OWSSignalServiceProtosDataMessage builder] mergeFromCodedInputStream:input] build];
+}
++ (OWSSignalServiceProtosDataMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosDataMessage*)[[[OWSSignalServiceProtosDataMessage builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosDataMessageBuilder*) builder {
+ return [[OWSSignalServiceProtosDataMessageBuilder alloc] init];
+}
++ (OWSSignalServiceProtosDataMessageBuilder*) builderWithPrototype:(OWSSignalServiceProtosDataMessage*) prototype {
+ return [[OWSSignalServiceProtosDataMessage builder] mergeFrom:prototype];
+}
+- (OWSSignalServiceProtosDataMessageBuilder*) builder {
+ return [OWSSignalServiceProtosDataMessage builder];
+}
+- (OWSSignalServiceProtosDataMessageBuilder*) toBuilder {
+ return [OWSSignalServiceProtosDataMessage builderWithPrototype:self];
+}
+- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
+ if (self.hasBody) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"body", self.body];
+ }
+ [self.attachmentsArray enumerateObjectsUsingBlock:^(OWSSignalServiceProtosAttachmentPointer *element, NSUInteger idx, BOOL *stop) {
+ [output appendFormat:@"%@%@ {\n", indent, @"attachments"];
+ [element writeDescriptionTo:output
+ withIndent:[NSString stringWithFormat:@"%@ ", indent]];
+ [output appendFormat:@"%@}\n", indent];
+ }];
+ if (self.hasGroup) {
+ [output appendFormat:@"%@%@ {\n", indent, @"group"];
+ [self.group writeDescriptionTo:output
+ withIndent:[NSString stringWithFormat:@"%@ ", indent]];
+ [output appendFormat:@"%@}\n", indent];
+ }
+ if (self.hasFlags) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"flags", [NSNumber numberWithInteger:self.flags]];
+ }
+ [self.unknownFields writeDescriptionTo:output withIndent:indent];
+}
+- (void) storeInDictionary:(NSMutableDictionary *)dictionary {
+ if (self.hasBody) {
+ [dictionary setObject: self.body forKey: @"body"];
+ }
+ for (OWSSignalServiceProtosAttachmentPointer* element in self.attachmentsArray) {
+ NSMutableDictionary *elementDictionary = [NSMutableDictionary dictionary];
+ [element storeInDictionary:elementDictionary];
+ [dictionary setObject:[NSDictionary dictionaryWithDictionary:elementDictionary] forKey:@"attachments"];
+ }
+ if (self.hasGroup) {
+ NSMutableDictionary *messageDictionary = [NSMutableDictionary dictionary];
+ [self.group storeInDictionary:messageDictionary];
+ [dictionary setObject:[NSDictionary dictionaryWithDictionary:messageDictionary] forKey:@"group"];
+ }
+ if (self.hasFlags) {
+ [dictionary setObject: [NSNumber numberWithInteger:self.flags] forKey: @"flags"];
+ }
+ [self.unknownFields storeInDictionary:dictionary];
+}
+- (BOOL) isEqual:(id)other {
+ if (other == self) {
+ return YES;
+ }
+ if (![other isKindOfClass:[OWSSignalServiceProtosDataMessage class]]) {
+ return NO;
+ }
+ OWSSignalServiceProtosDataMessage *otherMessage = other;
+ return
+ self.hasBody == otherMessage.hasBody &&
+ (!self.hasBody || [self.body isEqual:otherMessage.body]) &&
+ [self.attachmentsArray isEqualToArray:otherMessage.attachmentsArray] &&
+ self.hasGroup == otherMessage.hasGroup &&
+ (!self.hasGroup || [self.group isEqual:otherMessage.group]) &&
+ self.hasFlags == otherMessage.hasFlags &&
+ (!self.hasFlags || self.flags == otherMessage.flags) &&
+ (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
+}
+- (NSUInteger) hash {
+ __block NSUInteger hashCode = 7;
+ if (self.hasBody) {
+ hashCode = hashCode * 31 + [self.body hash];
+ }
+ [self.attachmentsArray enumerateObjectsUsingBlock:^(OWSSignalServiceProtosAttachmentPointer *element, NSUInteger idx, BOOL *stop) {
+ hashCode = hashCode * 31 + [element hash];
+ }];
+ if (self.hasGroup) {
+ hashCode = hashCode * 31 + [self.group hash];
+ }
+ if (self.hasFlags) {
+ hashCode = hashCode * 31 + [[NSNumber numberWithInteger:self.flags] hash];
+ }
+ hashCode = hashCode * 31 + [self.unknownFields hash];
+ return hashCode;
+}
+@end
+
+BOOL OWSSignalServiceProtosDataMessageFlagsIsValidValue(OWSSignalServiceProtosDataMessageFlags value) {
+ switch (value) {
+ case OWSSignalServiceProtosDataMessageFlagsEndSession:
+ return YES;
+ default:
+ return NO;
+ }
+}
+NSString *NSStringFromOWSSignalServiceProtosDataMessageFlags(OWSSignalServiceProtosDataMessageFlags value) {
+ switch (value) {
+ case OWSSignalServiceProtosDataMessageFlagsEndSession:
+ return @"OWSSignalServiceProtosDataMessageFlagsEndSession";
+ default:
+ return nil;
+ }
+}
+
+@interface OWSSignalServiceProtosDataMessageBuilder()
+@property (strong) OWSSignalServiceProtosDataMessage* resultDataMessage;
+@end
+
+@implementation OWSSignalServiceProtosDataMessageBuilder
+@synthesize resultDataMessage;
+- (instancetype) init {
+ if ((self = [super init])) {
+ self.resultDataMessage = [[OWSSignalServiceProtosDataMessage alloc] init];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return resultDataMessage;
+}
+- (OWSSignalServiceProtosDataMessageBuilder*) clear {
+ self.resultDataMessage = [[OWSSignalServiceProtosDataMessage alloc] init];
+ return self;
+}
+- (OWSSignalServiceProtosDataMessageBuilder*) clone {
+ return [OWSSignalServiceProtosDataMessage builderWithPrototype:resultDataMessage];
+}
+- (OWSSignalServiceProtosDataMessage*) defaultInstance {
+ return [OWSSignalServiceProtosDataMessage defaultInstance];
+}
+- (OWSSignalServiceProtosDataMessage*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (OWSSignalServiceProtosDataMessage*) buildPartial {
+ OWSSignalServiceProtosDataMessage* returnMe = resultDataMessage;
+ self.resultDataMessage = nil;
+ return returnMe;
+}
+- (OWSSignalServiceProtosDataMessageBuilder*) mergeFrom:(OWSSignalServiceProtosDataMessage*) other {
+ if (other == [OWSSignalServiceProtosDataMessage defaultInstance]) {
+ return self;
+ }
+ if (other.hasBody) {
+ [self setBody:other.body];
+ }
+ if (other.attachmentsArray.count > 0) {
+ if (resultDataMessage.attachmentsArray == nil) {
+ resultDataMessage.attachmentsArray = [[NSMutableArray alloc] initWithArray:other.attachmentsArray];
+ } else {
+ [resultDataMessage.attachmentsArray addObjectsFromArray:other.attachmentsArray];
+ }
+ }
+ if (other.hasGroup) {
+ [self mergeGroup:other.group];
+ }
+ if (other.hasFlags) {
+ [self setFlags:other.flags];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (OWSSignalServiceProtosDataMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (OWSSignalServiceProtosDataMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ SInt32 tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 10: {
+ [self setBody:[input readString]];
+ break;
+ }
+ case 18: {
+ OWSSignalServiceProtosAttachmentPointerBuilder* subBuilder = [OWSSignalServiceProtosAttachmentPointer builder];
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self addAttachments:[subBuilder buildPartial]];
+ break;
+ }
+ case 26: {
+ OWSSignalServiceProtosGroupContextBuilder* subBuilder = [OWSSignalServiceProtosGroupContext builder];
+ if (self.hasGroup) {
+ [subBuilder mergeFrom:self.group];
+ }
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self setGroup:[subBuilder buildPartial]];
+ break;
+ }
+ case 32: {
+ [self setFlags:[input readUInt32]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasBody {
+ return resultDataMessage.hasBody;
+}
+- (NSString*) body {
+ return resultDataMessage.body;
+}
+- (OWSSignalServiceProtosDataMessageBuilder*) setBody:(NSString*) value {
+ resultDataMessage.hasBody = YES;
+ resultDataMessage.body = value;
+ return self;
+}
+- (OWSSignalServiceProtosDataMessageBuilder*) clearBody {
+ resultDataMessage.hasBody = NO;
+ resultDataMessage.body = @"";
+ return self;
+}
+- (NSMutableArray *)attachments {
+ return resultDataMessage.attachmentsArray;
+}
+- (OWSSignalServiceProtosAttachmentPointer*)attachmentsAtIndex:(NSUInteger)index {
+ return [resultDataMessage attachmentsAtIndex:index];
+}
+- (OWSSignalServiceProtosDataMessageBuilder *)addAttachments:(OWSSignalServiceProtosAttachmentPointer*)value {
+ if (resultDataMessage.attachmentsArray == nil) {
+ resultDataMessage.attachmentsArray = [[NSMutableArray alloc]init];
+ }
+ [resultDataMessage.attachmentsArray addObject:value];
+ return self;
+}
+- (OWSSignalServiceProtosDataMessageBuilder *)setAttachmentsArray:(NSArray *)array {
+ resultDataMessage.attachmentsArray = [[NSMutableArray alloc]initWithArray:array];
+ return self;
+}
+- (OWSSignalServiceProtosDataMessageBuilder *)clearAttachments {
+ resultDataMessage.attachmentsArray = nil;
+ return self;
+}
+- (BOOL) hasGroup {
+ return resultDataMessage.hasGroup;
+}
+- (OWSSignalServiceProtosGroupContext*) group {
+ return resultDataMessage.group;
+}
+- (OWSSignalServiceProtosDataMessageBuilder*) setGroup:(OWSSignalServiceProtosGroupContext*) value {
+ resultDataMessage.hasGroup = YES;
+ resultDataMessage.group = value;
+ return self;
+}
+- (OWSSignalServiceProtosDataMessageBuilder*) setGroupBuilder:(OWSSignalServiceProtosGroupContextBuilder*) builderForValue {
+ return [self setGroup:[builderForValue build]];
+}
+- (OWSSignalServiceProtosDataMessageBuilder*) mergeGroup:(OWSSignalServiceProtosGroupContext*) value {
+ if (resultDataMessage.hasGroup &&
+ resultDataMessage.group != [OWSSignalServiceProtosGroupContext defaultInstance]) {
+ resultDataMessage.group =
+ [[[OWSSignalServiceProtosGroupContext builderWithPrototype:resultDataMessage.group] mergeFrom:value] buildPartial];
+ } else {
+ resultDataMessage.group = value;
+ }
+ resultDataMessage.hasGroup = YES;
+ return self;
+}
+- (OWSSignalServiceProtosDataMessageBuilder*) clearGroup {
+ resultDataMessage.hasGroup = NO;
+ resultDataMessage.group = [OWSSignalServiceProtosGroupContext defaultInstance];
+ return self;
+}
+- (BOOL) hasFlags {
+ return resultDataMessage.hasFlags;
+}
+- (UInt32) flags {
+ return resultDataMessage.flags;
+}
+- (OWSSignalServiceProtosDataMessageBuilder*) setFlags:(UInt32) value {
+ resultDataMessage.hasFlags = YES;
+ resultDataMessage.flags = value;
+ return self;
+}
+- (OWSSignalServiceProtosDataMessageBuilder*) clearFlags {
+ resultDataMessage.hasFlags = NO;
+ resultDataMessage.flags = 0;
+ return self;
+}
+@end
+
+@interface OWSSignalServiceProtosSyncMessage ()
+@property (strong) OWSSignalServiceProtosSyncMessageSent* sent;
+@property (strong) OWSSignalServiceProtosSyncMessageContacts* contacts;
+@property (strong) OWSSignalServiceProtosSyncMessageGroups* groups;
+@property (strong) OWSSignalServiceProtosSyncMessageRequest* request;
+@property (strong) NSMutableArray * readArray;
+@end
+
+@implementation OWSSignalServiceProtosSyncMessage
+
+- (BOOL) hasSent {
+ return !!hasSent_;
+}
+- (void) setHasSent:(BOOL) _value_ {
+ hasSent_ = !!_value_;
+}
+@synthesize sent;
+- (BOOL) hasContacts {
+ return !!hasContacts_;
+}
+- (void) setHasContacts:(BOOL) _value_ {
+ hasContacts_ = !!_value_;
+}
+@synthesize contacts;
+- (BOOL) hasGroups {
+ return !!hasGroups_;
+}
+- (void) setHasGroups:(BOOL) _value_ {
+ hasGroups_ = !!_value_;
+}
+@synthesize groups;
+- (BOOL) hasRequest {
+ return !!hasRequest_;
+}
+- (void) setHasRequest:(BOOL) _value_ {
+ hasRequest_ = !!_value_;
+}
+@synthesize request;
+@synthesize readArray;
+@dynamic read;
+- (instancetype) init {
+ if ((self = [super init])) {
+ self.sent = [OWSSignalServiceProtosSyncMessageSent defaultInstance];
+ self.contacts = [OWSSignalServiceProtosSyncMessageContacts defaultInstance];
+ self.groups = [OWSSignalServiceProtosSyncMessageGroups defaultInstance];
+ self.request = [OWSSignalServiceProtosSyncMessageRequest defaultInstance];
+ }
+ return self;
+}
+static OWSSignalServiceProtosSyncMessage* defaultOWSSignalServiceProtosSyncMessageInstance = nil;
++ (void) initialize {
+ if (self == [OWSSignalServiceProtosSyncMessage class]) {
+ defaultOWSSignalServiceProtosSyncMessageInstance = [[OWSSignalServiceProtosSyncMessage alloc] init];
+ }
+}
++ (instancetype) defaultInstance {
+ return defaultOWSSignalServiceProtosSyncMessageInstance;
+}
+- (instancetype) defaultInstance {
+ return defaultOWSSignalServiceProtosSyncMessageInstance;
+}
+- (NSArray *)read {
+ return readArray;
+}
+- (OWSSignalServiceProtosSyncMessageRead*)readAtIndex:(NSUInteger)index {
+ return [readArray objectAtIndex:index];
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasSent) {
+ [output writeMessage:1 value:self.sent];
+ }
+ if (self.hasContacts) {
+ [output writeMessage:2 value:self.contacts];
+ }
+ if (self.hasGroups) {
+ [output writeMessage:3 value:self.groups];
+ }
+ if (self.hasRequest) {
+ [output writeMessage:4 value:self.request];
+ }
+ [self.readArray enumerateObjectsUsingBlock:^(OWSSignalServiceProtosSyncMessageRead *element, NSUInteger idx, BOOL *stop) {
+ [output writeMessage:5 value:element];
+ }];
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (SInt32) serializedSize {
+ __block SInt32 size_ = memoizedSerializedSize;
+ if (size_ != -1) {
+ return size_;
+ }
+
+ size_ = 0;
+ if (self.hasSent) {
+ size_ += computeMessageSize(1, self.sent);
+ }
+ if (self.hasContacts) {
+ size_ += computeMessageSize(2, self.contacts);
+ }
+ if (self.hasGroups) {
+ size_ += computeMessageSize(3, self.groups);
+ }
+ if (self.hasRequest) {
+ size_ += computeMessageSize(4, self.request);
+ }
+ [self.readArray enumerateObjectsUsingBlock:^(OWSSignalServiceProtosSyncMessageRead *element, NSUInteger idx, BOOL *stop) {
+ size_ += computeMessageSize(5, element);
+ }];
+ size_ += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size_;
+ return size_;
+}
++ (OWSSignalServiceProtosSyncMessage*) parseFromData:(NSData*) data {
+ return (OWSSignalServiceProtosSyncMessage*)[[[OWSSignalServiceProtosSyncMessage builder] mergeFromData:data] build];
+}
++ (OWSSignalServiceProtosSyncMessage*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosSyncMessage*)[[[OWSSignalServiceProtosSyncMessage builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosSyncMessage*) parseFromInputStream:(NSInputStream*) input {
+ return (OWSSignalServiceProtosSyncMessage*)[[[OWSSignalServiceProtosSyncMessage builder] mergeFromInputStream:input] build];
+}
++ (OWSSignalServiceProtosSyncMessage*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosSyncMessage*)[[[OWSSignalServiceProtosSyncMessage builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosSyncMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (OWSSignalServiceProtosSyncMessage*)[[[OWSSignalServiceProtosSyncMessage builder] mergeFromCodedInputStream:input] build];
+}
++ (OWSSignalServiceProtosSyncMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosSyncMessage*)[[[OWSSignalServiceProtosSyncMessage builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosSyncMessageBuilder*) builder {
+ return [[OWSSignalServiceProtosSyncMessageBuilder alloc] init];
+}
++ (OWSSignalServiceProtosSyncMessageBuilder*) builderWithPrototype:(OWSSignalServiceProtosSyncMessage*) prototype {
+ return [[OWSSignalServiceProtosSyncMessage builder] mergeFrom:prototype];
+}
+- (OWSSignalServiceProtosSyncMessageBuilder*) builder {
+ return [OWSSignalServiceProtosSyncMessage builder];
+}
+- (OWSSignalServiceProtosSyncMessageBuilder*) toBuilder {
+ return [OWSSignalServiceProtosSyncMessage builderWithPrototype:self];
+}
+- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
+ if (self.hasSent) {
+ [output appendFormat:@"%@%@ {\n", indent, @"sent"];
+ [self.sent writeDescriptionTo:output
+ withIndent:[NSString stringWithFormat:@"%@ ", indent]];
+ [output appendFormat:@"%@}\n", indent];
+ }
+ if (self.hasContacts) {
+ [output appendFormat:@"%@%@ {\n", indent, @"contacts"];
+ [self.contacts writeDescriptionTo:output
+ withIndent:[NSString stringWithFormat:@"%@ ", indent]];
+ [output appendFormat:@"%@}\n", indent];
+ }
+ if (self.hasGroups) {
+ [output appendFormat:@"%@%@ {\n", indent, @"groups"];
+ [self.groups writeDescriptionTo:output
+ withIndent:[NSString stringWithFormat:@"%@ ", indent]];
+ [output appendFormat:@"%@}\n", indent];
+ }
+ if (self.hasRequest) {
+ [output appendFormat:@"%@%@ {\n", indent, @"request"];
+ [self.request writeDescriptionTo:output
+ withIndent:[NSString stringWithFormat:@"%@ ", indent]];
+ [output appendFormat:@"%@}\n", indent];
+ }
+ [self.readArray enumerateObjectsUsingBlock:^(OWSSignalServiceProtosSyncMessageRead *element, NSUInteger idx, BOOL *stop) {
+ [output appendFormat:@"%@%@ {\n", indent, @"read"];
+ [element writeDescriptionTo:output
+ withIndent:[NSString stringWithFormat:@"%@ ", indent]];
+ [output appendFormat:@"%@}\n", indent];
+ }];
+ [self.unknownFields writeDescriptionTo:output withIndent:indent];
+}
+- (void) storeInDictionary:(NSMutableDictionary *)dictionary {
+ if (self.hasSent) {
+ NSMutableDictionary *messageDictionary = [NSMutableDictionary dictionary];
+ [self.sent storeInDictionary:messageDictionary];
+ [dictionary setObject:[NSDictionary dictionaryWithDictionary:messageDictionary] forKey:@"sent"];
+ }
+ if (self.hasContacts) {
+ NSMutableDictionary *messageDictionary = [NSMutableDictionary dictionary];
+ [self.contacts storeInDictionary:messageDictionary];
+ [dictionary setObject:[NSDictionary dictionaryWithDictionary:messageDictionary] forKey:@"contacts"];
+ }
+ if (self.hasGroups) {
+ NSMutableDictionary *messageDictionary = [NSMutableDictionary dictionary];
+ [self.groups storeInDictionary:messageDictionary];
+ [dictionary setObject:[NSDictionary dictionaryWithDictionary:messageDictionary] forKey:@"groups"];
+ }
+ if (self.hasRequest) {
+ NSMutableDictionary *messageDictionary = [NSMutableDictionary dictionary];
+ [self.request storeInDictionary:messageDictionary];
+ [dictionary setObject:[NSDictionary dictionaryWithDictionary:messageDictionary] forKey:@"request"];
+ }
+ for (OWSSignalServiceProtosSyncMessageRead* element in self.readArray) {
+ NSMutableDictionary *elementDictionary = [NSMutableDictionary dictionary];
+ [element storeInDictionary:elementDictionary];
+ [dictionary setObject:[NSDictionary dictionaryWithDictionary:elementDictionary] forKey:@"read"];
+ }
+ [self.unknownFields storeInDictionary:dictionary];
+}
+- (BOOL) isEqual:(id)other {
+ if (other == self) {
+ return YES;
+ }
+ if (![other isKindOfClass:[OWSSignalServiceProtosSyncMessage class]]) {
+ return NO;
+ }
+ OWSSignalServiceProtosSyncMessage *otherMessage = other;
+ return
+ self.hasSent == otherMessage.hasSent &&
+ (!self.hasSent || [self.sent isEqual:otherMessage.sent]) &&
+ self.hasContacts == otherMessage.hasContacts &&
+ (!self.hasContacts || [self.contacts isEqual:otherMessage.contacts]) &&
+ self.hasGroups == otherMessage.hasGroups &&
+ (!self.hasGroups || [self.groups isEqual:otherMessage.groups]) &&
+ self.hasRequest == otherMessage.hasRequest &&
+ (!self.hasRequest || [self.request isEqual:otherMessage.request]) &&
+ [self.readArray isEqualToArray:otherMessage.readArray] &&
+ (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
+}
+- (NSUInteger) hash {
+ __block NSUInteger hashCode = 7;
+ if (self.hasSent) {
+ hashCode = hashCode * 31 + [self.sent hash];
+ }
+ if (self.hasContacts) {
+ hashCode = hashCode * 31 + [self.contacts hash];
+ }
+ if (self.hasGroups) {
+ hashCode = hashCode * 31 + [self.groups hash];
+ }
+ if (self.hasRequest) {
+ hashCode = hashCode * 31 + [self.request hash];
+ }
+ [self.readArray enumerateObjectsUsingBlock:^(OWSSignalServiceProtosSyncMessageRead *element, NSUInteger idx, BOOL *stop) {
+ hashCode = hashCode * 31 + [element hash];
+ }];
+ hashCode = hashCode * 31 + [self.unknownFields hash];
+ return hashCode;
+}
+@end
+
+@interface OWSSignalServiceProtosSyncMessageSent ()
+@property (strong) NSString* destination;
+@property UInt64 timestamp;
+@property (strong) OWSSignalServiceProtosDataMessage* message;
+@end
+
+@implementation OWSSignalServiceProtosSyncMessageSent
+
+- (BOOL) hasDestination {
+ return !!hasDestination_;
+}
+- (void) setHasDestination:(BOOL) _value_ {
+ hasDestination_ = !!_value_;
+}
+@synthesize destination;
+- (BOOL) hasTimestamp {
+ return !!hasTimestamp_;
+}
+- (void) setHasTimestamp:(BOOL) _value_ {
+ hasTimestamp_ = !!_value_;
+}
+@synthesize timestamp;
+- (BOOL) hasMessage {
+ return !!hasMessage_;
+}
+- (void) setHasMessage:(BOOL) _value_ {
+ hasMessage_ = !!_value_;
+}
+@synthesize message;
+- (instancetype) init {
+ if ((self = [super init])) {
+ self.destination = @"";
+ self.timestamp = 0L;
+ self.message = [OWSSignalServiceProtosDataMessage defaultInstance];
+ }
+ return self;
+}
+static OWSSignalServiceProtosSyncMessageSent* defaultOWSSignalServiceProtosSyncMessageSentInstance = nil;
++ (void) initialize {
+ if (self == [OWSSignalServiceProtosSyncMessageSent class]) {
+ defaultOWSSignalServiceProtosSyncMessageSentInstance = [[OWSSignalServiceProtosSyncMessageSent alloc] init];
+ }
+}
++ (instancetype) defaultInstance {
+ return defaultOWSSignalServiceProtosSyncMessageSentInstance;
+}
+- (instancetype) defaultInstance {
+ return defaultOWSSignalServiceProtosSyncMessageSentInstance;
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasDestination) {
+ [output writeString:1 value:self.destination];
+ }
+ if (self.hasTimestamp) {
+ [output writeUInt64:2 value:self.timestamp];
+ }
+ if (self.hasMessage) {
+ [output writeMessage:3 value:self.message];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (SInt32) serializedSize {
+ __block SInt32 size_ = memoizedSerializedSize;
+ if (size_ != -1) {
+ return size_;
+ }
+
+ size_ = 0;
+ if (self.hasDestination) {
+ size_ += computeStringSize(1, self.destination);
+ }
+ if (self.hasTimestamp) {
+ size_ += computeUInt64Size(2, self.timestamp);
+ }
+ if (self.hasMessage) {
+ size_ += computeMessageSize(3, self.message);
+ }
+ size_ += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size_;
+ return size_;
+}
++ (OWSSignalServiceProtosSyncMessageSent*) parseFromData:(NSData*) data {
+ return (OWSSignalServiceProtosSyncMessageSent*)[[[OWSSignalServiceProtosSyncMessageSent builder] mergeFromData:data] build];
+}
++ (OWSSignalServiceProtosSyncMessageSent*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosSyncMessageSent*)[[[OWSSignalServiceProtosSyncMessageSent builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosSyncMessageSent*) parseFromInputStream:(NSInputStream*) input {
+ return (OWSSignalServiceProtosSyncMessageSent*)[[[OWSSignalServiceProtosSyncMessageSent builder] mergeFromInputStream:input] build];
+}
++ (OWSSignalServiceProtosSyncMessageSent*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosSyncMessageSent*)[[[OWSSignalServiceProtosSyncMessageSent builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosSyncMessageSent*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (OWSSignalServiceProtosSyncMessageSent*)[[[OWSSignalServiceProtosSyncMessageSent builder] mergeFromCodedInputStream:input] build];
+}
++ (OWSSignalServiceProtosSyncMessageSent*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosSyncMessageSent*)[[[OWSSignalServiceProtosSyncMessageSent builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosSyncMessageSentBuilder*) builder {
+ return [[OWSSignalServiceProtosSyncMessageSentBuilder alloc] init];
+}
++ (OWSSignalServiceProtosSyncMessageSentBuilder*) builderWithPrototype:(OWSSignalServiceProtosSyncMessageSent*) prototype {
+ return [[OWSSignalServiceProtosSyncMessageSent builder] mergeFrom:prototype];
+}
+- (OWSSignalServiceProtosSyncMessageSentBuilder*) builder {
+ return [OWSSignalServiceProtosSyncMessageSent builder];
+}
+- (OWSSignalServiceProtosSyncMessageSentBuilder*) toBuilder {
+ return [OWSSignalServiceProtosSyncMessageSent builderWithPrototype:self];
+}
+- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
+ if (self.hasDestination) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"destination", self.destination];
+ }
+ if (self.hasTimestamp) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"timestamp", [NSNumber numberWithLongLong:self.timestamp]];
+ }
+ if (self.hasMessage) {
+ [output appendFormat:@"%@%@ {\n", indent, @"message"];
+ [self.message writeDescriptionTo:output
+ withIndent:[NSString stringWithFormat:@"%@ ", indent]];
+ [output appendFormat:@"%@}\n", indent];
+ }
+ [self.unknownFields writeDescriptionTo:output withIndent:indent];
+}
+- (void) storeInDictionary:(NSMutableDictionary *)dictionary {
+ if (self.hasDestination) {
+ [dictionary setObject: self.destination forKey: @"destination"];
+ }
+ if (self.hasTimestamp) {
+ [dictionary setObject: [NSNumber numberWithLongLong:self.timestamp] forKey: @"timestamp"];
+ }
+ if (self.hasMessage) {
+ NSMutableDictionary *messageDictionary = [NSMutableDictionary dictionary];
+ [self.message storeInDictionary:messageDictionary];
+ [dictionary setObject:[NSDictionary dictionaryWithDictionary:messageDictionary] forKey:@"message"];
+ }
+ [self.unknownFields storeInDictionary:dictionary];
+}
+- (BOOL) isEqual:(id)other {
+ if (other == self) {
+ return YES;
+ }
+ if (![other isKindOfClass:[OWSSignalServiceProtosSyncMessageSent class]]) {
+ return NO;
+ }
+ OWSSignalServiceProtosSyncMessageSent *otherMessage = other;
+ return
+ self.hasDestination == otherMessage.hasDestination &&
+ (!self.hasDestination || [self.destination isEqual:otherMessage.destination]) &&
+ self.hasTimestamp == otherMessage.hasTimestamp &&
+ (!self.hasTimestamp || self.timestamp == otherMessage.timestamp) &&
+ self.hasMessage == otherMessage.hasMessage &&
+ (!self.hasMessage || [self.message isEqual:otherMessage.message]) &&
+ (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
+}
+- (NSUInteger) hash {
+ __block NSUInteger hashCode = 7;
+ if (self.hasDestination) {
+ hashCode = hashCode * 31 + [self.destination hash];
+ }
+ if (self.hasTimestamp) {
+ hashCode = hashCode * 31 + [[NSNumber numberWithLongLong:self.timestamp] hash];
+ }
+ if (self.hasMessage) {
+ hashCode = hashCode * 31 + [self.message hash];
+ }
+ hashCode = hashCode * 31 + [self.unknownFields hash];
+ return hashCode;
+}
+@end
+
+@interface OWSSignalServiceProtosSyncMessageSentBuilder()
+@property (strong) OWSSignalServiceProtosSyncMessageSent* resultSent;
+@end
+
+@implementation OWSSignalServiceProtosSyncMessageSentBuilder
+@synthesize resultSent;
+- (instancetype) init {
+ if ((self = [super init])) {
+ self.resultSent = [[OWSSignalServiceProtosSyncMessageSent alloc] init];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return resultSent;
+}
+- (OWSSignalServiceProtosSyncMessageSentBuilder*) clear {
+ self.resultSent = [[OWSSignalServiceProtosSyncMessageSent alloc] init];
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageSentBuilder*) clone {
+ return [OWSSignalServiceProtosSyncMessageSent builderWithPrototype:resultSent];
+}
+- (OWSSignalServiceProtosSyncMessageSent*) defaultInstance {
+ return [OWSSignalServiceProtosSyncMessageSent defaultInstance];
+}
+- (OWSSignalServiceProtosSyncMessageSent*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (OWSSignalServiceProtosSyncMessageSent*) buildPartial {
+ OWSSignalServiceProtosSyncMessageSent* returnMe = resultSent;
+ self.resultSent = nil;
+ return returnMe;
+}
+- (OWSSignalServiceProtosSyncMessageSentBuilder*) mergeFrom:(OWSSignalServiceProtosSyncMessageSent*) other {
+ if (other == [OWSSignalServiceProtosSyncMessageSent defaultInstance]) {
+ return self;
+ }
+ if (other.hasDestination) {
+ [self setDestination:other.destination];
+ }
+ if (other.hasTimestamp) {
+ [self setTimestamp:other.timestamp];
+ }
+ if (other.hasMessage) {
+ [self mergeMessage:other.message];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageSentBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (OWSSignalServiceProtosSyncMessageSentBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ SInt32 tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 10: {
+ [self setDestination:[input readString]];
+ break;
+ }
+ case 16: {
+ [self setTimestamp:[input readUInt64]];
+ break;
+ }
+ case 26: {
+ OWSSignalServiceProtosDataMessageBuilder* subBuilder = [OWSSignalServiceProtosDataMessage builder];
+ if (self.hasMessage) {
+ [subBuilder mergeFrom:self.message];
+ }
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self setMessage:[subBuilder buildPartial]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasDestination {
+ return resultSent.hasDestination;
+}
+- (NSString*) destination {
+ return resultSent.destination;
+}
+- (OWSSignalServiceProtosSyncMessageSentBuilder*) setDestination:(NSString*) value {
+ resultSent.hasDestination = YES;
+ resultSent.destination = value;
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageSentBuilder*) clearDestination {
+ resultSent.hasDestination = NO;
+ resultSent.destination = @"";
+ return self;
+}
+- (BOOL) hasTimestamp {
+ return resultSent.hasTimestamp;
+}
+- (UInt64) timestamp {
+ return resultSent.timestamp;
+}
+- (OWSSignalServiceProtosSyncMessageSentBuilder*) setTimestamp:(UInt64) value {
+ resultSent.hasTimestamp = YES;
+ resultSent.timestamp = value;
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageSentBuilder*) clearTimestamp {
+ resultSent.hasTimestamp = NO;
+ resultSent.timestamp = 0L;
+ return self;
+}
+- (BOOL) hasMessage {
+ return resultSent.hasMessage;
+}
+- (OWSSignalServiceProtosDataMessage*) message {
+ return resultSent.message;
+}
+- (OWSSignalServiceProtosSyncMessageSentBuilder*) setMessage:(OWSSignalServiceProtosDataMessage*) value {
+ resultSent.hasMessage = YES;
+ resultSent.message = value;
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageSentBuilder*) setMessageBuilder:(OWSSignalServiceProtosDataMessageBuilder*) builderForValue {
+ return [self setMessage:[builderForValue build]];
+}
+- (OWSSignalServiceProtosSyncMessageSentBuilder*) mergeMessage:(OWSSignalServiceProtosDataMessage*) value {
+ if (resultSent.hasMessage &&
+ resultSent.message != [OWSSignalServiceProtosDataMessage defaultInstance]) {
+ resultSent.message =
+ [[[OWSSignalServiceProtosDataMessage builderWithPrototype:resultSent.message] mergeFrom:value] buildPartial];
+ } else {
+ resultSent.message = value;
+ }
+ resultSent.hasMessage = YES;
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageSentBuilder*) clearMessage {
+ resultSent.hasMessage = NO;
+ resultSent.message = [OWSSignalServiceProtosDataMessage defaultInstance];
+ return self;
+}
+@end
+
+@interface OWSSignalServiceProtosSyncMessageContacts ()
+@property (strong) OWSSignalServiceProtosAttachmentPointer* blob;
+@end
+
+@implementation OWSSignalServiceProtosSyncMessageContacts
+
+- (BOOL) hasBlob {
+ return !!hasBlob_;
+}
+- (void) setHasBlob:(BOOL) _value_ {
+ hasBlob_ = !!_value_;
+}
+@synthesize blob;
+- (instancetype) init {
+ if ((self = [super init])) {
+ self.blob = [OWSSignalServiceProtosAttachmentPointer defaultInstance];
+ }
+ return self;
+}
+static OWSSignalServiceProtosSyncMessageContacts* defaultOWSSignalServiceProtosSyncMessageContactsInstance = nil;
++ (void) initialize {
+ if (self == [OWSSignalServiceProtosSyncMessageContacts class]) {
+ defaultOWSSignalServiceProtosSyncMessageContactsInstance = [[OWSSignalServiceProtosSyncMessageContacts alloc] init];
+ }
+}
++ (instancetype) defaultInstance {
+ return defaultOWSSignalServiceProtosSyncMessageContactsInstance;
+}
+- (instancetype) defaultInstance {
+ return defaultOWSSignalServiceProtosSyncMessageContactsInstance;
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasBlob) {
+ [output writeMessage:1 value:self.blob];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (SInt32) serializedSize {
+ __block SInt32 size_ = memoizedSerializedSize;
+ if (size_ != -1) {
+ return size_;
+ }
+
+ size_ = 0;
+ if (self.hasBlob) {
+ size_ += computeMessageSize(1, self.blob);
+ }
+ size_ += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size_;
+ return size_;
+}
++ (OWSSignalServiceProtosSyncMessageContacts*) parseFromData:(NSData*) data {
+ return (OWSSignalServiceProtosSyncMessageContacts*)[[[OWSSignalServiceProtosSyncMessageContacts builder] mergeFromData:data] build];
+}
++ (OWSSignalServiceProtosSyncMessageContacts*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosSyncMessageContacts*)[[[OWSSignalServiceProtosSyncMessageContacts builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosSyncMessageContacts*) parseFromInputStream:(NSInputStream*) input {
+ return (OWSSignalServiceProtosSyncMessageContacts*)[[[OWSSignalServiceProtosSyncMessageContacts builder] mergeFromInputStream:input] build];
+}
++ (OWSSignalServiceProtosSyncMessageContacts*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosSyncMessageContacts*)[[[OWSSignalServiceProtosSyncMessageContacts builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosSyncMessageContacts*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (OWSSignalServiceProtosSyncMessageContacts*)[[[OWSSignalServiceProtosSyncMessageContacts builder] mergeFromCodedInputStream:input] build];
+}
++ (OWSSignalServiceProtosSyncMessageContacts*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosSyncMessageContacts*)[[[OWSSignalServiceProtosSyncMessageContacts builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosSyncMessageContactsBuilder*) builder {
+ return [[OWSSignalServiceProtosSyncMessageContactsBuilder alloc] init];
+}
++ (OWSSignalServiceProtosSyncMessageContactsBuilder*) builderWithPrototype:(OWSSignalServiceProtosSyncMessageContacts*) prototype {
+ return [[OWSSignalServiceProtosSyncMessageContacts builder] mergeFrom:prototype];
+}
+- (OWSSignalServiceProtosSyncMessageContactsBuilder*) builder {
+ return [OWSSignalServiceProtosSyncMessageContacts builder];
+}
+- (OWSSignalServiceProtosSyncMessageContactsBuilder*) toBuilder {
+ return [OWSSignalServiceProtosSyncMessageContacts builderWithPrototype:self];
+}
+- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
+ if (self.hasBlob) {
+ [output appendFormat:@"%@%@ {\n", indent, @"blob"];
+ [self.blob writeDescriptionTo:output
+ withIndent:[NSString stringWithFormat:@"%@ ", indent]];
+ [output appendFormat:@"%@}\n", indent];
+ }
+ [self.unknownFields writeDescriptionTo:output withIndent:indent];
+}
+- (void) storeInDictionary:(NSMutableDictionary *)dictionary {
+ if (self.hasBlob) {
+ NSMutableDictionary *messageDictionary = [NSMutableDictionary dictionary];
+ [self.blob storeInDictionary:messageDictionary];
+ [dictionary setObject:[NSDictionary dictionaryWithDictionary:messageDictionary] forKey:@"blob"];
+ }
+ [self.unknownFields storeInDictionary:dictionary];
+}
+- (BOOL) isEqual:(id)other {
+ if (other == self) {
+ return YES;
+ }
+ if (![other isKindOfClass:[OWSSignalServiceProtosSyncMessageContacts class]]) {
+ return NO;
+ }
+ OWSSignalServiceProtosSyncMessageContacts *otherMessage = other;
+ return
+ self.hasBlob == otherMessage.hasBlob &&
+ (!self.hasBlob || [self.blob isEqual:otherMessage.blob]) &&
+ (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
+}
+- (NSUInteger) hash {
+ __block NSUInteger hashCode = 7;
+ if (self.hasBlob) {
+ hashCode = hashCode * 31 + [self.blob hash];
+ }
+ hashCode = hashCode * 31 + [self.unknownFields hash];
+ return hashCode;
+}
+@end
+
+@interface OWSSignalServiceProtosSyncMessageContactsBuilder()
+@property (strong) OWSSignalServiceProtosSyncMessageContacts* resultContacts;
+@end
+
+@implementation OWSSignalServiceProtosSyncMessageContactsBuilder
+@synthesize resultContacts;
+- (instancetype) init {
+ if ((self = [super init])) {
+ self.resultContacts = [[OWSSignalServiceProtosSyncMessageContacts alloc] init];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return resultContacts;
+}
+- (OWSSignalServiceProtosSyncMessageContactsBuilder*) clear {
+ self.resultContacts = [[OWSSignalServiceProtosSyncMessageContacts alloc] init];
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageContactsBuilder*) clone {
+ return [OWSSignalServiceProtosSyncMessageContacts builderWithPrototype:resultContacts];
+}
+- (OWSSignalServiceProtosSyncMessageContacts*) defaultInstance {
+ return [OWSSignalServiceProtosSyncMessageContacts defaultInstance];
+}
+- (OWSSignalServiceProtosSyncMessageContacts*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (OWSSignalServiceProtosSyncMessageContacts*) buildPartial {
+ OWSSignalServiceProtosSyncMessageContacts* returnMe = resultContacts;
+ self.resultContacts = nil;
+ return returnMe;
+}
+- (OWSSignalServiceProtosSyncMessageContactsBuilder*) mergeFrom:(OWSSignalServiceProtosSyncMessageContacts*) other {
+ if (other == [OWSSignalServiceProtosSyncMessageContacts defaultInstance]) {
+ return self;
+ }
+ if (other.hasBlob) {
+ [self mergeBlob:other.blob];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageContactsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (OWSSignalServiceProtosSyncMessageContactsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ SInt32 tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 10: {
+ OWSSignalServiceProtosAttachmentPointerBuilder* subBuilder = [OWSSignalServiceProtosAttachmentPointer builder];
+ if (self.hasBlob) {
+ [subBuilder mergeFrom:self.blob];
+ }
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self setBlob:[subBuilder buildPartial]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasBlob {
+ return resultContacts.hasBlob;
+}
+- (OWSSignalServiceProtosAttachmentPointer*) blob {
+ return resultContacts.blob;
+}
+- (OWSSignalServiceProtosSyncMessageContactsBuilder*) setBlob:(OWSSignalServiceProtosAttachmentPointer*) value {
+ resultContacts.hasBlob = YES;
+ resultContacts.blob = value;
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageContactsBuilder*) setBlobBuilder:(OWSSignalServiceProtosAttachmentPointerBuilder*) builderForValue {
+ return [self setBlob:[builderForValue build]];
+}
+- (OWSSignalServiceProtosSyncMessageContactsBuilder*) mergeBlob:(OWSSignalServiceProtosAttachmentPointer*) value {
+ if (resultContacts.hasBlob &&
+ resultContacts.blob != [OWSSignalServiceProtosAttachmentPointer defaultInstance]) {
+ resultContacts.blob =
+ [[[OWSSignalServiceProtosAttachmentPointer builderWithPrototype:resultContacts.blob] mergeFrom:value] buildPartial];
+ } else {
+ resultContacts.blob = value;
+ }
+ resultContacts.hasBlob = YES;
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageContactsBuilder*) clearBlob {
+ resultContacts.hasBlob = NO;
+ resultContacts.blob = [OWSSignalServiceProtosAttachmentPointer defaultInstance];
+ return self;
+}
+@end
+
+@interface OWSSignalServiceProtosSyncMessageGroups ()
+@property (strong) OWSSignalServiceProtosAttachmentPointer* blob;
+@end
+
+@implementation OWSSignalServiceProtosSyncMessageGroups
+
+- (BOOL) hasBlob {
+ return !!hasBlob_;
+}
+- (void) setHasBlob:(BOOL) _value_ {
+ hasBlob_ = !!_value_;
+}
+@synthesize blob;
+- (instancetype) init {
+ if ((self = [super init])) {
+ self.blob = [OWSSignalServiceProtosAttachmentPointer defaultInstance];
+ }
+ return self;
+}
+static OWSSignalServiceProtosSyncMessageGroups* defaultOWSSignalServiceProtosSyncMessageGroupsInstance = nil;
++ (void) initialize {
+ if (self == [OWSSignalServiceProtosSyncMessageGroups class]) {
+ defaultOWSSignalServiceProtosSyncMessageGroupsInstance = [[OWSSignalServiceProtosSyncMessageGroups alloc] init];
+ }
+}
++ (instancetype) defaultInstance {
+ return defaultOWSSignalServiceProtosSyncMessageGroupsInstance;
+}
+- (instancetype) defaultInstance {
+ return defaultOWSSignalServiceProtosSyncMessageGroupsInstance;
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasBlob) {
+ [output writeMessage:1 value:self.blob];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (SInt32) serializedSize {
+ __block SInt32 size_ = memoizedSerializedSize;
+ if (size_ != -1) {
+ return size_;
+ }
+
+ size_ = 0;
+ if (self.hasBlob) {
+ size_ += computeMessageSize(1, self.blob);
+ }
+ size_ += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size_;
+ return size_;
+}
++ (OWSSignalServiceProtosSyncMessageGroups*) parseFromData:(NSData*) data {
+ return (OWSSignalServiceProtosSyncMessageGroups*)[[[OWSSignalServiceProtosSyncMessageGroups builder] mergeFromData:data] build];
+}
++ (OWSSignalServiceProtosSyncMessageGroups*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosSyncMessageGroups*)[[[OWSSignalServiceProtosSyncMessageGroups builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosSyncMessageGroups*) parseFromInputStream:(NSInputStream*) input {
+ return (OWSSignalServiceProtosSyncMessageGroups*)[[[OWSSignalServiceProtosSyncMessageGroups builder] mergeFromInputStream:input] build];
+}
++ (OWSSignalServiceProtosSyncMessageGroups*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosSyncMessageGroups*)[[[OWSSignalServiceProtosSyncMessageGroups builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosSyncMessageGroups*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (OWSSignalServiceProtosSyncMessageGroups*)[[[OWSSignalServiceProtosSyncMessageGroups builder] mergeFromCodedInputStream:input] build];
+}
++ (OWSSignalServiceProtosSyncMessageGroups*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosSyncMessageGroups*)[[[OWSSignalServiceProtosSyncMessageGroups builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosSyncMessageGroupsBuilder*) builder {
+ return [[OWSSignalServiceProtosSyncMessageGroupsBuilder alloc] init];
+}
++ (OWSSignalServiceProtosSyncMessageGroupsBuilder*) builderWithPrototype:(OWSSignalServiceProtosSyncMessageGroups*) prototype {
+ return [[OWSSignalServiceProtosSyncMessageGroups builder] mergeFrom:prototype];
+}
+- (OWSSignalServiceProtosSyncMessageGroupsBuilder*) builder {
+ return [OWSSignalServiceProtosSyncMessageGroups builder];
+}
+- (OWSSignalServiceProtosSyncMessageGroupsBuilder*) toBuilder {
+ return [OWSSignalServiceProtosSyncMessageGroups builderWithPrototype:self];
+}
+- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
+ if (self.hasBlob) {
+ [output appendFormat:@"%@%@ {\n", indent, @"blob"];
+ [self.blob writeDescriptionTo:output
+ withIndent:[NSString stringWithFormat:@"%@ ", indent]];
+ [output appendFormat:@"%@}\n", indent];
+ }
+ [self.unknownFields writeDescriptionTo:output withIndent:indent];
+}
+- (void) storeInDictionary:(NSMutableDictionary *)dictionary {
+ if (self.hasBlob) {
+ NSMutableDictionary *messageDictionary = [NSMutableDictionary dictionary];
+ [self.blob storeInDictionary:messageDictionary];
+ [dictionary setObject:[NSDictionary dictionaryWithDictionary:messageDictionary] forKey:@"blob"];
+ }
+ [self.unknownFields storeInDictionary:dictionary];
+}
+- (BOOL) isEqual:(id)other {
+ if (other == self) {
+ return YES;
+ }
+ if (![other isKindOfClass:[OWSSignalServiceProtosSyncMessageGroups class]]) {
+ return NO;
+ }
+ OWSSignalServiceProtosSyncMessageGroups *otherMessage = other;
+ return
+ self.hasBlob == otherMessage.hasBlob &&
+ (!self.hasBlob || [self.blob isEqual:otherMessage.blob]) &&
+ (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
+}
+- (NSUInteger) hash {
+ __block NSUInteger hashCode = 7;
+ if (self.hasBlob) {
+ hashCode = hashCode * 31 + [self.blob hash];
+ }
+ hashCode = hashCode * 31 + [self.unknownFields hash];
+ return hashCode;
+}
+@end
+
+@interface OWSSignalServiceProtosSyncMessageGroupsBuilder()
+@property (strong) OWSSignalServiceProtosSyncMessageGroups* resultGroups;
+@end
+
+@implementation OWSSignalServiceProtosSyncMessageGroupsBuilder
+@synthesize resultGroups;
+- (instancetype) init {
+ if ((self = [super init])) {
+ self.resultGroups = [[OWSSignalServiceProtosSyncMessageGroups alloc] init];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return resultGroups;
+}
+- (OWSSignalServiceProtosSyncMessageGroupsBuilder*) clear {
+ self.resultGroups = [[OWSSignalServiceProtosSyncMessageGroups alloc] init];
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageGroupsBuilder*) clone {
+ return [OWSSignalServiceProtosSyncMessageGroups builderWithPrototype:resultGroups];
+}
+- (OWSSignalServiceProtosSyncMessageGroups*) defaultInstance {
+ return [OWSSignalServiceProtosSyncMessageGroups defaultInstance];
+}
+- (OWSSignalServiceProtosSyncMessageGroups*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (OWSSignalServiceProtosSyncMessageGroups*) buildPartial {
+ OWSSignalServiceProtosSyncMessageGroups* returnMe = resultGroups;
+ self.resultGroups = nil;
+ return returnMe;
+}
+- (OWSSignalServiceProtosSyncMessageGroupsBuilder*) mergeFrom:(OWSSignalServiceProtosSyncMessageGroups*) other {
+ if (other == [OWSSignalServiceProtosSyncMessageGroups defaultInstance]) {
+ return self;
+ }
+ if (other.hasBlob) {
+ [self mergeBlob:other.blob];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageGroupsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (OWSSignalServiceProtosSyncMessageGroupsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ SInt32 tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 10: {
+ OWSSignalServiceProtosAttachmentPointerBuilder* subBuilder = [OWSSignalServiceProtosAttachmentPointer builder];
+ if (self.hasBlob) {
+ [subBuilder mergeFrom:self.blob];
+ }
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self setBlob:[subBuilder buildPartial]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasBlob {
+ return resultGroups.hasBlob;
+}
+- (OWSSignalServiceProtosAttachmentPointer*) blob {
+ return resultGroups.blob;
+}
+- (OWSSignalServiceProtosSyncMessageGroupsBuilder*) setBlob:(OWSSignalServiceProtosAttachmentPointer*) value {
+ resultGroups.hasBlob = YES;
+ resultGroups.blob = value;
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageGroupsBuilder*) setBlobBuilder:(OWSSignalServiceProtosAttachmentPointerBuilder*) builderForValue {
+ return [self setBlob:[builderForValue build]];
+}
+- (OWSSignalServiceProtosSyncMessageGroupsBuilder*) mergeBlob:(OWSSignalServiceProtosAttachmentPointer*) value {
+ if (resultGroups.hasBlob &&
+ resultGroups.blob != [OWSSignalServiceProtosAttachmentPointer defaultInstance]) {
+ resultGroups.blob =
+ [[[OWSSignalServiceProtosAttachmentPointer builderWithPrototype:resultGroups.blob] mergeFrom:value] buildPartial];
+ } else {
+ resultGroups.blob = value;
+ }
+ resultGroups.hasBlob = YES;
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageGroupsBuilder*) clearBlob {
+ resultGroups.hasBlob = NO;
+ resultGroups.blob = [OWSSignalServiceProtosAttachmentPointer defaultInstance];
+ return self;
+}
+@end
+
+@interface OWSSignalServiceProtosSyncMessageRequest ()
+@property OWSSignalServiceProtosSyncMessageRequestType type;
+@end
+
+@implementation OWSSignalServiceProtosSyncMessageRequest
+
+- (BOOL) hasType {
+ return !!hasType_;
+}
+- (void) setHasType:(BOOL) _value_ {
+ hasType_ = !!_value_;
+}
+@synthesize type;
+- (instancetype) init {
+ if ((self = [super init])) {
+ self.type = OWSSignalServiceProtosSyncMessageRequestTypeUnknown;
+ }
+ return self;
+}
+static OWSSignalServiceProtosSyncMessageRequest* defaultOWSSignalServiceProtosSyncMessageRequestInstance = nil;
++ (void) initialize {
+ if (self == [OWSSignalServiceProtosSyncMessageRequest class]) {
+ defaultOWSSignalServiceProtosSyncMessageRequestInstance = [[OWSSignalServiceProtosSyncMessageRequest alloc] init];
+ }
+}
++ (instancetype) defaultInstance {
+ return defaultOWSSignalServiceProtosSyncMessageRequestInstance;
+}
+- (instancetype) defaultInstance {
+ return defaultOWSSignalServiceProtosSyncMessageRequestInstance;
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasType) {
+ [output writeEnum:1 value:self.type];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (SInt32) serializedSize {
+ __block SInt32 size_ = memoizedSerializedSize;
+ if (size_ != -1) {
+ return size_;
+ }
+
+ size_ = 0;
+ if (self.hasType) {
+ size_ += computeEnumSize(1, self.type);
+ }
+ size_ += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size_;
+ return size_;
+}
++ (OWSSignalServiceProtosSyncMessageRequest*) parseFromData:(NSData*) data {
+ return (OWSSignalServiceProtosSyncMessageRequest*)[[[OWSSignalServiceProtosSyncMessageRequest builder] mergeFromData:data] build];
+}
++ (OWSSignalServiceProtosSyncMessageRequest*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosSyncMessageRequest*)[[[OWSSignalServiceProtosSyncMessageRequest builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosSyncMessageRequest*) parseFromInputStream:(NSInputStream*) input {
+ return (OWSSignalServiceProtosSyncMessageRequest*)[[[OWSSignalServiceProtosSyncMessageRequest builder] mergeFromInputStream:input] build];
+}
++ (OWSSignalServiceProtosSyncMessageRequest*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosSyncMessageRequest*)[[[OWSSignalServiceProtosSyncMessageRequest builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosSyncMessageRequest*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (OWSSignalServiceProtosSyncMessageRequest*)[[[OWSSignalServiceProtosSyncMessageRequest builder] mergeFromCodedInputStream:input] build];
+}
++ (OWSSignalServiceProtosSyncMessageRequest*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosSyncMessageRequest*)[[[OWSSignalServiceProtosSyncMessageRequest builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosSyncMessageRequestBuilder*) builder {
+ return [[OWSSignalServiceProtosSyncMessageRequestBuilder alloc] init];
+}
++ (OWSSignalServiceProtosSyncMessageRequestBuilder*) builderWithPrototype:(OWSSignalServiceProtosSyncMessageRequest*) prototype {
+ return [[OWSSignalServiceProtosSyncMessageRequest builder] mergeFrom:prototype];
+}
+- (OWSSignalServiceProtosSyncMessageRequestBuilder*) builder {
+ return [OWSSignalServiceProtosSyncMessageRequest builder];
+}
+- (OWSSignalServiceProtosSyncMessageRequestBuilder*) toBuilder {
+ return [OWSSignalServiceProtosSyncMessageRequest builderWithPrototype:self];
+}
+- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
+ if (self.hasType) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"type", NSStringFromOWSSignalServiceProtosSyncMessageRequestType(self.type)];
+ }
+ [self.unknownFields writeDescriptionTo:output withIndent:indent];
+}
+- (void) storeInDictionary:(NSMutableDictionary *)dictionary {
+ if (self.hasType) {
+ [dictionary setObject: @(self.type) forKey: @"type"];
+ }
+ [self.unknownFields storeInDictionary:dictionary];
+}
+- (BOOL) isEqual:(id)other {
+ if (other == self) {
+ return YES;
+ }
+ if (![other isKindOfClass:[OWSSignalServiceProtosSyncMessageRequest class]]) {
+ return NO;
+ }
+ OWSSignalServiceProtosSyncMessageRequest *otherMessage = other;
+ return
+ self.hasType == otherMessage.hasType &&
+ (!self.hasType || self.type == otherMessage.type) &&
+ (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
+}
+- (NSUInteger) hash {
+ __block NSUInteger hashCode = 7;
+ if (self.hasType) {
+ hashCode = hashCode * 31 + self.type;
+ }
+ hashCode = hashCode * 31 + [self.unknownFields hash];
+ return hashCode;
+}
+@end
+
+BOOL OWSSignalServiceProtosSyncMessageRequestTypeIsValidValue(OWSSignalServiceProtosSyncMessageRequestType value) {
+ switch (value) {
+ case OWSSignalServiceProtosSyncMessageRequestTypeUnknown:
+ case OWSSignalServiceProtosSyncMessageRequestTypeContacts:
+ case OWSSignalServiceProtosSyncMessageRequestTypeGroups:
+ return YES;
+ default:
+ return NO;
+ }
+}
+NSString *NSStringFromOWSSignalServiceProtosSyncMessageRequestType(OWSSignalServiceProtosSyncMessageRequestType value) {
+ switch (value) {
+ case OWSSignalServiceProtosSyncMessageRequestTypeUnknown:
+ return @"OWSSignalServiceProtosSyncMessageRequestTypeUnknown";
+ case OWSSignalServiceProtosSyncMessageRequestTypeContacts:
+ return @"OWSSignalServiceProtosSyncMessageRequestTypeContacts";
+ case OWSSignalServiceProtosSyncMessageRequestTypeGroups:
+ return @"OWSSignalServiceProtosSyncMessageRequestTypeGroups";
+ default:
+ return nil;
+ }
+}
+
+@interface OWSSignalServiceProtosSyncMessageRequestBuilder()
+@property (strong) OWSSignalServiceProtosSyncMessageRequest* resultRequest;
+@end
+
+@implementation OWSSignalServiceProtosSyncMessageRequestBuilder
+@synthesize resultRequest;
+- (instancetype) init {
+ if ((self = [super init])) {
+ self.resultRequest = [[OWSSignalServiceProtosSyncMessageRequest alloc] init];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return resultRequest;
+}
+- (OWSSignalServiceProtosSyncMessageRequestBuilder*) clear {
+ self.resultRequest = [[OWSSignalServiceProtosSyncMessageRequest alloc] init];
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageRequestBuilder*) clone {
+ return [OWSSignalServiceProtosSyncMessageRequest builderWithPrototype:resultRequest];
+}
+- (OWSSignalServiceProtosSyncMessageRequest*) defaultInstance {
+ return [OWSSignalServiceProtosSyncMessageRequest defaultInstance];
+}
+- (OWSSignalServiceProtosSyncMessageRequest*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (OWSSignalServiceProtosSyncMessageRequest*) buildPartial {
+ OWSSignalServiceProtosSyncMessageRequest* returnMe = resultRequest;
+ self.resultRequest = nil;
+ return returnMe;
+}
+- (OWSSignalServiceProtosSyncMessageRequestBuilder*) mergeFrom:(OWSSignalServiceProtosSyncMessageRequest*) other {
+ if (other == [OWSSignalServiceProtosSyncMessageRequest defaultInstance]) {
+ return self;
+ }
+ if (other.hasType) {
+ [self setType:other.type];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageRequestBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (OWSSignalServiceProtosSyncMessageRequestBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ SInt32 tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 8: {
+ OWSSignalServiceProtosSyncMessageRequestType value = (OWSSignalServiceProtosSyncMessageRequestType)[input readEnum];
+ if (OWSSignalServiceProtosSyncMessageRequestTypeIsValidValue(value)) {
+ [self setType:value];
+ } else {
+ [unknownFields mergeVarintField:1 value:value];
+ }
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasType {
+ return resultRequest.hasType;
+}
+- (OWSSignalServiceProtosSyncMessageRequestType) type {
+ return resultRequest.type;
+}
+- (OWSSignalServiceProtosSyncMessageRequestBuilder*) setType:(OWSSignalServiceProtosSyncMessageRequestType) value {
+ resultRequest.hasType = YES;
+ resultRequest.type = value;
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageRequestBuilder*) clearType {
+ resultRequest.hasType = NO;
+ resultRequest.type = OWSSignalServiceProtosSyncMessageRequestTypeUnknown;
+ return self;
+}
+@end
+
+@interface OWSSignalServiceProtosSyncMessageRead ()
+@property (strong) NSString* sender;
+@property UInt64 timestamp;
+@end
+
+@implementation OWSSignalServiceProtosSyncMessageRead
+
+- (BOOL) hasSender {
+ return !!hasSender_;
+}
+- (void) setHasSender:(BOOL) _value_ {
+ hasSender_ = !!_value_;
+}
+@synthesize sender;
+- (BOOL) hasTimestamp {
+ return !!hasTimestamp_;
+}
+- (void) setHasTimestamp:(BOOL) _value_ {
+ hasTimestamp_ = !!_value_;
+}
+@synthesize timestamp;
+- (instancetype) init {
+ if ((self = [super init])) {
+ self.sender = @"";
+ self.timestamp = 0L;
+ }
+ return self;
+}
+static OWSSignalServiceProtosSyncMessageRead* defaultOWSSignalServiceProtosSyncMessageReadInstance = nil;
++ (void) initialize {
+ if (self == [OWSSignalServiceProtosSyncMessageRead class]) {
+ defaultOWSSignalServiceProtosSyncMessageReadInstance = [[OWSSignalServiceProtosSyncMessageRead alloc] init];
+ }
+}
++ (instancetype) defaultInstance {
+ return defaultOWSSignalServiceProtosSyncMessageReadInstance;
+}
+- (instancetype) defaultInstance {
+ return defaultOWSSignalServiceProtosSyncMessageReadInstance;
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasSender) {
+ [output writeString:1 value:self.sender];
+ }
+ if (self.hasTimestamp) {
+ [output writeUInt64:2 value:self.timestamp];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (SInt32) serializedSize {
+ __block SInt32 size_ = memoizedSerializedSize;
+ if (size_ != -1) {
+ return size_;
+ }
+
+ size_ = 0;
+ if (self.hasSender) {
+ size_ += computeStringSize(1, self.sender);
+ }
+ if (self.hasTimestamp) {
+ size_ += computeUInt64Size(2, self.timestamp);
+ }
+ size_ += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size_;
+ return size_;
+}
++ (OWSSignalServiceProtosSyncMessageRead*) parseFromData:(NSData*) data {
+ return (OWSSignalServiceProtosSyncMessageRead*)[[[OWSSignalServiceProtosSyncMessageRead builder] mergeFromData:data] build];
+}
++ (OWSSignalServiceProtosSyncMessageRead*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosSyncMessageRead*)[[[OWSSignalServiceProtosSyncMessageRead builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosSyncMessageRead*) parseFromInputStream:(NSInputStream*) input {
+ return (OWSSignalServiceProtosSyncMessageRead*)[[[OWSSignalServiceProtosSyncMessageRead builder] mergeFromInputStream:input] build];
+}
++ (OWSSignalServiceProtosSyncMessageRead*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosSyncMessageRead*)[[[OWSSignalServiceProtosSyncMessageRead builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosSyncMessageRead*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (OWSSignalServiceProtosSyncMessageRead*)[[[OWSSignalServiceProtosSyncMessageRead builder] mergeFromCodedInputStream:input] build];
+}
++ (OWSSignalServiceProtosSyncMessageRead*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosSyncMessageRead*)[[[OWSSignalServiceProtosSyncMessageRead builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosSyncMessageReadBuilder*) builder {
+ return [[OWSSignalServiceProtosSyncMessageReadBuilder alloc] init];
+}
++ (OWSSignalServiceProtosSyncMessageReadBuilder*) builderWithPrototype:(OWSSignalServiceProtosSyncMessageRead*) prototype {
+ return [[OWSSignalServiceProtosSyncMessageRead builder] mergeFrom:prototype];
+}
+- (OWSSignalServiceProtosSyncMessageReadBuilder*) builder {
+ return [OWSSignalServiceProtosSyncMessageRead builder];
+}
+- (OWSSignalServiceProtosSyncMessageReadBuilder*) toBuilder {
+ return [OWSSignalServiceProtosSyncMessageRead builderWithPrototype:self];
+}
+- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
+ if (self.hasSender) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"sender", self.sender];
+ }
+ if (self.hasTimestamp) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"timestamp", [NSNumber numberWithLongLong:self.timestamp]];
+ }
+ [self.unknownFields writeDescriptionTo:output withIndent:indent];
+}
+- (void) storeInDictionary:(NSMutableDictionary *)dictionary {
+ if (self.hasSender) {
+ [dictionary setObject: self.sender forKey: @"sender"];
+ }
+ if (self.hasTimestamp) {
+ [dictionary setObject: [NSNumber numberWithLongLong:self.timestamp] forKey: @"timestamp"];
+ }
+ [self.unknownFields storeInDictionary:dictionary];
+}
+- (BOOL) isEqual:(id)other {
+ if (other == self) {
+ return YES;
+ }
+ if (![other isKindOfClass:[OWSSignalServiceProtosSyncMessageRead class]]) {
+ return NO;
+ }
+ OWSSignalServiceProtosSyncMessageRead *otherMessage = other;
+ return
+ self.hasSender == otherMessage.hasSender &&
+ (!self.hasSender || [self.sender isEqual:otherMessage.sender]) &&
+ self.hasTimestamp == otherMessage.hasTimestamp &&
+ (!self.hasTimestamp || self.timestamp == otherMessage.timestamp) &&
+ (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
+}
+- (NSUInteger) hash {
+ __block NSUInteger hashCode = 7;
+ if (self.hasSender) {
+ hashCode = hashCode * 31 + [self.sender hash];
+ }
+ if (self.hasTimestamp) {
+ hashCode = hashCode * 31 + [[NSNumber numberWithLongLong:self.timestamp] hash];
+ }
+ hashCode = hashCode * 31 + [self.unknownFields hash];
+ return hashCode;
+}
+@end
+
+@interface OWSSignalServiceProtosSyncMessageReadBuilder()
+@property (strong) OWSSignalServiceProtosSyncMessageRead* resultRead;
+@end
+
+@implementation OWSSignalServiceProtosSyncMessageReadBuilder
+@synthesize resultRead;
+- (instancetype) init {
+ if ((self = [super init])) {
+ self.resultRead = [[OWSSignalServiceProtosSyncMessageRead alloc] init];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return resultRead;
+}
+- (OWSSignalServiceProtosSyncMessageReadBuilder*) clear {
+ self.resultRead = [[OWSSignalServiceProtosSyncMessageRead alloc] init];
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageReadBuilder*) clone {
+ return [OWSSignalServiceProtosSyncMessageRead builderWithPrototype:resultRead];
+}
+- (OWSSignalServiceProtosSyncMessageRead*) defaultInstance {
+ return [OWSSignalServiceProtosSyncMessageRead defaultInstance];
+}
+- (OWSSignalServiceProtosSyncMessageRead*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (OWSSignalServiceProtosSyncMessageRead*) buildPartial {
+ OWSSignalServiceProtosSyncMessageRead* returnMe = resultRead;
+ self.resultRead = nil;
+ return returnMe;
+}
+- (OWSSignalServiceProtosSyncMessageReadBuilder*) mergeFrom:(OWSSignalServiceProtosSyncMessageRead*) other {
+ if (other == [OWSSignalServiceProtosSyncMessageRead defaultInstance]) {
+ return self;
+ }
+ if (other.hasSender) {
+ [self setSender:other.sender];
+ }
+ if (other.hasTimestamp) {
+ [self setTimestamp:other.timestamp];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageReadBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (OWSSignalServiceProtosSyncMessageReadBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ SInt32 tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 10: {
+ [self setSender:[input readString]];
+ break;
+ }
+ case 16: {
+ [self setTimestamp:[input readUInt64]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasSender {
+ return resultRead.hasSender;
+}
+- (NSString*) sender {
+ return resultRead.sender;
+}
+- (OWSSignalServiceProtosSyncMessageReadBuilder*) setSender:(NSString*) value {
+ resultRead.hasSender = YES;
+ resultRead.sender = value;
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageReadBuilder*) clearSender {
+ resultRead.hasSender = NO;
+ resultRead.sender = @"";
+ return self;
+}
+- (BOOL) hasTimestamp {
+ return resultRead.hasTimestamp;
+}
+- (UInt64) timestamp {
+ return resultRead.timestamp;
+}
+- (OWSSignalServiceProtosSyncMessageReadBuilder*) setTimestamp:(UInt64) value {
+ resultRead.hasTimestamp = YES;
+ resultRead.timestamp = value;
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageReadBuilder*) clearTimestamp {
+ resultRead.hasTimestamp = NO;
+ resultRead.timestamp = 0L;
+ return self;
+}
+@end
+
+@interface OWSSignalServiceProtosSyncMessageBuilder()
+@property (strong) OWSSignalServiceProtosSyncMessage* resultSyncMessage;
+@end
+
+@implementation OWSSignalServiceProtosSyncMessageBuilder
+@synthesize resultSyncMessage;
+- (instancetype) init {
+ if ((self = [super init])) {
+ self.resultSyncMessage = [[OWSSignalServiceProtosSyncMessage alloc] init];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return resultSyncMessage;
+}
+- (OWSSignalServiceProtosSyncMessageBuilder*) clear {
+ self.resultSyncMessage = [[OWSSignalServiceProtosSyncMessage alloc] init];
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageBuilder*) clone {
+ return [OWSSignalServiceProtosSyncMessage builderWithPrototype:resultSyncMessage];
+}
+- (OWSSignalServiceProtosSyncMessage*) defaultInstance {
+ return [OWSSignalServiceProtosSyncMessage defaultInstance];
+}
+- (OWSSignalServiceProtosSyncMessage*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (OWSSignalServiceProtosSyncMessage*) buildPartial {
+ OWSSignalServiceProtosSyncMessage* returnMe = resultSyncMessage;
+ self.resultSyncMessage = nil;
+ return returnMe;
+}
+- (OWSSignalServiceProtosSyncMessageBuilder*) mergeFrom:(OWSSignalServiceProtosSyncMessage*) other {
+ if (other == [OWSSignalServiceProtosSyncMessage defaultInstance]) {
+ return self;
+ }
+ if (other.hasSent) {
+ [self mergeSent:other.sent];
+ }
+ if (other.hasContacts) {
+ [self mergeContacts:other.contacts];
+ }
+ if (other.hasGroups) {
+ [self mergeGroups:other.groups];
+ }
+ if (other.hasRequest) {
+ [self mergeRequest:other.request];
+ }
+ if (other.readArray.count > 0) {
+ if (resultSyncMessage.readArray == nil) {
+ resultSyncMessage.readArray = [[NSMutableArray alloc] initWithArray:other.readArray];
+ } else {
+ [resultSyncMessage.readArray addObjectsFromArray:other.readArray];
+ }
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (OWSSignalServiceProtosSyncMessageBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ SInt32 tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 10: {
+ OWSSignalServiceProtosSyncMessageSentBuilder* subBuilder = [OWSSignalServiceProtosSyncMessageSent builder];
+ if (self.hasSent) {
+ [subBuilder mergeFrom:self.sent];
+ }
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self setSent:[subBuilder buildPartial]];
+ break;
+ }
+ case 18: {
+ OWSSignalServiceProtosSyncMessageContactsBuilder* subBuilder = [OWSSignalServiceProtosSyncMessageContacts builder];
+ if (self.hasContacts) {
+ [subBuilder mergeFrom:self.contacts];
+ }
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self setContacts:[subBuilder buildPartial]];
+ break;
+ }
+ case 26: {
+ OWSSignalServiceProtosSyncMessageGroupsBuilder* subBuilder = [OWSSignalServiceProtosSyncMessageGroups builder];
+ if (self.hasGroups) {
+ [subBuilder mergeFrom:self.groups];
+ }
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self setGroups:[subBuilder buildPartial]];
+ break;
+ }
+ case 34: {
+ OWSSignalServiceProtosSyncMessageRequestBuilder* subBuilder = [OWSSignalServiceProtosSyncMessageRequest builder];
+ if (self.hasRequest) {
+ [subBuilder mergeFrom:self.request];
+ }
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self setRequest:[subBuilder buildPartial]];
+ break;
+ }
+ case 42: {
+ OWSSignalServiceProtosSyncMessageReadBuilder* subBuilder = [OWSSignalServiceProtosSyncMessageRead builder];
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self addRead:[subBuilder buildPartial]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasSent {
+ return resultSyncMessage.hasSent;
+}
+- (OWSSignalServiceProtosSyncMessageSent*) sent {
+ return resultSyncMessage.sent;
+}
+- (OWSSignalServiceProtosSyncMessageBuilder*) setSent:(OWSSignalServiceProtosSyncMessageSent*) value {
+ resultSyncMessage.hasSent = YES;
+ resultSyncMessage.sent = value;
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageBuilder*) setSentBuilder:(OWSSignalServiceProtosSyncMessageSentBuilder*) builderForValue {
+ return [self setSent:[builderForValue build]];
+}
+- (OWSSignalServiceProtosSyncMessageBuilder*) mergeSent:(OWSSignalServiceProtosSyncMessageSent*) value {
+ if (resultSyncMessage.hasSent &&
+ resultSyncMessage.sent != [OWSSignalServiceProtosSyncMessageSent defaultInstance]) {
+ resultSyncMessage.sent =
+ [[[OWSSignalServiceProtosSyncMessageSent builderWithPrototype:resultSyncMessage.sent] mergeFrom:value] buildPartial];
+ } else {
+ resultSyncMessage.sent = value;
+ }
+ resultSyncMessage.hasSent = YES;
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageBuilder*) clearSent {
+ resultSyncMessage.hasSent = NO;
+ resultSyncMessage.sent = [OWSSignalServiceProtosSyncMessageSent defaultInstance];
+ return self;
+}
+- (BOOL) hasContacts {
+ return resultSyncMessage.hasContacts;
+}
+- (OWSSignalServiceProtosSyncMessageContacts*) contacts {
+ return resultSyncMessage.contacts;
+}
+- (OWSSignalServiceProtosSyncMessageBuilder*) setContacts:(OWSSignalServiceProtosSyncMessageContacts*) value {
+ resultSyncMessage.hasContacts = YES;
+ resultSyncMessage.contacts = value;
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageBuilder*) setContactsBuilder:(OWSSignalServiceProtosSyncMessageContactsBuilder*) builderForValue {
+ return [self setContacts:[builderForValue build]];
+}
+- (OWSSignalServiceProtosSyncMessageBuilder*) mergeContacts:(OWSSignalServiceProtosSyncMessageContacts*) value {
+ if (resultSyncMessage.hasContacts &&
+ resultSyncMessage.contacts != [OWSSignalServiceProtosSyncMessageContacts defaultInstance]) {
+ resultSyncMessage.contacts =
+ [[[OWSSignalServiceProtosSyncMessageContacts builderWithPrototype:resultSyncMessage.contacts] mergeFrom:value] buildPartial];
+ } else {
+ resultSyncMessage.contacts = value;
+ }
+ resultSyncMessage.hasContacts = YES;
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageBuilder*) clearContacts {
+ resultSyncMessage.hasContacts = NO;
+ resultSyncMessage.contacts = [OWSSignalServiceProtosSyncMessageContacts defaultInstance];
+ return self;
+}
+- (BOOL) hasGroups {
+ return resultSyncMessage.hasGroups;
+}
+- (OWSSignalServiceProtosSyncMessageGroups*) groups {
+ return resultSyncMessage.groups;
+}
+- (OWSSignalServiceProtosSyncMessageBuilder*) setGroups:(OWSSignalServiceProtosSyncMessageGroups*) value {
+ resultSyncMessage.hasGroups = YES;
+ resultSyncMessage.groups = value;
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageBuilder*) setGroupsBuilder:(OWSSignalServiceProtosSyncMessageGroupsBuilder*) builderForValue {
+ return [self setGroups:[builderForValue build]];
+}
+- (OWSSignalServiceProtosSyncMessageBuilder*) mergeGroups:(OWSSignalServiceProtosSyncMessageGroups*) value {
+ if (resultSyncMessage.hasGroups &&
+ resultSyncMessage.groups != [OWSSignalServiceProtosSyncMessageGroups defaultInstance]) {
+ resultSyncMessage.groups =
+ [[[OWSSignalServiceProtosSyncMessageGroups builderWithPrototype:resultSyncMessage.groups] mergeFrom:value] buildPartial];
+ } else {
+ resultSyncMessage.groups = value;
+ }
+ resultSyncMessage.hasGroups = YES;
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageBuilder*) clearGroups {
+ resultSyncMessage.hasGroups = NO;
+ resultSyncMessage.groups = [OWSSignalServiceProtosSyncMessageGroups defaultInstance];
+ return self;
+}
+- (BOOL) hasRequest {
+ return resultSyncMessage.hasRequest;
+}
+- (OWSSignalServiceProtosSyncMessageRequest*) request {
+ return resultSyncMessage.request;
+}
+- (OWSSignalServiceProtosSyncMessageBuilder*) setRequest:(OWSSignalServiceProtosSyncMessageRequest*) value {
+ resultSyncMessage.hasRequest = YES;
+ resultSyncMessage.request = value;
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageBuilder*) setRequestBuilder:(OWSSignalServiceProtosSyncMessageRequestBuilder*) builderForValue {
+ return [self setRequest:[builderForValue build]];
+}
+- (OWSSignalServiceProtosSyncMessageBuilder*) mergeRequest:(OWSSignalServiceProtosSyncMessageRequest*) value {
+ if (resultSyncMessage.hasRequest &&
+ resultSyncMessage.request != [OWSSignalServiceProtosSyncMessageRequest defaultInstance]) {
+ resultSyncMessage.request =
+ [[[OWSSignalServiceProtosSyncMessageRequest builderWithPrototype:resultSyncMessage.request] mergeFrom:value] buildPartial];
+ } else {
+ resultSyncMessage.request = value;
+ }
+ resultSyncMessage.hasRequest = YES;
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageBuilder*) clearRequest {
+ resultSyncMessage.hasRequest = NO;
+ resultSyncMessage.request = [OWSSignalServiceProtosSyncMessageRequest defaultInstance];
+ return self;
+}
+- (NSMutableArray *)read {
+ return resultSyncMessage.readArray;
+}
+- (OWSSignalServiceProtosSyncMessageRead*)readAtIndex:(NSUInteger)index {
+ return [resultSyncMessage readAtIndex:index];
+}
+- (OWSSignalServiceProtosSyncMessageBuilder *)addRead:(OWSSignalServiceProtosSyncMessageRead*)value {
+ if (resultSyncMessage.readArray == nil) {
+ resultSyncMessage.readArray = [[NSMutableArray alloc]init];
+ }
+ [resultSyncMessage.readArray addObject:value];
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageBuilder *)setReadArray:(NSArray *)array {
+ resultSyncMessage.readArray = [[NSMutableArray alloc]initWithArray:array];
+ return self;
+}
+- (OWSSignalServiceProtosSyncMessageBuilder *)clearRead {
+ resultSyncMessage.readArray = nil;
+ return self;
+}
+@end
+
+@interface OWSSignalServiceProtosAttachmentPointer ()
+@property UInt64 id;
+@property (strong) NSString* contentType;
+@property (strong) NSData* key;
+@property UInt32 size;
+@property (strong) NSData* thumbnail;
+@end
+
+@implementation OWSSignalServiceProtosAttachmentPointer
+
+- (BOOL) hasId {
+ return !!hasId_;
+}
+- (void) setHasId:(BOOL) _value_ {
+ hasId_ = !!_value_;
+}
+@synthesize id;
+- (BOOL) hasContentType {
+ return !!hasContentType_;
+}
+- (void) setHasContentType:(BOOL) _value_ {
+ hasContentType_ = !!_value_;
+}
+@synthesize contentType;
+- (BOOL) hasKey {
+ return !!hasKey_;
+}
+- (void) setHasKey:(BOOL) _value_ {
+ hasKey_ = !!_value_;
+}
+@synthesize key;
+- (BOOL) hasSize {
+ return !!hasSize_;
+}
+- (void) setHasSize:(BOOL) _value_ {
+ hasSize_ = !!_value_;
+}
+@synthesize size;
+- (BOOL) hasThumbnail {
+ return !!hasThumbnail_;
+}
+- (void) setHasThumbnail:(BOOL) _value_ {
+ hasThumbnail_ = !!_value_;
+}
+@synthesize thumbnail;
+- (instancetype) init {
+ if ((self = [super init])) {
+ self.id = 0L;
+ self.contentType = @"";
+ self.key = [NSData data];
+ self.size = 0;
+ self.thumbnail = [NSData data];
+ }
+ return self;
+}
+static OWSSignalServiceProtosAttachmentPointer* defaultOWSSignalServiceProtosAttachmentPointerInstance = nil;
++ (void) initialize {
+ if (self == [OWSSignalServiceProtosAttachmentPointer class]) {
+ defaultOWSSignalServiceProtosAttachmentPointerInstance = [[OWSSignalServiceProtosAttachmentPointer alloc] init];
+ }
+}
++ (instancetype) defaultInstance {
+ return defaultOWSSignalServiceProtosAttachmentPointerInstance;
+}
+- (instancetype) defaultInstance {
+ return defaultOWSSignalServiceProtosAttachmentPointerInstance;
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasId) {
+ [output writeFixed64:1 value:self.id];
+ }
+ if (self.hasContentType) {
+ [output writeString:2 value:self.contentType];
+ }
+ if (self.hasKey) {
+ [output writeData:3 value:self.key];
+ }
+ if (self.hasSize) {
+ [output writeUInt32:4 value:self.size];
+ }
+ if (self.hasThumbnail) {
+ [output writeData:5 value:self.thumbnail];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (SInt32) serializedSize {
+ __block SInt32 size_ = memoizedSerializedSize;
+ if (size_ != -1) {
+ return size_;
+ }
+
+ size_ = 0;
+ if (self.hasId) {
+ size_ += computeFixed64Size(1, self.id);
+ }
+ if (self.hasContentType) {
+ size_ += computeStringSize(2, self.contentType);
+ }
+ if (self.hasKey) {
+ size_ += computeDataSize(3, self.key);
+ }
+ if (self.hasSize) {
+ size_ += computeUInt32Size(4, self.size);
+ }
+ if (self.hasThumbnail) {
+ size_ += computeDataSize(5, self.thumbnail);
+ }
+ size_ += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size_;
+ return size_;
+}
++ (OWSSignalServiceProtosAttachmentPointer*) parseFromData:(NSData*) data {
+ return (OWSSignalServiceProtosAttachmentPointer*)[[[OWSSignalServiceProtosAttachmentPointer builder] mergeFromData:data] build];
+}
++ (OWSSignalServiceProtosAttachmentPointer*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosAttachmentPointer*)[[[OWSSignalServiceProtosAttachmentPointer builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosAttachmentPointer*) parseFromInputStream:(NSInputStream*) input {
+ return (OWSSignalServiceProtosAttachmentPointer*)[[[OWSSignalServiceProtosAttachmentPointer builder] mergeFromInputStream:input] build];
+}
++ (OWSSignalServiceProtosAttachmentPointer*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosAttachmentPointer*)[[[OWSSignalServiceProtosAttachmentPointer builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosAttachmentPointer*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (OWSSignalServiceProtosAttachmentPointer*)[[[OWSSignalServiceProtosAttachmentPointer builder] mergeFromCodedInputStream:input] build];
+}
++ (OWSSignalServiceProtosAttachmentPointer*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosAttachmentPointer*)[[[OWSSignalServiceProtosAttachmentPointer builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosAttachmentPointerBuilder*) builder {
+ return [[OWSSignalServiceProtosAttachmentPointerBuilder alloc] init];
+}
++ (OWSSignalServiceProtosAttachmentPointerBuilder*) builderWithPrototype:(OWSSignalServiceProtosAttachmentPointer*) prototype {
+ return [[OWSSignalServiceProtosAttachmentPointer builder] mergeFrom:prototype];
+}
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) builder {
+ return [OWSSignalServiceProtosAttachmentPointer builder];
+}
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) toBuilder {
+ return [OWSSignalServiceProtosAttachmentPointer builderWithPrototype:self];
+}
+- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
+ if (self.hasId) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"id", [NSNumber numberWithLongLong:self.id]];
+ }
+ if (self.hasContentType) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"contentType", self.contentType];
+ }
+ if (self.hasKey) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"key", self.key];
+ }
+ if (self.hasSize) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"size", [NSNumber numberWithInteger:self.size]];
+ }
+ if (self.hasThumbnail) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"thumbnail", self.thumbnail];
+ }
+ [self.unknownFields writeDescriptionTo:output withIndent:indent];
+}
+- (void) storeInDictionary:(NSMutableDictionary *)dictionary {
+ if (self.hasId) {
+ [dictionary setObject: [NSNumber numberWithLongLong:self.id] forKey: @"id"];
+ }
+ if (self.hasContentType) {
+ [dictionary setObject: self.contentType forKey: @"contentType"];
+ }
+ if (self.hasKey) {
+ [dictionary setObject: self.key forKey: @"key"];
+ }
+ if (self.hasSize) {
+ [dictionary setObject: [NSNumber numberWithInteger:self.size] forKey: @"size"];
+ }
+ if (self.hasThumbnail) {
+ [dictionary setObject: self.thumbnail forKey: @"thumbnail"];
+ }
+ [self.unknownFields storeInDictionary:dictionary];
+}
+- (BOOL) isEqual:(id)other {
+ if (other == self) {
+ return YES;
+ }
+ if (![other isKindOfClass:[OWSSignalServiceProtosAttachmentPointer class]]) {
+ return NO;
+ }
+ OWSSignalServiceProtosAttachmentPointer *otherMessage = other;
+ return
+ self.hasId == otherMessage.hasId &&
+ (!self.hasId || self.id == otherMessage.id) &&
+ self.hasContentType == otherMessage.hasContentType &&
+ (!self.hasContentType || [self.contentType isEqual:otherMessage.contentType]) &&
+ self.hasKey == otherMessage.hasKey &&
+ (!self.hasKey || [self.key isEqual:otherMessage.key]) &&
+ self.hasSize == otherMessage.hasSize &&
+ (!self.hasSize || self.size == otherMessage.size) &&
+ self.hasThumbnail == otherMessage.hasThumbnail &&
+ (!self.hasThumbnail || [self.thumbnail isEqual:otherMessage.thumbnail]) &&
+ (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
+}
+- (NSUInteger) hash {
+ __block NSUInteger hashCode = 7;
+ if (self.hasId) {
+ hashCode = hashCode * 31 + [[NSNumber numberWithLongLong:self.id] hash];
+ }
+ if (self.hasContentType) {
+ hashCode = hashCode * 31 + [self.contentType hash];
+ }
+ if (self.hasKey) {
+ hashCode = hashCode * 31 + [self.key hash];
+ }
+ if (self.hasSize) {
+ hashCode = hashCode * 31 + [[NSNumber numberWithInteger:self.size] hash];
+ }
+ if (self.hasThumbnail) {
+ hashCode = hashCode * 31 + [self.thumbnail hash];
+ }
+ hashCode = hashCode * 31 + [self.unknownFields hash];
+ return hashCode;
+}
+@end
+
+@interface OWSSignalServiceProtosAttachmentPointerBuilder()
+@property (strong) OWSSignalServiceProtosAttachmentPointer* resultAttachmentPointer;
+@end
+
+@implementation OWSSignalServiceProtosAttachmentPointerBuilder
+@synthesize resultAttachmentPointer;
+- (instancetype) init {
+ if ((self = [super init])) {
+ self.resultAttachmentPointer = [[OWSSignalServiceProtosAttachmentPointer alloc] init];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return resultAttachmentPointer;
+}
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) clear {
+ self.resultAttachmentPointer = [[OWSSignalServiceProtosAttachmentPointer alloc] init];
+ return self;
+}
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) clone {
+ return [OWSSignalServiceProtosAttachmentPointer builderWithPrototype:resultAttachmentPointer];
+}
+- (OWSSignalServiceProtosAttachmentPointer*) defaultInstance {
+ return [OWSSignalServiceProtosAttachmentPointer defaultInstance];
+}
+- (OWSSignalServiceProtosAttachmentPointer*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (OWSSignalServiceProtosAttachmentPointer*) buildPartial {
+ OWSSignalServiceProtosAttachmentPointer* returnMe = resultAttachmentPointer;
+ self.resultAttachmentPointer = nil;
+ return returnMe;
+}
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) mergeFrom:(OWSSignalServiceProtosAttachmentPointer*) other {
+ if (other == [OWSSignalServiceProtosAttachmentPointer defaultInstance]) {
+ return self;
+ }
+ if (other.hasId) {
+ [self setId:other.id];
+ }
+ if (other.hasContentType) {
+ [self setContentType:other.contentType];
+ }
+ if (other.hasKey) {
+ [self setKey:other.key];
+ }
+ if (other.hasSize) {
+ [self setSize:other.size];
+ }
+ if (other.hasThumbnail) {
+ [self setThumbnail:other.thumbnail];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ SInt32 tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 9: {
+ [self setId:[input readFixed64]];
+ break;
+ }
+ case 18: {
+ [self setContentType:[input readString]];
+ break;
+ }
+ case 26: {
+ [self setKey:[input readData]];
+ break;
+ }
+ case 32: {
+ [self setSize:[input readUInt32]];
+ break;
+ }
+ case 42: {
+ [self setThumbnail:[input readData]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasId {
+ return resultAttachmentPointer.hasId;
+}
+- (UInt64) id {
+ return resultAttachmentPointer.id;
+}
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) setId:(UInt64) value {
+ resultAttachmentPointer.hasId = YES;
+ resultAttachmentPointer.id = value;
+ return self;
+}
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) clearId {
+ resultAttachmentPointer.hasId = NO;
+ resultAttachmentPointer.id = 0L;
+ return self;
+}
+- (BOOL) hasContentType {
+ return resultAttachmentPointer.hasContentType;
+}
+- (NSString*) contentType {
+ return resultAttachmentPointer.contentType;
+}
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) setContentType:(NSString*) value {
+ resultAttachmentPointer.hasContentType = YES;
+ resultAttachmentPointer.contentType = value;
+ return self;
+}
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) clearContentType {
+ resultAttachmentPointer.hasContentType = NO;
+ resultAttachmentPointer.contentType = @"";
+ return self;
+}
+- (BOOL) hasKey {
+ return resultAttachmentPointer.hasKey;
+}
+- (NSData*) key {
+ return resultAttachmentPointer.key;
+}
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) setKey:(NSData*) value {
+ resultAttachmentPointer.hasKey = YES;
+ resultAttachmentPointer.key = value;
+ return self;
+}
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) clearKey {
+ resultAttachmentPointer.hasKey = NO;
+ resultAttachmentPointer.key = [NSData data];
+ return self;
+}
+- (BOOL) hasSize {
+ return resultAttachmentPointer.hasSize;
+}
+- (UInt32) size {
+ return resultAttachmentPointer.size;
+}
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) setSize:(UInt32) value {
+ resultAttachmentPointer.hasSize = YES;
+ resultAttachmentPointer.size = value;
+ return self;
+}
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) clearSize {
+ resultAttachmentPointer.hasSize = NO;
+ resultAttachmentPointer.size = 0;
+ return self;
+}
+- (BOOL) hasThumbnail {
+ return resultAttachmentPointer.hasThumbnail;
+}
+- (NSData*) thumbnail {
+ return resultAttachmentPointer.thumbnail;
+}
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) setThumbnail:(NSData*) value {
+ resultAttachmentPointer.hasThumbnail = YES;
+ resultAttachmentPointer.thumbnail = value;
+ return self;
+}
+- (OWSSignalServiceProtosAttachmentPointerBuilder*) clearThumbnail {
+ resultAttachmentPointer.hasThumbnail = NO;
+ resultAttachmentPointer.thumbnail = [NSData data];
+ return self;
+}
+@end
+
+@interface OWSSignalServiceProtosGroupContext ()
+@property (strong) NSData* id;
+@property OWSSignalServiceProtosGroupContextType type;
+@property (strong) NSString* name;
+@property (strong) NSMutableArray * membersArray;
+@property (strong) OWSSignalServiceProtosAttachmentPointer* avatar;
+@end
+
+@implementation OWSSignalServiceProtosGroupContext
+
+- (BOOL) hasId {
+ return !!hasId_;
+}
+- (void) setHasId:(BOOL) _value_ {
+ hasId_ = !!_value_;
+}
+@synthesize id;
+- (BOOL) hasType {
+ return !!hasType_;
+}
+- (void) setHasType:(BOOL) _value_ {
+ hasType_ = !!_value_;
+}
+@synthesize type;
+- (BOOL) hasName {
+ return !!hasName_;
+}
+- (void) setHasName:(BOOL) _value_ {
+ hasName_ = !!_value_;
+}
+@synthesize name;
+@synthesize membersArray;
+@dynamic members;
+- (BOOL) hasAvatar {
+ return !!hasAvatar_;
+}
+- (void) setHasAvatar:(BOOL) _value_ {
+ hasAvatar_ = !!_value_;
+}
+@synthesize avatar;
+- (instancetype) init {
+ if ((self = [super init])) {
+ self.id = [NSData data];
+ self.type = OWSSignalServiceProtosGroupContextTypeUnknown;
+ self.name = @"";
+ self.avatar = [OWSSignalServiceProtosAttachmentPointer defaultInstance];
+ }
+ return self;
+}
+static OWSSignalServiceProtosGroupContext* defaultOWSSignalServiceProtosGroupContextInstance = nil;
++ (void) initialize {
+ if (self == [OWSSignalServiceProtosGroupContext class]) {
+ defaultOWSSignalServiceProtosGroupContextInstance = [[OWSSignalServiceProtosGroupContext alloc] init];
+ }
+}
++ (instancetype) defaultInstance {
+ return defaultOWSSignalServiceProtosGroupContextInstance;
+}
+- (instancetype) defaultInstance {
+ return defaultOWSSignalServiceProtosGroupContextInstance;
+}
+- (NSArray *)members {
+ return membersArray;
+}
+- (NSString*)membersAtIndex:(NSUInteger)index {
+ return [membersArray objectAtIndex:index];
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasId) {
+ [output writeData:1 value:self.id];
+ }
+ if (self.hasType) {
+ [output writeEnum:2 value:self.type];
+ }
+ if (self.hasName) {
+ [output writeString:3 value:self.name];
+ }
+ [self.membersArray enumerateObjectsUsingBlock:^(NSString *element, NSUInteger idx, BOOL *stop) {
+ [output writeString:4 value:element];
+ }];
+ if (self.hasAvatar) {
+ [output writeMessage:5 value:self.avatar];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (SInt32) serializedSize {
+ __block SInt32 size_ = memoizedSerializedSize;
+ if (size_ != -1) {
+ return size_;
+ }
+
+ size_ = 0;
+ if (self.hasId) {
+ size_ += computeDataSize(1, self.id);
+ }
+ if (self.hasType) {
+ size_ += computeEnumSize(2, self.type);
+ }
+ if (self.hasName) {
+ size_ += computeStringSize(3, self.name);
+ }
+ {
+ __block SInt32 dataSize = 0;
+ const NSUInteger count = self.membersArray.count;
+ [self.membersArray enumerateObjectsUsingBlock:^(NSString *element, NSUInteger idx, BOOL *stop) {
+ dataSize += computeStringSizeNoTag(element);
+ }];
+ size_ += dataSize;
+ size_ += (SInt32)(1 * count);
+ }
+ if (self.hasAvatar) {
+ size_ += computeMessageSize(5, self.avatar);
+ }
+ size_ += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size_;
+ return size_;
+}
++ (OWSSignalServiceProtosGroupContext*) parseFromData:(NSData*) data {
+ return (OWSSignalServiceProtosGroupContext*)[[[OWSSignalServiceProtosGroupContext builder] mergeFromData:data] build];
+}
++ (OWSSignalServiceProtosGroupContext*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosGroupContext*)[[[OWSSignalServiceProtosGroupContext builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosGroupContext*) parseFromInputStream:(NSInputStream*) input {
+ return (OWSSignalServiceProtosGroupContext*)[[[OWSSignalServiceProtosGroupContext builder] mergeFromInputStream:input] build];
+}
++ (OWSSignalServiceProtosGroupContext*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosGroupContext*)[[[OWSSignalServiceProtosGroupContext builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosGroupContext*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (OWSSignalServiceProtosGroupContext*)[[[OWSSignalServiceProtosGroupContext builder] mergeFromCodedInputStream:input] build];
+}
++ (OWSSignalServiceProtosGroupContext*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosGroupContext*)[[[OWSSignalServiceProtosGroupContext builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosGroupContextBuilder*) builder {
+ return [[OWSSignalServiceProtosGroupContextBuilder alloc] init];
+}
++ (OWSSignalServiceProtosGroupContextBuilder*) builderWithPrototype:(OWSSignalServiceProtosGroupContext*) prototype {
+ return [[OWSSignalServiceProtosGroupContext builder] mergeFrom:prototype];
+}
+- (OWSSignalServiceProtosGroupContextBuilder*) builder {
+ return [OWSSignalServiceProtosGroupContext builder];
+}
+- (OWSSignalServiceProtosGroupContextBuilder*) toBuilder {
+ return [OWSSignalServiceProtosGroupContext builderWithPrototype:self];
+}
+- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
+ if (self.hasId) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"id", self.id];
+ }
+ if (self.hasType) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"type", NSStringFromOWSSignalServiceProtosGroupContextType(self.type)];
+ }
+ if (self.hasName) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"name", self.name];
+ }
+ [self.membersArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"members", obj];
+ }];
+ if (self.hasAvatar) {
+ [output appendFormat:@"%@%@ {\n", indent, @"avatar"];
+ [self.avatar writeDescriptionTo:output
+ withIndent:[NSString stringWithFormat:@"%@ ", indent]];
+ [output appendFormat:@"%@}\n", indent];
+ }
+ [self.unknownFields writeDescriptionTo:output withIndent:indent];
+}
+- (void) storeInDictionary:(NSMutableDictionary *)dictionary {
+ if (self.hasId) {
+ [dictionary setObject: self.id forKey: @"id"];
+ }
+ if (self.hasType) {
+ [dictionary setObject: @(self.type) forKey: @"type"];
+ }
+ if (self.hasName) {
+ [dictionary setObject: self.name forKey: @"name"];
+ }
+ [dictionary setObject:self.members forKey: @"members"];
+ if (self.hasAvatar) {
+ NSMutableDictionary *messageDictionary = [NSMutableDictionary dictionary];
+ [self.avatar storeInDictionary:messageDictionary];
+ [dictionary setObject:[NSDictionary dictionaryWithDictionary:messageDictionary] forKey:@"avatar"];
+ }
+ [self.unknownFields storeInDictionary:dictionary];
+}
+- (BOOL) isEqual:(id)other {
+ if (other == self) {
+ return YES;
+ }
+ if (![other isKindOfClass:[OWSSignalServiceProtosGroupContext class]]) {
+ return NO;
+ }
+ OWSSignalServiceProtosGroupContext *otherMessage = other;
+ return
+ self.hasId == otherMessage.hasId &&
+ (!self.hasId || [self.id isEqual:otherMessage.id]) &&
+ self.hasType == otherMessage.hasType &&
+ (!self.hasType || self.type == otherMessage.type) &&
+ self.hasName == otherMessage.hasName &&
+ (!self.hasName || [self.name isEqual:otherMessage.name]) &&
+ [self.membersArray isEqualToArray:otherMessage.membersArray] &&
+ self.hasAvatar == otherMessage.hasAvatar &&
+ (!self.hasAvatar || [self.avatar isEqual:otherMessage.avatar]) &&
+ (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
+}
+- (NSUInteger) hash {
+ __block NSUInteger hashCode = 7;
+ if (self.hasId) {
+ hashCode = hashCode * 31 + [self.id hash];
+ }
+ if (self.hasType) {
+ hashCode = hashCode * 31 + self.type;
+ }
+ if (self.hasName) {
+ hashCode = hashCode * 31 + [self.name hash];
+ }
+ [self.membersArray enumerateObjectsUsingBlock:^(NSString *element, NSUInteger idx, BOOL *stop) {
+ hashCode = hashCode * 31 + [element hash];
+ }];
+ if (self.hasAvatar) {
+ hashCode = hashCode * 31 + [self.avatar hash];
+ }
+ hashCode = hashCode * 31 + [self.unknownFields hash];
+ return hashCode;
+}
+@end
+
+BOOL OWSSignalServiceProtosGroupContextTypeIsValidValue(OWSSignalServiceProtosGroupContextType value) {
+ switch (value) {
+ case OWSSignalServiceProtosGroupContextTypeUnknown:
+ case OWSSignalServiceProtosGroupContextTypeUpdate:
+ case OWSSignalServiceProtosGroupContextTypeDeliver:
+ case OWSSignalServiceProtosGroupContextTypeQuit:
+ return YES;
+ default:
+ return NO;
+ }
+}
+NSString *NSStringFromOWSSignalServiceProtosGroupContextType(OWSSignalServiceProtosGroupContextType value) {
+ switch (value) {
+ case OWSSignalServiceProtosGroupContextTypeUnknown:
+ return @"OWSSignalServiceProtosGroupContextTypeUnknown";
+ case OWSSignalServiceProtosGroupContextTypeUpdate:
+ return @"OWSSignalServiceProtosGroupContextTypeUpdate";
+ case OWSSignalServiceProtosGroupContextTypeDeliver:
+ return @"OWSSignalServiceProtosGroupContextTypeDeliver";
+ case OWSSignalServiceProtosGroupContextTypeQuit:
+ return @"OWSSignalServiceProtosGroupContextTypeQuit";
+ default:
+ return nil;
+ }
+}
+
+@interface OWSSignalServiceProtosGroupContextBuilder()
+@property (strong) OWSSignalServiceProtosGroupContext* resultGroupContext;
+@end
+
+@implementation OWSSignalServiceProtosGroupContextBuilder
+@synthesize resultGroupContext;
+- (instancetype) init {
+ if ((self = [super init])) {
+ self.resultGroupContext = [[OWSSignalServiceProtosGroupContext alloc] init];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return resultGroupContext;
+}
+- (OWSSignalServiceProtosGroupContextBuilder*) clear {
+ self.resultGroupContext = [[OWSSignalServiceProtosGroupContext alloc] init];
+ return self;
+}
+- (OWSSignalServiceProtosGroupContextBuilder*) clone {
+ return [OWSSignalServiceProtosGroupContext builderWithPrototype:resultGroupContext];
+}
+- (OWSSignalServiceProtosGroupContext*) defaultInstance {
+ return [OWSSignalServiceProtosGroupContext defaultInstance];
+}
+- (OWSSignalServiceProtosGroupContext*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (OWSSignalServiceProtosGroupContext*) buildPartial {
+ OWSSignalServiceProtosGroupContext* returnMe = resultGroupContext;
+ self.resultGroupContext = nil;
+ return returnMe;
+}
+- (OWSSignalServiceProtosGroupContextBuilder*) mergeFrom:(OWSSignalServiceProtosGroupContext*) other {
+ if (other == [OWSSignalServiceProtosGroupContext defaultInstance]) {
+ return self;
+ }
+ if (other.hasId) {
+ [self setId:other.id];
+ }
+ if (other.hasType) {
+ [self setType:other.type];
+ }
+ if (other.hasName) {
+ [self setName:other.name];
+ }
+ if (other.membersArray.count > 0) {
+ if (resultGroupContext.membersArray == nil) {
+ resultGroupContext.membersArray = [[NSMutableArray alloc] initWithArray:other.membersArray];
+ } else {
+ [resultGroupContext.membersArray addObjectsFromArray:other.membersArray];
+ }
+ }
+ if (other.hasAvatar) {
+ [self mergeAvatar:other.avatar];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (OWSSignalServiceProtosGroupContextBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (OWSSignalServiceProtosGroupContextBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ SInt32 tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 10: {
+ [self setId:[input readData]];
+ break;
+ }
+ case 16: {
+ OWSSignalServiceProtosGroupContextType value = (OWSSignalServiceProtosGroupContextType)[input readEnum];
+ if (OWSSignalServiceProtosGroupContextTypeIsValidValue(value)) {
+ [self setType:value];
+ } else {
+ [unknownFields mergeVarintField:2 value:value];
+ }
+ break;
+ }
+ case 26: {
+ [self setName:[input readString]];
+ break;
+ }
+ case 34: {
+ [self addMembers:[input readString]];
+ break;
+ }
+ case 42: {
+ OWSSignalServiceProtosAttachmentPointerBuilder* subBuilder = [OWSSignalServiceProtosAttachmentPointer builder];
+ if (self.hasAvatar) {
+ [subBuilder mergeFrom:self.avatar];
+ }
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self setAvatar:[subBuilder buildPartial]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasId {
+ return resultGroupContext.hasId;
+}
+- (NSData*) id {
+ return resultGroupContext.id;
+}
+- (OWSSignalServiceProtosGroupContextBuilder*) setId:(NSData*) value {
+ resultGroupContext.hasId = YES;
+ resultGroupContext.id = value;
+ return self;
+}
+- (OWSSignalServiceProtosGroupContextBuilder*) clearId {
+ resultGroupContext.hasId = NO;
+ resultGroupContext.id = [NSData data];
+ return self;
+}
+- (BOOL) hasType {
+ return resultGroupContext.hasType;
+}
+- (OWSSignalServiceProtosGroupContextType) type {
+ return resultGroupContext.type;
+}
+- (OWSSignalServiceProtosGroupContextBuilder*) setType:(OWSSignalServiceProtosGroupContextType) value {
+ resultGroupContext.hasType = YES;
+ resultGroupContext.type = value;
+ return self;
+}
+- (OWSSignalServiceProtosGroupContextBuilder*) clearType {
+ resultGroupContext.hasType = NO;
+ resultGroupContext.type = OWSSignalServiceProtosGroupContextTypeUnknown;
+ return self;
+}
+- (BOOL) hasName {
+ return resultGroupContext.hasName;
+}
+- (NSString*) name {
+ return resultGroupContext.name;
+}
+- (OWSSignalServiceProtosGroupContextBuilder*) setName:(NSString*) value {
+ resultGroupContext.hasName = YES;
+ resultGroupContext.name = value;
+ return self;
+}
+- (OWSSignalServiceProtosGroupContextBuilder*) clearName {
+ resultGroupContext.hasName = NO;
+ resultGroupContext.name = @"";
+ return self;
+}
+- (NSMutableArray *)members {
+ return resultGroupContext.membersArray;
+}
+- (NSString*)membersAtIndex:(NSUInteger)index {
+ return [resultGroupContext membersAtIndex:index];
+}
+- (OWSSignalServiceProtosGroupContextBuilder *)addMembers:(NSString*)value {
+ if (resultGroupContext.membersArray == nil) {
+ resultGroupContext.membersArray = [[NSMutableArray alloc]init];
+ }
+ [resultGroupContext.membersArray addObject:value];
+ return self;
+}
+- (OWSSignalServiceProtosGroupContextBuilder *)setMembersArray:(NSArray *)array {
+ resultGroupContext.membersArray = [[NSMutableArray alloc] initWithArray:array];
+ return self;
+}
+- (OWSSignalServiceProtosGroupContextBuilder *)clearMembers {
+ resultGroupContext.membersArray = nil;
+ return self;
+}
+- (BOOL) hasAvatar {
+ return resultGroupContext.hasAvatar;
+}
+- (OWSSignalServiceProtosAttachmentPointer*) avatar {
+ return resultGroupContext.avatar;
+}
+- (OWSSignalServiceProtosGroupContextBuilder*) setAvatar:(OWSSignalServiceProtosAttachmentPointer*) value {
+ resultGroupContext.hasAvatar = YES;
+ resultGroupContext.avatar = value;
+ return self;
+}
+- (OWSSignalServiceProtosGroupContextBuilder*) setAvatarBuilder:(OWSSignalServiceProtosAttachmentPointerBuilder*) builderForValue {
+ return [self setAvatar:[builderForValue build]];
+}
+- (OWSSignalServiceProtosGroupContextBuilder*) mergeAvatar:(OWSSignalServiceProtosAttachmentPointer*) value {
+ if (resultGroupContext.hasAvatar &&
+ resultGroupContext.avatar != [OWSSignalServiceProtosAttachmentPointer defaultInstance]) {
+ resultGroupContext.avatar =
+ [[[OWSSignalServiceProtosAttachmentPointer builderWithPrototype:resultGroupContext.avatar] mergeFrom:value] buildPartial];
+ } else {
+ resultGroupContext.avatar = value;
+ }
+ resultGroupContext.hasAvatar = YES;
+ return self;
+}
+- (OWSSignalServiceProtosGroupContextBuilder*) clearAvatar {
+ resultGroupContext.hasAvatar = NO;
+ resultGroupContext.avatar = [OWSSignalServiceProtosAttachmentPointer defaultInstance];
+ return self;
+}
+@end
+
+@interface OWSSignalServiceProtosContactDetails ()
+@property (strong) NSString* number;
+@property (strong) NSString* name;
+@property (strong) OWSSignalServiceProtosContactDetailsAvatar* avatar;
+@end
+
+@implementation OWSSignalServiceProtosContactDetails
+
+- (BOOL) hasNumber {
+ return !!hasNumber_;
+}
+- (void) setHasNumber:(BOOL) _value_ {
+ hasNumber_ = !!_value_;
+}
+@synthesize number;
+- (BOOL) hasName {
+ return !!hasName_;
+}
+- (void) setHasName:(BOOL) _value_ {
+ hasName_ = !!_value_;
+}
+@synthesize name;
+- (BOOL) hasAvatar {
+ return !!hasAvatar_;
+}
+- (void) setHasAvatar:(BOOL) _value_ {
+ hasAvatar_ = !!_value_;
+}
+@synthesize avatar;
+- (instancetype) init {
+ if ((self = [super init])) {
+ self.number = @"";
+ self.name = @"";
+ self.avatar = [OWSSignalServiceProtosContactDetailsAvatar defaultInstance];
+ }
+ return self;
+}
+static OWSSignalServiceProtosContactDetails* defaultOWSSignalServiceProtosContactDetailsInstance = nil;
++ (void) initialize {
+ if (self == [OWSSignalServiceProtosContactDetails class]) {
+ defaultOWSSignalServiceProtosContactDetailsInstance = [[OWSSignalServiceProtosContactDetails alloc] init];
+ }
+}
++ (instancetype) defaultInstance {
+ return defaultOWSSignalServiceProtosContactDetailsInstance;
+}
+- (instancetype) defaultInstance {
+ return defaultOWSSignalServiceProtosContactDetailsInstance;
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasNumber) {
+ [output writeString:1 value:self.number];
+ }
+ if (self.hasName) {
+ [output writeString:2 value:self.name];
+ }
+ if (self.hasAvatar) {
+ [output writeMessage:3 value:self.avatar];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (SInt32) serializedSize {
+ __block SInt32 size_ = memoizedSerializedSize;
+ if (size_ != -1) {
+ return size_;
+ }
+
+ size_ = 0;
+ if (self.hasNumber) {
+ size_ += computeStringSize(1, self.number);
+ }
+ if (self.hasName) {
+ size_ += computeStringSize(2, self.name);
+ }
+ if (self.hasAvatar) {
+ size_ += computeMessageSize(3, self.avatar);
+ }
+ size_ += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size_;
+ return size_;
+}
++ (OWSSignalServiceProtosContactDetails*) parseFromData:(NSData*) data {
+ return (OWSSignalServiceProtosContactDetails*)[[[OWSSignalServiceProtosContactDetails builder] mergeFromData:data] build];
+}
++ (OWSSignalServiceProtosContactDetails*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosContactDetails*)[[[OWSSignalServiceProtosContactDetails builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosContactDetails*) parseFromInputStream:(NSInputStream*) input {
+ return (OWSSignalServiceProtosContactDetails*)[[[OWSSignalServiceProtosContactDetails builder] mergeFromInputStream:input] build];
+}
++ (OWSSignalServiceProtosContactDetails*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosContactDetails*)[[[OWSSignalServiceProtosContactDetails builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosContactDetails*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (OWSSignalServiceProtosContactDetails*)[[[OWSSignalServiceProtosContactDetails builder] mergeFromCodedInputStream:input] build];
+}
++ (OWSSignalServiceProtosContactDetails*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosContactDetails*)[[[OWSSignalServiceProtosContactDetails builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosContactDetailsBuilder*) builder {
+ return [[OWSSignalServiceProtosContactDetailsBuilder alloc] init];
+}
++ (OWSSignalServiceProtosContactDetailsBuilder*) builderWithPrototype:(OWSSignalServiceProtosContactDetails*) prototype {
+ return [[OWSSignalServiceProtosContactDetails builder] mergeFrom:prototype];
+}
+- (OWSSignalServiceProtosContactDetailsBuilder*) builder {
+ return [OWSSignalServiceProtosContactDetails builder];
+}
+- (OWSSignalServiceProtosContactDetailsBuilder*) toBuilder {
+ return [OWSSignalServiceProtosContactDetails builderWithPrototype:self];
+}
+- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
+ if (self.hasNumber) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"number", self.number];
+ }
+ if (self.hasName) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"name", self.name];
+ }
+ if (self.hasAvatar) {
+ [output appendFormat:@"%@%@ {\n", indent, @"avatar"];
+ [self.avatar writeDescriptionTo:output
+ withIndent:[NSString stringWithFormat:@"%@ ", indent]];
+ [output appendFormat:@"%@}\n", indent];
+ }
+ [self.unknownFields writeDescriptionTo:output withIndent:indent];
+}
+- (void) storeInDictionary:(NSMutableDictionary *)dictionary {
+ if (self.hasNumber) {
+ [dictionary setObject: self.number forKey: @"number"];
+ }
+ if (self.hasName) {
+ [dictionary setObject: self.name forKey: @"name"];
+ }
+ if (self.hasAvatar) {
+ NSMutableDictionary *messageDictionary = [NSMutableDictionary dictionary];
+ [self.avatar storeInDictionary:messageDictionary];
+ [dictionary setObject:[NSDictionary dictionaryWithDictionary:messageDictionary] forKey:@"avatar"];
+ }
+ [self.unknownFields storeInDictionary:dictionary];
+}
+- (BOOL) isEqual:(id)other {
+ if (other == self) {
+ return YES;
+ }
+ if (![other isKindOfClass:[OWSSignalServiceProtosContactDetails class]]) {
+ return NO;
+ }
+ OWSSignalServiceProtosContactDetails *otherMessage = other;
+ return
+ self.hasNumber == otherMessage.hasNumber &&
+ (!self.hasNumber || [self.number isEqual:otherMessage.number]) &&
+ self.hasName == otherMessage.hasName &&
+ (!self.hasName || [self.name isEqual:otherMessage.name]) &&
+ self.hasAvatar == otherMessage.hasAvatar &&
+ (!self.hasAvatar || [self.avatar isEqual:otherMessage.avatar]) &&
+ (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
+}
+- (NSUInteger) hash {
+ __block NSUInteger hashCode = 7;
+ if (self.hasNumber) {
+ hashCode = hashCode * 31 + [self.number hash];
+ }
+ if (self.hasName) {
+ hashCode = hashCode * 31 + [self.name hash];
+ }
+ if (self.hasAvatar) {
+ hashCode = hashCode * 31 + [self.avatar hash];
+ }
+ hashCode = hashCode * 31 + [self.unknownFields hash];
+ return hashCode;
+}
+@end
+
+@interface OWSSignalServiceProtosContactDetailsAvatar ()
+@property (strong) NSString* contentType;
+@property UInt32 length;
+@end
+
+@implementation OWSSignalServiceProtosContactDetailsAvatar
+
+- (BOOL) hasContentType {
+ return !!hasContentType_;
+}
+- (void) setHasContentType:(BOOL) _value_ {
+ hasContentType_ = !!_value_;
+}
+@synthesize contentType;
+- (BOOL) hasLength {
+ return !!hasLength_;
+}
+- (void) setHasLength:(BOOL) _value_ {
+ hasLength_ = !!_value_;
+}
+@synthesize length;
+- (instancetype) init {
+ if ((self = [super init])) {
+ self.contentType = @"";
+ self.length = 0;
+ }
+ return self;
+}
+static OWSSignalServiceProtosContactDetailsAvatar* defaultOWSSignalServiceProtosContactDetailsAvatarInstance = nil;
++ (void) initialize {
+ if (self == [OWSSignalServiceProtosContactDetailsAvatar class]) {
+ defaultOWSSignalServiceProtosContactDetailsAvatarInstance = [[OWSSignalServiceProtosContactDetailsAvatar alloc] init];
+ }
+}
++ (instancetype) defaultInstance {
+ return defaultOWSSignalServiceProtosContactDetailsAvatarInstance;
+}
+- (instancetype) defaultInstance {
+ return defaultOWSSignalServiceProtosContactDetailsAvatarInstance;
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasContentType) {
+ [output writeString:1 value:self.contentType];
+ }
+ if (self.hasLength) {
+ [output writeUInt32:2 value:self.length];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (SInt32) serializedSize {
+ __block SInt32 size_ = memoizedSerializedSize;
+ if (size_ != -1) {
+ return size_;
+ }
+
+ size_ = 0;
+ if (self.hasContentType) {
+ size_ += computeStringSize(1, self.contentType);
+ }
+ if (self.hasLength) {
+ size_ += computeUInt32Size(2, self.length);
+ }
+ size_ += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size_;
+ return size_;
+}
++ (OWSSignalServiceProtosContactDetailsAvatar*) parseFromData:(NSData*) data {
+ return (OWSSignalServiceProtosContactDetailsAvatar*)[[[OWSSignalServiceProtosContactDetailsAvatar builder] mergeFromData:data] build];
+}
++ (OWSSignalServiceProtosContactDetailsAvatar*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosContactDetailsAvatar*)[[[OWSSignalServiceProtosContactDetailsAvatar builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosContactDetailsAvatar*) parseFromInputStream:(NSInputStream*) input {
+ return (OWSSignalServiceProtosContactDetailsAvatar*)[[[OWSSignalServiceProtosContactDetailsAvatar builder] mergeFromInputStream:input] build];
+}
++ (OWSSignalServiceProtosContactDetailsAvatar*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosContactDetailsAvatar*)[[[OWSSignalServiceProtosContactDetailsAvatar builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosContactDetailsAvatar*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (OWSSignalServiceProtosContactDetailsAvatar*)[[[OWSSignalServiceProtosContactDetailsAvatar builder] mergeFromCodedInputStream:input] build];
+}
++ (OWSSignalServiceProtosContactDetailsAvatar*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosContactDetailsAvatar*)[[[OWSSignalServiceProtosContactDetailsAvatar builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosContactDetailsAvatarBuilder*) builder {
+ return [[OWSSignalServiceProtosContactDetailsAvatarBuilder alloc] init];
+}
++ (OWSSignalServiceProtosContactDetailsAvatarBuilder*) builderWithPrototype:(OWSSignalServiceProtosContactDetailsAvatar*) prototype {
+ return [[OWSSignalServiceProtosContactDetailsAvatar builder] mergeFrom:prototype];
+}
+- (OWSSignalServiceProtosContactDetailsAvatarBuilder*) builder {
+ return [OWSSignalServiceProtosContactDetailsAvatar builder];
+}
+- (OWSSignalServiceProtosContactDetailsAvatarBuilder*) toBuilder {
+ return [OWSSignalServiceProtosContactDetailsAvatar builderWithPrototype:self];
+}
+- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
+ if (self.hasContentType) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"contentType", self.contentType];
+ }
+ if (self.hasLength) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"length", [NSNumber numberWithInteger:self.length]];
+ }
+ [self.unknownFields writeDescriptionTo:output withIndent:indent];
+}
+- (void) storeInDictionary:(NSMutableDictionary *)dictionary {
+ if (self.hasContentType) {
+ [dictionary setObject: self.contentType forKey: @"contentType"];
+ }
+ if (self.hasLength) {
+ [dictionary setObject: [NSNumber numberWithInteger:self.length] forKey: @"length"];
+ }
+ [self.unknownFields storeInDictionary:dictionary];
+}
+- (BOOL) isEqual:(id)other {
+ if (other == self) {
+ return YES;
+ }
+ if (![other isKindOfClass:[OWSSignalServiceProtosContactDetailsAvatar class]]) {
+ return NO;
+ }
+ OWSSignalServiceProtosContactDetailsAvatar *otherMessage = other;
+ return
+ self.hasContentType == otherMessage.hasContentType &&
+ (!self.hasContentType || [self.contentType isEqual:otherMessage.contentType]) &&
+ self.hasLength == otherMessage.hasLength &&
+ (!self.hasLength || self.length == otherMessage.length) &&
+ (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
+}
+- (NSUInteger) hash {
+ __block NSUInteger hashCode = 7;
+ if (self.hasContentType) {
+ hashCode = hashCode * 31 + [self.contentType hash];
+ }
+ if (self.hasLength) {
+ hashCode = hashCode * 31 + [[NSNumber numberWithInteger:self.length] hash];
+ }
+ hashCode = hashCode * 31 + [self.unknownFields hash];
+ return hashCode;
+}
+@end
+
+@interface OWSSignalServiceProtosContactDetailsAvatarBuilder()
+@property (strong) OWSSignalServiceProtosContactDetailsAvatar* resultAvatar;
+@end
+
+@implementation OWSSignalServiceProtosContactDetailsAvatarBuilder
+@synthesize resultAvatar;
+- (instancetype) init {
+ if ((self = [super init])) {
+ self.resultAvatar = [[OWSSignalServiceProtosContactDetailsAvatar alloc] init];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return resultAvatar;
+}
+- (OWSSignalServiceProtosContactDetailsAvatarBuilder*) clear {
+ self.resultAvatar = [[OWSSignalServiceProtosContactDetailsAvatar alloc] init];
+ return self;
+}
+- (OWSSignalServiceProtosContactDetailsAvatarBuilder*) clone {
+ return [OWSSignalServiceProtosContactDetailsAvatar builderWithPrototype:resultAvatar];
+}
+- (OWSSignalServiceProtosContactDetailsAvatar*) defaultInstance {
+ return [OWSSignalServiceProtosContactDetailsAvatar defaultInstance];
+}
+- (OWSSignalServiceProtosContactDetailsAvatar*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (OWSSignalServiceProtosContactDetailsAvatar*) buildPartial {
+ OWSSignalServiceProtosContactDetailsAvatar* returnMe = resultAvatar;
+ self.resultAvatar = nil;
+ return returnMe;
+}
+- (OWSSignalServiceProtosContactDetailsAvatarBuilder*) mergeFrom:(OWSSignalServiceProtosContactDetailsAvatar*) other {
+ if (other == [OWSSignalServiceProtosContactDetailsAvatar defaultInstance]) {
+ return self;
+ }
+ if (other.hasContentType) {
+ [self setContentType:other.contentType];
+ }
+ if (other.hasLength) {
+ [self setLength:other.length];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (OWSSignalServiceProtosContactDetailsAvatarBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (OWSSignalServiceProtosContactDetailsAvatarBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ SInt32 tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 10: {
+ [self setContentType:[input readString]];
+ break;
+ }
+ case 16: {
+ [self setLength:[input readUInt32]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasContentType {
+ return resultAvatar.hasContentType;
+}
+- (NSString*) contentType {
+ return resultAvatar.contentType;
+}
+- (OWSSignalServiceProtosContactDetailsAvatarBuilder*) setContentType:(NSString*) value {
+ resultAvatar.hasContentType = YES;
+ resultAvatar.contentType = value;
+ return self;
+}
+- (OWSSignalServiceProtosContactDetailsAvatarBuilder*) clearContentType {
+ resultAvatar.hasContentType = NO;
+ resultAvatar.contentType = @"";
+ return self;
+}
+- (BOOL) hasLength {
+ return resultAvatar.hasLength;
+}
+- (UInt32) length {
+ return resultAvatar.length;
+}
+- (OWSSignalServiceProtosContactDetailsAvatarBuilder*) setLength:(UInt32) value {
+ resultAvatar.hasLength = YES;
+ resultAvatar.length = value;
+ return self;
+}
+- (OWSSignalServiceProtosContactDetailsAvatarBuilder*) clearLength {
+ resultAvatar.hasLength = NO;
+ resultAvatar.length = 0;
+ return self;
+}
+@end
+
+@interface OWSSignalServiceProtosContactDetailsBuilder()
+@property (strong) OWSSignalServiceProtosContactDetails* resultContactDetails;
+@end
+
+@implementation OWSSignalServiceProtosContactDetailsBuilder
+@synthesize resultContactDetails;
+- (instancetype) init {
+ if ((self = [super init])) {
+ self.resultContactDetails = [[OWSSignalServiceProtosContactDetails alloc] init];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return resultContactDetails;
+}
+- (OWSSignalServiceProtosContactDetailsBuilder*) clear {
+ self.resultContactDetails = [[OWSSignalServiceProtosContactDetails alloc] init];
+ return self;
+}
+- (OWSSignalServiceProtosContactDetailsBuilder*) clone {
+ return [OWSSignalServiceProtosContactDetails builderWithPrototype:resultContactDetails];
+}
+- (OWSSignalServiceProtosContactDetails*) defaultInstance {
+ return [OWSSignalServiceProtosContactDetails defaultInstance];
+}
+- (OWSSignalServiceProtosContactDetails*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (OWSSignalServiceProtosContactDetails*) buildPartial {
+ OWSSignalServiceProtosContactDetails* returnMe = resultContactDetails;
+ self.resultContactDetails = nil;
+ return returnMe;
+}
+- (OWSSignalServiceProtosContactDetailsBuilder*) mergeFrom:(OWSSignalServiceProtosContactDetails*) other {
+ if (other == [OWSSignalServiceProtosContactDetails defaultInstance]) {
+ return self;
+ }
+ if (other.hasNumber) {
+ [self setNumber:other.number];
+ }
+ if (other.hasName) {
+ [self setName:other.name];
+ }
+ if (other.hasAvatar) {
+ [self mergeAvatar:other.avatar];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (OWSSignalServiceProtosContactDetailsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (OWSSignalServiceProtosContactDetailsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ SInt32 tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 10: {
+ [self setNumber:[input readString]];
+ break;
+ }
+ case 18: {
+ [self setName:[input readString]];
+ break;
+ }
+ case 26: {
+ OWSSignalServiceProtosContactDetailsAvatarBuilder* subBuilder = [OWSSignalServiceProtosContactDetailsAvatar builder];
+ if (self.hasAvatar) {
+ [subBuilder mergeFrom:self.avatar];
+ }
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self setAvatar:[subBuilder buildPartial]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasNumber {
+ return resultContactDetails.hasNumber;
+}
+- (NSString*) number {
+ return resultContactDetails.number;
+}
+- (OWSSignalServiceProtosContactDetailsBuilder*) setNumber:(NSString*) value {
+ resultContactDetails.hasNumber = YES;
+ resultContactDetails.number = value;
+ return self;
+}
+- (OWSSignalServiceProtosContactDetailsBuilder*) clearNumber {
+ resultContactDetails.hasNumber = NO;
+ resultContactDetails.number = @"";
+ return self;
+}
+- (BOOL) hasName {
+ return resultContactDetails.hasName;
+}
+- (NSString*) name {
+ return resultContactDetails.name;
+}
+- (OWSSignalServiceProtosContactDetailsBuilder*) setName:(NSString*) value {
+ resultContactDetails.hasName = YES;
+ resultContactDetails.name = value;
+ return self;
+}
+- (OWSSignalServiceProtosContactDetailsBuilder*) clearName {
+ resultContactDetails.hasName = NO;
+ resultContactDetails.name = @"";
+ return self;
+}
+- (BOOL) hasAvatar {
+ return resultContactDetails.hasAvatar;
+}
+- (OWSSignalServiceProtosContactDetailsAvatar*) avatar {
+ return resultContactDetails.avatar;
+}
+- (OWSSignalServiceProtosContactDetailsBuilder*) setAvatar:(OWSSignalServiceProtosContactDetailsAvatar*) value {
+ resultContactDetails.hasAvatar = YES;
+ resultContactDetails.avatar = value;
+ return self;
+}
+- (OWSSignalServiceProtosContactDetailsBuilder*) setAvatarBuilder:(OWSSignalServiceProtosContactDetailsAvatarBuilder*) builderForValue {
+ return [self setAvatar:[builderForValue build]];
+}
+- (OWSSignalServiceProtosContactDetailsBuilder*) mergeAvatar:(OWSSignalServiceProtosContactDetailsAvatar*) value {
+ if (resultContactDetails.hasAvatar &&
+ resultContactDetails.avatar != [OWSSignalServiceProtosContactDetailsAvatar defaultInstance]) {
+ resultContactDetails.avatar =
+ [[[OWSSignalServiceProtosContactDetailsAvatar builderWithPrototype:resultContactDetails.avatar] mergeFrom:value] buildPartial];
+ } else {
+ resultContactDetails.avatar = value;
+ }
+ resultContactDetails.hasAvatar = YES;
+ return self;
+}
+- (OWSSignalServiceProtosContactDetailsBuilder*) clearAvatar {
+ resultContactDetails.hasAvatar = NO;
+ resultContactDetails.avatar = [OWSSignalServiceProtosContactDetailsAvatar defaultInstance];
+ return self;
+}
+@end
+
+@interface OWSSignalServiceProtosGroupDetails ()
+@property (strong) NSData* id;
+@property (strong) NSString* name;
+@property (strong) NSMutableArray * membersArray;
+@property (strong) OWSSignalServiceProtosGroupDetailsAvatar* avatar;
+@property BOOL active;
+@end
+
+@implementation OWSSignalServiceProtosGroupDetails
+
+- (BOOL) hasId {
+ return !!hasId_;
+}
+- (void) setHasId:(BOOL) _value_ {
+ hasId_ = !!_value_;
+}
+@synthesize id;
+- (BOOL) hasName {
+ return !!hasName_;
+}
+- (void) setHasName:(BOOL) _value_ {
+ hasName_ = !!_value_;
+}
+@synthesize name;
+@synthesize membersArray;
+@dynamic members;
+- (BOOL) hasAvatar {
+ return !!hasAvatar_;
+}
+- (void) setHasAvatar:(BOOL) _value_ {
+ hasAvatar_ = !!_value_;
+}
+@synthesize avatar;
+- (BOOL) hasActive {
+ return !!hasActive_;
+}
+- (void) setHasActive:(BOOL) _value_ {
+ hasActive_ = !!_value_;
+}
+- (BOOL) active {
+ return !!active_;
+}
+- (void) setActive:(BOOL) _value_ {
+ active_ = !!_value_;
+}
+- (instancetype) init {
+ if ((self = [super init])) {
+ self.id = [NSData data];
+ self.name = @"";
+ self.avatar = [OWSSignalServiceProtosGroupDetailsAvatar defaultInstance];
+ self.active = YES;
+ }
+ return self;
+}
+static OWSSignalServiceProtosGroupDetails* defaultOWSSignalServiceProtosGroupDetailsInstance = nil;
++ (void) initialize {
+ if (self == [OWSSignalServiceProtosGroupDetails class]) {
+ defaultOWSSignalServiceProtosGroupDetailsInstance = [[OWSSignalServiceProtosGroupDetails alloc] init];
+ }
+}
++ (instancetype) defaultInstance {
+ return defaultOWSSignalServiceProtosGroupDetailsInstance;
+}
+- (instancetype) defaultInstance {
+ return defaultOWSSignalServiceProtosGroupDetailsInstance;
+}
+- (NSArray *)members {
+ return membersArray;
+}
+- (NSString*)membersAtIndex:(NSUInteger)index {
+ return [membersArray objectAtIndex:index];
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasId) {
+ [output writeData:1 value:self.id];
+ }
+ if (self.hasName) {
+ [output writeString:2 value:self.name];
+ }
+ [self.membersArray enumerateObjectsUsingBlock:^(NSString *element, NSUInteger idx, BOOL *stop) {
+ [output writeString:3 value:element];
+ }];
+ if (self.hasAvatar) {
+ [output writeMessage:4 value:self.avatar];
+ }
+ if (self.hasActive) {
+ [output writeBool:5 value:self.active];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (SInt32) serializedSize {
+ __block SInt32 size_ = memoizedSerializedSize;
+ if (size_ != -1) {
+ return size_;
+ }
+
+ size_ = 0;
+ if (self.hasId) {
+ size_ += computeDataSize(1, self.id);
+ }
+ if (self.hasName) {
+ size_ += computeStringSize(2, self.name);
+ }
+ {
+ __block SInt32 dataSize = 0;
+ const NSUInteger count = self.membersArray.count;
+ [self.membersArray enumerateObjectsUsingBlock:^(NSString *element, NSUInteger idx, BOOL *stop) {
+ dataSize += computeStringSizeNoTag(element);
+ }];
+ size_ += dataSize;
+ size_ += (SInt32)(1 * count);
+ }
+ if (self.hasAvatar) {
+ size_ += computeMessageSize(4, self.avatar);
+ }
+ if (self.hasActive) {
+ size_ += computeBoolSize(5, self.active);
+ }
+ size_ += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size_;
+ return size_;
+}
++ (OWSSignalServiceProtosGroupDetails*) parseFromData:(NSData*) data {
+ return (OWSSignalServiceProtosGroupDetails*)[[[OWSSignalServiceProtosGroupDetails builder] mergeFromData:data] build];
+}
++ (OWSSignalServiceProtosGroupDetails*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosGroupDetails*)[[[OWSSignalServiceProtosGroupDetails builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosGroupDetails*) parseFromInputStream:(NSInputStream*) input {
+ return (OWSSignalServiceProtosGroupDetails*)[[[OWSSignalServiceProtosGroupDetails builder] mergeFromInputStream:input] build];
+}
++ (OWSSignalServiceProtosGroupDetails*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosGroupDetails*)[[[OWSSignalServiceProtosGroupDetails builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosGroupDetails*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (OWSSignalServiceProtosGroupDetails*)[[[OWSSignalServiceProtosGroupDetails builder] mergeFromCodedInputStream:input] build];
+}
++ (OWSSignalServiceProtosGroupDetails*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosGroupDetails*)[[[OWSSignalServiceProtosGroupDetails builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosGroupDetailsBuilder*) builder {
+ return [[OWSSignalServiceProtosGroupDetailsBuilder alloc] init];
+}
++ (OWSSignalServiceProtosGroupDetailsBuilder*) builderWithPrototype:(OWSSignalServiceProtosGroupDetails*) prototype {
+ return [[OWSSignalServiceProtosGroupDetails builder] mergeFrom:prototype];
+}
+- (OWSSignalServiceProtosGroupDetailsBuilder*) builder {
+ return [OWSSignalServiceProtosGroupDetails builder];
+}
+- (OWSSignalServiceProtosGroupDetailsBuilder*) toBuilder {
+ return [OWSSignalServiceProtosGroupDetails builderWithPrototype:self];
+}
+- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
+ if (self.hasId) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"id", self.id];
+ }
+ if (self.hasName) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"name", self.name];
+ }
+ [self.membersArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"members", obj];
+ }];
+ if (self.hasAvatar) {
+ [output appendFormat:@"%@%@ {\n", indent, @"avatar"];
+ [self.avatar writeDescriptionTo:output
+ withIndent:[NSString stringWithFormat:@"%@ ", indent]];
+ [output appendFormat:@"%@}\n", indent];
+ }
+ if (self.hasActive) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"active", [NSNumber numberWithBool:self.active]];
+ }
+ [self.unknownFields writeDescriptionTo:output withIndent:indent];
+}
+- (void) storeInDictionary:(NSMutableDictionary *)dictionary {
+ if (self.hasId) {
+ [dictionary setObject: self.id forKey: @"id"];
+ }
+ if (self.hasName) {
+ [dictionary setObject: self.name forKey: @"name"];
+ }
+ [dictionary setObject:self.members forKey: @"members"];
+ if (self.hasAvatar) {
+ NSMutableDictionary *messageDictionary = [NSMutableDictionary dictionary];
+ [self.avatar storeInDictionary:messageDictionary];
+ [dictionary setObject:[NSDictionary dictionaryWithDictionary:messageDictionary] forKey:@"avatar"];
+ }
+ if (self.hasActive) {
+ [dictionary setObject: [NSNumber numberWithBool:self.active] forKey: @"active"];
+ }
+ [self.unknownFields storeInDictionary:dictionary];
+}
+- (BOOL) isEqual:(id)other {
+ if (other == self) {
+ return YES;
+ }
+ if (![other isKindOfClass:[OWSSignalServiceProtosGroupDetails class]]) {
+ return NO;
+ }
+ OWSSignalServiceProtosGroupDetails *otherMessage = other;
+ return
+ self.hasId == otherMessage.hasId &&
+ (!self.hasId || [self.id isEqual:otherMessage.id]) &&
+ self.hasName == otherMessage.hasName &&
+ (!self.hasName || [self.name isEqual:otherMessage.name]) &&
+ [self.membersArray isEqualToArray:otherMessage.membersArray] &&
+ self.hasAvatar == otherMessage.hasAvatar &&
+ (!self.hasAvatar || [self.avatar isEqual:otherMessage.avatar]) &&
+ self.hasActive == otherMessage.hasActive &&
+ (!self.hasActive || self.active == otherMessage.active) &&
+ (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
+}
+- (NSUInteger) hash {
+ __block NSUInteger hashCode = 7;
+ if (self.hasId) {
+ hashCode = hashCode * 31 + [self.id hash];
+ }
+ if (self.hasName) {
+ hashCode = hashCode * 31 + [self.name hash];
+ }
+ [self.membersArray enumerateObjectsUsingBlock:^(NSString *element, NSUInteger idx, BOOL *stop) {
+ hashCode = hashCode * 31 + [element hash];
+ }];
+ if (self.hasAvatar) {
+ hashCode = hashCode * 31 + [self.avatar hash];
+ }
+ if (self.hasActive) {
+ hashCode = hashCode * 31 + [[NSNumber numberWithBool:self.active] hash];
+ }
+ hashCode = hashCode * 31 + [self.unknownFields hash];
+ return hashCode;
+}
+@end
+
+@interface OWSSignalServiceProtosGroupDetailsAvatar ()
+@property (strong) NSString* contentType;
+@property UInt32 length;
+@end
+
+@implementation OWSSignalServiceProtosGroupDetailsAvatar
+
+- (BOOL) hasContentType {
+ return !!hasContentType_;
+}
+- (void) setHasContentType:(BOOL) _value_ {
+ hasContentType_ = !!_value_;
+}
+@synthesize contentType;
+- (BOOL) hasLength {
+ return !!hasLength_;
+}
+- (void) setHasLength:(BOOL) _value_ {
+ hasLength_ = !!_value_;
+}
+@synthesize length;
+- (instancetype) init {
+ if ((self = [super init])) {
+ self.contentType = @"";
+ self.length = 0;
+ }
+ return self;
+}
+static OWSSignalServiceProtosGroupDetailsAvatar* defaultOWSSignalServiceProtosGroupDetailsAvatarInstance = nil;
++ (void) initialize {
+ if (self == [OWSSignalServiceProtosGroupDetailsAvatar class]) {
+ defaultOWSSignalServiceProtosGroupDetailsAvatarInstance = [[OWSSignalServiceProtosGroupDetailsAvatar alloc] init];
+ }
+}
++ (instancetype) defaultInstance {
+ return defaultOWSSignalServiceProtosGroupDetailsAvatarInstance;
+}
+- (instancetype) defaultInstance {
+ return defaultOWSSignalServiceProtosGroupDetailsAvatarInstance;
+}
+- (BOOL) isInitialized {
+ return YES;
+}
+- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
+ if (self.hasContentType) {
+ [output writeString:1 value:self.contentType];
+ }
+ if (self.hasLength) {
+ [output writeUInt32:2 value:self.length];
+ }
+ [self.unknownFields writeToCodedOutputStream:output];
+}
+- (SInt32) serializedSize {
+ __block SInt32 size_ = memoizedSerializedSize;
+ if (size_ != -1) {
+ return size_;
+ }
+
+ size_ = 0;
+ if (self.hasContentType) {
+ size_ += computeStringSize(1, self.contentType);
+ }
+ if (self.hasLength) {
+ size_ += computeUInt32Size(2, self.length);
+ }
+ size_ += self.unknownFields.serializedSize;
+ memoizedSerializedSize = size_;
+ return size_;
+}
++ (OWSSignalServiceProtosGroupDetailsAvatar*) parseFromData:(NSData*) data {
+ return (OWSSignalServiceProtosGroupDetailsAvatar*)[[[OWSSignalServiceProtosGroupDetailsAvatar builder] mergeFromData:data] build];
+}
++ (OWSSignalServiceProtosGroupDetailsAvatar*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosGroupDetailsAvatar*)[[[OWSSignalServiceProtosGroupDetailsAvatar builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosGroupDetailsAvatar*) parseFromInputStream:(NSInputStream*) input {
+ return (OWSSignalServiceProtosGroupDetailsAvatar*)[[[OWSSignalServiceProtosGroupDetailsAvatar builder] mergeFromInputStream:input] build];
+}
++ (OWSSignalServiceProtosGroupDetailsAvatar*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosGroupDetailsAvatar*)[[[OWSSignalServiceProtosGroupDetailsAvatar builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosGroupDetailsAvatar*) parseFromCodedInputStream:(PBCodedInputStream*) input {
+ return (OWSSignalServiceProtosGroupDetailsAvatar*)[[[OWSSignalServiceProtosGroupDetailsAvatar builder] mergeFromCodedInputStream:input] build];
+}
++ (OWSSignalServiceProtosGroupDetailsAvatar*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ return (OWSSignalServiceProtosGroupDetailsAvatar*)[[[OWSSignalServiceProtosGroupDetailsAvatar builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
+}
++ (OWSSignalServiceProtosGroupDetailsAvatarBuilder*) builder {
+ return [[OWSSignalServiceProtosGroupDetailsAvatarBuilder alloc] init];
+}
++ (OWSSignalServiceProtosGroupDetailsAvatarBuilder*) builderWithPrototype:(OWSSignalServiceProtosGroupDetailsAvatar*) prototype {
+ return [[OWSSignalServiceProtosGroupDetailsAvatar builder] mergeFrom:prototype];
+}
+- (OWSSignalServiceProtosGroupDetailsAvatarBuilder*) builder {
+ return [OWSSignalServiceProtosGroupDetailsAvatar builder];
+}
+- (OWSSignalServiceProtosGroupDetailsAvatarBuilder*) toBuilder {
+ return [OWSSignalServiceProtosGroupDetailsAvatar builderWithPrototype:self];
+}
+- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
+ if (self.hasContentType) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"contentType", self.contentType];
+ }
+ if (self.hasLength) {
+ [output appendFormat:@"%@%@: %@\n", indent, @"length", [NSNumber numberWithInteger:self.length]];
+ }
+ [self.unknownFields writeDescriptionTo:output withIndent:indent];
+}
+- (void) storeInDictionary:(NSMutableDictionary *)dictionary {
+ if (self.hasContentType) {
+ [dictionary setObject: self.contentType forKey: @"contentType"];
+ }
+ if (self.hasLength) {
+ [dictionary setObject: [NSNumber numberWithInteger:self.length] forKey: @"length"];
+ }
+ [self.unknownFields storeInDictionary:dictionary];
+}
+- (BOOL) isEqual:(id)other {
+ if (other == self) {
+ return YES;
+ }
+ if (![other isKindOfClass:[OWSSignalServiceProtosGroupDetailsAvatar class]]) {
+ return NO;
+ }
+ OWSSignalServiceProtosGroupDetailsAvatar *otherMessage = other;
+ return
+ self.hasContentType == otherMessage.hasContentType &&
+ (!self.hasContentType || [self.contentType isEqual:otherMessage.contentType]) &&
+ self.hasLength == otherMessage.hasLength &&
+ (!self.hasLength || self.length == otherMessage.length) &&
+ (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
+}
+- (NSUInteger) hash {
+ __block NSUInteger hashCode = 7;
+ if (self.hasContentType) {
+ hashCode = hashCode * 31 + [self.contentType hash];
+ }
+ if (self.hasLength) {
+ hashCode = hashCode * 31 + [[NSNumber numberWithInteger:self.length] hash];
+ }
+ hashCode = hashCode * 31 + [self.unknownFields hash];
+ return hashCode;
+}
+@end
+
+@interface OWSSignalServiceProtosGroupDetailsAvatarBuilder()
+@property (strong) OWSSignalServiceProtosGroupDetailsAvatar* resultAvatar;
+@end
+
+@implementation OWSSignalServiceProtosGroupDetailsAvatarBuilder
+@synthesize resultAvatar;
+- (instancetype) init {
+ if ((self = [super init])) {
+ self.resultAvatar = [[OWSSignalServiceProtosGroupDetailsAvatar alloc] init];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return resultAvatar;
+}
+- (OWSSignalServiceProtosGroupDetailsAvatarBuilder*) clear {
+ self.resultAvatar = [[OWSSignalServiceProtosGroupDetailsAvatar alloc] init];
+ return self;
+}
+- (OWSSignalServiceProtosGroupDetailsAvatarBuilder*) clone {
+ return [OWSSignalServiceProtosGroupDetailsAvatar builderWithPrototype:resultAvatar];
+}
+- (OWSSignalServiceProtosGroupDetailsAvatar*) defaultInstance {
+ return [OWSSignalServiceProtosGroupDetailsAvatar defaultInstance];
+}
+- (OWSSignalServiceProtosGroupDetailsAvatar*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (OWSSignalServiceProtosGroupDetailsAvatar*) buildPartial {
+ OWSSignalServiceProtosGroupDetailsAvatar* returnMe = resultAvatar;
+ self.resultAvatar = nil;
+ return returnMe;
+}
+- (OWSSignalServiceProtosGroupDetailsAvatarBuilder*) mergeFrom:(OWSSignalServiceProtosGroupDetailsAvatar*) other {
+ if (other == [OWSSignalServiceProtosGroupDetailsAvatar defaultInstance]) {
+ return self;
+ }
+ if (other.hasContentType) {
+ [self setContentType:other.contentType];
+ }
+ if (other.hasLength) {
+ [self setLength:other.length];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (OWSSignalServiceProtosGroupDetailsAvatarBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (OWSSignalServiceProtosGroupDetailsAvatarBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ SInt32 tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 10: {
+ [self setContentType:[input readString]];
+ break;
+ }
+ case 16: {
+ [self setLength:[input readUInt32]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasContentType {
+ return resultAvatar.hasContentType;
+}
+- (NSString*) contentType {
+ return resultAvatar.contentType;
+}
+- (OWSSignalServiceProtosGroupDetailsAvatarBuilder*) setContentType:(NSString*) value {
+ resultAvatar.hasContentType = YES;
+ resultAvatar.contentType = value;
+ return self;
+}
+- (OWSSignalServiceProtosGroupDetailsAvatarBuilder*) clearContentType {
+ resultAvatar.hasContentType = NO;
+ resultAvatar.contentType = @"";
+ return self;
+}
+- (BOOL) hasLength {
+ return resultAvatar.hasLength;
+}
+- (UInt32) length {
+ return resultAvatar.length;
+}
+- (OWSSignalServiceProtosGroupDetailsAvatarBuilder*) setLength:(UInt32) value {
+ resultAvatar.hasLength = YES;
+ resultAvatar.length = value;
+ return self;
+}
+- (OWSSignalServiceProtosGroupDetailsAvatarBuilder*) clearLength {
+ resultAvatar.hasLength = NO;
+ resultAvatar.length = 0;
+ return self;
+}
+@end
+
+@interface OWSSignalServiceProtosGroupDetailsBuilder()
+@property (strong) OWSSignalServiceProtosGroupDetails* resultGroupDetails;
+@end
+
+@implementation OWSSignalServiceProtosGroupDetailsBuilder
+@synthesize resultGroupDetails;
+- (instancetype) init {
+ if ((self = [super init])) {
+ self.resultGroupDetails = [[OWSSignalServiceProtosGroupDetails alloc] init];
+ }
+ return self;
+}
+- (PBGeneratedMessage*) internalGetResult {
+ return resultGroupDetails;
+}
+- (OWSSignalServiceProtosGroupDetailsBuilder*) clear {
+ self.resultGroupDetails = [[OWSSignalServiceProtosGroupDetails alloc] init];
+ return self;
+}
+- (OWSSignalServiceProtosGroupDetailsBuilder*) clone {
+ return [OWSSignalServiceProtosGroupDetails builderWithPrototype:resultGroupDetails];
+}
+- (OWSSignalServiceProtosGroupDetails*) defaultInstance {
+ return [OWSSignalServiceProtosGroupDetails defaultInstance];
+}
+- (OWSSignalServiceProtosGroupDetails*) build {
+ [self checkInitialized];
+ return [self buildPartial];
+}
+- (OWSSignalServiceProtosGroupDetails*) buildPartial {
+ OWSSignalServiceProtosGroupDetails* returnMe = resultGroupDetails;
+ self.resultGroupDetails = nil;
+ return returnMe;
+}
+- (OWSSignalServiceProtosGroupDetailsBuilder*) mergeFrom:(OWSSignalServiceProtosGroupDetails*) other {
+ if (other == [OWSSignalServiceProtosGroupDetails defaultInstance]) {
+ return self;
+ }
+ if (other.hasId) {
+ [self setId:other.id];
+ }
+ if (other.hasName) {
+ [self setName:other.name];
+ }
+ if (other.membersArray.count > 0) {
+ if (resultGroupDetails.membersArray == nil) {
+ resultGroupDetails.membersArray = [[NSMutableArray alloc] initWithArray:other.membersArray];
+ } else {
+ [resultGroupDetails.membersArray addObjectsFromArray:other.membersArray];
+ }
+ }
+ if (other.hasAvatar) {
+ [self mergeAvatar:other.avatar];
+ }
+ if (other.hasActive) {
+ [self setActive:other.active];
+ }
+ [self mergeUnknownFields:other.unknownFields];
+ return self;
+}
+- (OWSSignalServiceProtosGroupDetailsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
+ return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
+}
+- (OWSSignalServiceProtosGroupDetailsBuilder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
+ PBUnknownFieldSetBuilder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
+ while (YES) {
+ SInt32 tag = [input readTag];
+ switch (tag) {
+ case 0:
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ default: {
+ if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
+ [self setUnknownFields:[unknownFields build]];
+ return self;
+ }
+ break;
+ }
+ case 10: {
+ [self setId:[input readData]];
+ break;
+ }
+ case 18: {
+ [self setName:[input readString]];
+ break;
+ }
+ case 26: {
+ [self addMembers:[input readString]];
+ break;
+ }
+ case 34: {
+ OWSSignalServiceProtosGroupDetailsAvatarBuilder* subBuilder = [OWSSignalServiceProtosGroupDetailsAvatar builder];
+ if (self.hasAvatar) {
+ [subBuilder mergeFrom:self.avatar];
+ }
+ [input readMessage:subBuilder extensionRegistry:extensionRegistry];
+ [self setAvatar:[subBuilder buildPartial]];
+ break;
+ }
+ case 40: {
+ [self setActive:[input readBool]];
+ break;
+ }
+ }
+ }
+}
+- (BOOL) hasId {
+ return resultGroupDetails.hasId;
+}
+- (NSData*) id {
+ return resultGroupDetails.id;
+}
+- (OWSSignalServiceProtosGroupDetailsBuilder*) setId:(NSData*) value {
+ resultGroupDetails.hasId = YES;
+ resultGroupDetails.id = value;
+ return self;
+}
+- (OWSSignalServiceProtosGroupDetailsBuilder*) clearId {
+ resultGroupDetails.hasId = NO;
+ resultGroupDetails.id = [NSData data];
+ return self;
+}
+- (BOOL) hasName {
+ return resultGroupDetails.hasName;
+}
+- (NSString*) name {
+ return resultGroupDetails.name;
+}
+- (OWSSignalServiceProtosGroupDetailsBuilder*) setName:(NSString*) value {
+ resultGroupDetails.hasName = YES;
+ resultGroupDetails.name = value;
+ return self;
+}
+- (OWSSignalServiceProtosGroupDetailsBuilder*) clearName {
+ resultGroupDetails.hasName = NO;
+ resultGroupDetails.name = @"";
+ return self;
+}
+- (NSMutableArray *)members {
+ return resultGroupDetails.membersArray;
+}
+- (NSString*)membersAtIndex:(NSUInteger)index {
+ return [resultGroupDetails membersAtIndex:index];
+}
+- (OWSSignalServiceProtosGroupDetailsBuilder *)addMembers:(NSString*)value {
+ if (resultGroupDetails.membersArray == nil) {
+ resultGroupDetails.membersArray = [[NSMutableArray alloc]init];
+ }
+ [resultGroupDetails.membersArray addObject:value];
+ return self;
+}
+- (OWSSignalServiceProtosGroupDetailsBuilder *)setMembersArray:(NSArray *)array {
+ resultGroupDetails.membersArray = [[NSMutableArray alloc] initWithArray:array];
+ return self;
+}
+- (OWSSignalServiceProtosGroupDetailsBuilder *)clearMembers {
+ resultGroupDetails.membersArray = nil;
+ return self;
+}
+- (BOOL) hasAvatar {
+ return resultGroupDetails.hasAvatar;
+}
+- (OWSSignalServiceProtosGroupDetailsAvatar*) avatar {
+ return resultGroupDetails.avatar;
+}
+- (OWSSignalServiceProtosGroupDetailsBuilder*) setAvatar:(OWSSignalServiceProtosGroupDetailsAvatar*) value {
+ resultGroupDetails.hasAvatar = YES;
+ resultGroupDetails.avatar = value;
+ return self;
+}
+- (OWSSignalServiceProtosGroupDetailsBuilder*) setAvatarBuilder:(OWSSignalServiceProtosGroupDetailsAvatarBuilder*) builderForValue {
+ return [self setAvatar:[builderForValue build]];
+}
+- (OWSSignalServiceProtosGroupDetailsBuilder*) mergeAvatar:(OWSSignalServiceProtosGroupDetailsAvatar*) value {
+ if (resultGroupDetails.hasAvatar &&
+ resultGroupDetails.avatar != [OWSSignalServiceProtosGroupDetailsAvatar defaultInstance]) {
+ resultGroupDetails.avatar =
+ [[[OWSSignalServiceProtosGroupDetailsAvatar builderWithPrototype:resultGroupDetails.avatar] mergeFrom:value] buildPartial];
+ } else {
+ resultGroupDetails.avatar = value;
+ }
+ resultGroupDetails.hasAvatar = YES;
+ return self;
+}
+- (OWSSignalServiceProtosGroupDetailsBuilder*) clearAvatar {
+ resultGroupDetails.hasAvatar = NO;
+ resultGroupDetails.avatar = [OWSSignalServiceProtosGroupDetailsAvatar defaultInstance];
+ return self;
+}
+- (BOOL) hasActive {
+ return resultGroupDetails.hasActive;
+}
+- (BOOL) active {
+ return resultGroupDetails.active;
+}
+- (OWSSignalServiceProtosGroupDetailsBuilder*) setActive:(BOOL) value {
+ resultGroupDetails.hasActive = YES;
+ resultGroupDetails.active = value;
+ return self;
+}
+- (OWSSignalServiceProtosGroupDetailsBuilder*) clearActive {
+ resultGroupDetails.hasActive = NO;
+ resultGroupDetails.active = YES;
+ return self;
+}
+@end
+
+
+// @@protoc_insertion_point(global_scope)
diff --git a/src/Messages/TSMessagesManager+attachments.h b/src/Messages/TSMessagesManager+attachments.h
index e2b34b9353..7e36ad86ff 100644
--- a/src/Messages/TSMessagesManager+attachments.h
+++ b/src/Messages/TSMessagesManager+attachments.h
@@ -14,7 +14,8 @@
@interface TSMessagesManager (attachments)
-- (void)handleReceivedMediaMessage:(IncomingPushMessageSignal *)message withContent:(PushMessageContent *)content;
+- (void)handleReceivedMediaWithEnvelope:(OWSSignalServiceProtosEnvelope *)envelope
+ dataMessage:(OWSSignalServiceProtosDataMessage *)message;
- (void)sendAttachment:(NSData *)attachmentData
contentType:(NSString *)contentType
diff --git a/src/Messages/TSMessagesManager+attachments.m b/src/Messages/TSMessagesManager+attachments.m
index 436afe4164..9a60572a5e 100644
--- a/src/Messages/TSMessagesManager+attachments.m
+++ b/src/Messages/TSMessagesManager+attachments.m
@@ -31,63 +31,67 @@ dispatch_queue_t attachmentsQueue() {
@implementation TSMessagesManager (attachments)
-- (void)handleReceivedMediaMessage:(IncomingPushMessageSignal *)message withContent:(PushMessageContent *)content {
- NSArray *attachmentsToRetrieve =
- (content.group != nil && (content.group.type == PushMessageContentGroupContextTypeUpdate))
- ? [NSArray arrayWithObject:content.group.avatar]
- : content.attachments;
+- (void)handleReceivedMediaWithEnvelope:(OWSSignalServiceProtosEnvelope *)envelope
+ dataMessage:(OWSSignalServiceProtosDataMessage *)dataMessage
+{
+ // TODO extract group avatar handling rather than checking message type multiple times and forking logic.
+
+ NSArray *attachmentsToRetrieve
+ = (dataMessage.hasGroup && (dataMessage.group.type == OWSSignalServiceProtosGroupContextTypeUpdate))
+ ? [NSArray arrayWithObject:dataMessage.group.avatar]
+ : dataMessage.attachments;
NSMutableArray *retrievedAttachments = [NSMutableArray array];
__block BOOL shouldProcessMessage = YES;
[self.dbConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
- for (PushMessageContentAttachmentPointer *pointer in attachmentsToRetrieve) {
- TSAttachmentPointer *attachmentPointer =
- (content.group != nil && (content.group.type == PushMessageContentGroupContextTypeUpdate))
- ? [[TSAttachmentPointer alloc] initWithIdentifier:pointer.id
- key:pointer.key
- contentType:pointer.contentType
- relay:message.relay
- avatarOfGroupId:content.group.id]
- : [[TSAttachmentPointer alloc] initWithIdentifier:pointer.id
- key:pointer.key
- contentType:pointer.contentType
- relay:message.relay];
+ for (OWSSignalServiceProtosAttachmentPointer *pointer in attachmentsToRetrieve) {
+ TSAttachmentPointer *attachmentPointer
+ = (dataMessage.hasGroup && (dataMessage.group.type == OWSSignalServiceProtosGroupContextTypeUpdate))
+ ? [[TSAttachmentPointer alloc] initWithIdentifier:pointer.id
+ key:pointer.key
+ contentType:pointer.contentType
+ relay:envelope.relay
+ avatarOfGroupId:dataMessage.group.id]
+ : [[TSAttachmentPointer alloc] initWithIdentifier:pointer.id
+ key:pointer.key
+ contentType:pointer.contentType
+ relay:envelope.relay];
- if ([MIMETypeUtil isSupportedMIMEType:attachmentPointer.contentType]) {
- [attachmentPointer saveWithTransaction:transaction];
- [retrievedAttachments addObject:attachmentPointer.uniqueId];
- shouldProcessMessage = YES;
- } else {
- TSThread *thread =
- [TSContactThread getOrCreateThreadWithContactId:message.source transaction:transaction];
- TSInfoMessage *infoMessage =
- [[TSInfoMessage alloc] initWithTimestamp:message.timestamp
- inThread:thread
- messageType:TSInfoMessageTypeUnsupportedMessage];
- [infoMessage saveWithTransaction:transaction];
- shouldProcessMessage = NO;
- }
- }
+ if ([MIMETypeUtil isSupportedMIMEType:attachmentPointer.contentType]) {
+ [attachmentPointer saveWithTransaction:transaction];
+ [retrievedAttachments addObject:attachmentPointer.uniqueId];
+ shouldProcessMessage = YES;
+ } else {
+ TSThread *thread =
+ [TSContactThread getOrCreateThreadWithContactId:envelope.source transaction:transaction];
+ TSInfoMessage *infoMessage =
+ [[TSInfoMessage alloc] initWithTimestamp:envelope.timestamp
+ inThread:thread
+ messageType:TSInfoMessageTypeUnsupportedMessage];
+ [infoMessage saveWithTransaction:transaction];
+ shouldProcessMessage = NO;
+ }
+ }
}];
if (shouldProcessMessage) {
- [self
- handleReceivedMessage:message
- withContent:content
- attachmentIds:retrievedAttachments
- completionBlock:^(NSString *messageIdentifier) {
- for (NSString *pointerId in retrievedAttachments) {
- dispatch_async(attachmentsQueue(), ^{
- __block TSAttachmentPointer *pointer;
+ [self handleReceivedEnvelope:envelope
+ withDataMessage:dataMessage
+ attachmentIds:retrievedAttachments
+ completionBlock:^(NSString *messageIdentifier) {
+ for (NSString *pointerId in retrievedAttachments) {
+ dispatch_async(attachmentsQueue(), ^{
+ __block TSAttachmentPointer *pointer;
- [self.dbConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
- pointer = [TSAttachmentPointer fetchObjectWithUniqueID:pointerId transaction:transaction];
- }];
+ [self.dbConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
+ pointer = [TSAttachmentPointer fetchObjectWithUniqueID:pointerId
+ transaction:transaction];
+ }];
- [self retrieveAttachment:pointer messageId:messageIdentifier];
- });
- }
- }];
+ [self retrieveAttachment:pointer messageId:messageIdentifier];
+ });
+ }
+ }];
}
}
diff --git a/src/Messages/TSMessagesManager+sendMessages.m b/src/Messages/TSMessagesManager+sendMessages.m
index 73dabfa511..1254e5b809 100644
--- a/src/Messages/TSMessagesManager+sendMessages.m
+++ b/src/Messages/TSMessagesManager+sendMessages.m
@@ -511,16 +511,16 @@ dispatch_queue_t sendingQueue() {
- (NSData *)plainTextForMessage:(TSOutgoingMessage *)message inThread:(TSThread *)thread {
- PushMessageContentBuilder *builder = [PushMessageContentBuilder new];
+ OWSSignalServiceProtosDataMessageBuilder *builder = [OWSSignalServiceProtosDataMessageBuilder new];
[builder setBody:message.body];
BOOL processAttachments = YES;
if ([thread isKindOfClass:[TSGroupThread class]]) {
TSGroupThread *gThread = (TSGroupThread *)thread;
- PushMessageContentGroupContextBuilder *groupBuilder = [PushMessageContentGroupContextBuilder new];
+ OWSSignalServiceProtosGroupContextBuilder *groupBuilder = [OWSSignalServiceProtosGroupContextBuilder new];
switch (message.groupMetaMessage) {
case TSGroupMessageQuit:
- [groupBuilder setType:PushMessageContentGroupContextTypeQuit];
+ [groupBuilder setType:OWSSignalServiceProtosGroupContextTypeQuit];
break;
case TSGroupMessageUpdate:
case TSGroupMessageNew: {
@@ -528,8 +528,8 @@ dispatch_queue_t sendingQueue() {
id dbObject = [TSAttachmentStream fetchObjectWithUniqueID:message.attachmentIds[0]];
if ([dbObject isKindOfClass:[TSAttachmentStream class]]) {
TSAttachmentStream *attachment = (TSAttachmentStream *)dbObject;
- PushMessageContentAttachmentPointerBuilder *attachmentbuilder =
- [PushMessageContentAttachmentPointerBuilder new];
+ OWSSignalServiceProtosAttachmentPointerBuilder *attachmentbuilder =
+ [OWSSignalServiceProtosAttachmentPointerBuilder new];
[attachmentbuilder setId:[attachment.identifier unsignedLongLongValue]];
[attachmentbuilder setContentType:attachment.contentType];
[attachmentbuilder setKey:attachment.encryptionKey];
@@ -539,11 +539,11 @@ dispatch_queue_t sendingQueue() {
}
[groupBuilder setMembersArray:gThread.groupModel.groupMemberIds];
[groupBuilder setName:gThread.groupModel.groupName];
- [groupBuilder setType:PushMessageContentGroupContextTypeUpdate];
+ [groupBuilder setType:OWSSignalServiceProtosGroupContextTypeUpdate];
break;
}
default:
- [groupBuilder setType:PushMessageContentGroupContextTypeDeliver];
+ [groupBuilder setType:OWSSignalServiceProtosGroupContextTypeDeliver];
break;
}
[groupBuilder setId:gThread.groupModel.groupId];
@@ -557,8 +557,8 @@ dispatch_queue_t sendingQueue() {
if ([dbObject isKindOfClass:[TSAttachmentStream class]]) {
TSAttachmentStream *attachment = (TSAttachmentStream *)dbObject;
- PushMessageContentAttachmentPointerBuilder *attachmentbuilder =
- [PushMessageContentAttachmentPointerBuilder new];
+ OWSSignalServiceProtosAttachmentPointerBuilder *attachmentbuilder =
+ [OWSSignalServiceProtosAttachmentPointerBuilder new];
[attachmentbuilder setId:[attachment.identifier unsignedLongLongValue]];
[attachmentbuilder setContentType:attachment.contentType];
[attachmentbuilder setKey:attachment.encryptionKey];
diff --git a/src/Messages/TSMessagesManager.h b/src/Messages/TSMessagesManager.h
index 9c6a7c574a..752f814764 100644
--- a/src/Messages/TSMessagesManager.h
+++ b/src/Messages/TSMessagesManager.h
@@ -1,13 +1,14 @@
// Created by Frederic Jacobs on 11/11/14.
// Copyright (c) 2014 Open Whisper Systems. All rights reserved.
-#import "IncomingPushMessageSignal.pb.h"
#import "TSIncomingMessage.h"
#import "TSInvalidIdentityKeySendingErrorMessage.h"
#import "TSOutgoingMessage.h"
@class TSCall;
@class YapDatabaseConnection;
+@class OWSSignalServiceProtosEnvelope;
+@class OWSSignalServiceProtosDataMessage;
@interface TSMessagesManager : NSObject
@@ -15,18 +16,16 @@
@property (readonly) YapDatabaseConnection *dbConnection;
-- (void)handleMessageSignal:(IncomingPushMessageSignal *)messageSignal;
+- (void)handleReceivedEnvelope:(OWSSignalServiceProtosEnvelope *)envelope;
- (void)processException:(NSException *)exception
outgoingMessage:(TSOutgoingMessage *)message
inThread:(TSThread *)thread;
-- (void)handleReceivedMessage:(IncomingPushMessageSignal *)message
- withContent:(PushMessageContent *)content
- attachmentIds:(NSArray *)attachmentIds;
-- (void)handleReceivedMessage:(IncomingPushMessageSignal *)message
- withContent:(PushMessageContent *)content
- attachmentIds:(NSArray *)attachmentIds
- completionBlock:(void (^)(NSString *messageIdentifier))completionBlock;
+
+- (void)handleReceivedEnvelope:(OWSSignalServiceProtosEnvelope *)envelope
+ withDataMessage:(OWSSignalServiceProtosDataMessage *)dataMessage
+ attachmentIds:(NSArray *)attachmentIds
+ completionBlock:(void (^)(NSString *messageIdentifier))completionBlock;
- (void)handleSendToMyself:(TSOutgoingMessage *)outgoingMessage;
diff --git a/src/Messages/TSMessagesManager.m b/src/Messages/TSMessagesManager.m
index 15c75dc813..0b4a2394e3 100644
--- a/src/Messages/TSMessagesManager.m
+++ b/src/Messages/TSMessagesManager.m
@@ -43,33 +43,31 @@
return self;
}
-- (void)handleMessageSignal:(IncomingPushMessageSignal *)messageSignal {
+- (void)handleReceivedEnvelope:(OWSSignalServiceProtosEnvelope *)envelope
+{
@try {
- switch (messageSignal.type) {
- case IncomingPushMessageSignalTypeCiphertext:
- [self handleSecureMessage:messageSignal];
+ switch (envelope.type) {
+ case OWSSignalServiceProtosEnvelopeTypeCiphertext:
+ [self handleSecureMessage:envelope];
break;
-
- case IncomingPushMessageSignalTypePrekeyBundle:
- [self handlePreKeyBundle:messageSignal];
+ case OWSSignalServiceProtosEnvelopeTypePrekeyBundle:
+ [self handlePreKeyBundle:envelope];
+ break;
+ case OWSSignalServiceProtosEnvelopeTypeReceipt:
+ DDLogInfo(@"Received a delivery receipt");
+ [self handleDeliveryReceipt:envelope];
break;
// Other messages are just dismissed for now.
- case IncomingPushMessageSignalTypeKeyExchange:
+ case OWSSignalServiceProtosEnvelopeTypeKeyExchange:
DDLogWarn(@"Received Key Exchange Message, not supported");
break;
- case IncomingPushMessageSignalTypePlaintext:
- DDLogWarn(@"Received a plaintext message");
- break;
- case IncomingPushMessageSignalTypeReceipt:
- DDLogInfo(@"Received a delivery receipt");
- [self handleDeliveryReceipt:messageSignal];
- break;
- case IncomingPushMessageSignalTypeUnknown:
+ case OWSSignalServiceProtosEnvelopeTypeUnknown:
DDLogWarn(@"Received an unknown message type");
break;
default:
+ DDLogWarn(@"Received unhandled envelope type: %d", envelope.type);
break;
}
} @catch (NSException *exception) {
@@ -77,38 +75,46 @@
}
}
-- (void)handleDeliveryReceipt:(IncomingPushMessageSignal *)signal {
+- (void)handleDeliveryReceipt:(OWSSignalServiceProtosEnvelope *)envelope
+{
[self.dbConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
- TSInteraction *interaction = [TSInteraction interactionForTimestamp:signal.timestamp withTransaction:transaction];
- if ([interaction isKindOfClass:[TSOutgoingMessage class]]) {
- TSOutgoingMessage *outgoingMessage = (TSOutgoingMessage *)interaction;
- outgoingMessage.messageState = TSOutgoingMessageStateDelivered;
+ TSInteraction *interaction =
+ [TSInteraction interactionForTimestamp:envelope.timestamp withTransaction:transaction];
+ if ([interaction isKindOfClass:[TSOutgoingMessage class]]) {
+ TSOutgoingMessage *outgoingMessage = (TSOutgoingMessage *)interaction;
+ outgoingMessage.messageState = TSOutgoingMessageStateDelivered;
- [outgoingMessage saveWithTransaction:transaction];
- }
+ [outgoingMessage saveWithTransaction:transaction];
+ }
}];
}
-- (void)handleSecureMessage:(IncomingPushMessageSignal *)secureMessage {
+- (void)handleSecureMessage:(OWSSignalServiceProtosEnvelope *)messageEnvelope
+{
@synchronized(self) {
TSStorageManager *storageManager = [TSStorageManager sharedManager];
- NSString *recipientId = secureMessage.source;
- int deviceId = (int)secureMessage.sourceDevice;
+ NSString *recipientId = messageEnvelope.source;
+ int deviceId = messageEnvelope.sourceDevice;
if (![storageManager containsSession:recipientId deviceId:deviceId]) {
[self.dbConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
- TSErrorMessage *errorMessage =
- [TSErrorMessage missingSessionWithSignal:secureMessage withTransaction:transaction];
- [errorMessage saveWithTransaction:transaction];
+ TSErrorMessage *errorMessage =
+ [TSErrorMessage missingSessionWithEnvelope:messageEnvelope withTransaction:transaction];
+ [errorMessage saveWithTransaction:transaction];
}];
return;
}
- PushMessageContent *content;
+ // DEPRECATED - Remove after all clients have been upgraded.
+ NSData *encryptedData = messageEnvelope.hasContent ? messageEnvelope.content : messageEnvelope.legacyMessage;
+ if (!encryptedData) {
+ DDLogError(@"Skipping message envelope which had no encrypted data");
+ return;
+ }
+ NSData *plaintextData;
@try {
- WhisperMessage *message = [[WhisperMessage alloc] initWithData:secureMessage.message];
-
+ WhisperMessage *message = [[WhisperMessage alloc] initWithData:encryptedData];
SessionCipher *cipher = [[SessionCipher alloc] initWithSessionStore:storageManager
preKeyStore:storageManager
signedPreKeyStore:storageManager
@@ -116,29 +122,46 @@
recipientId:recipientId
deviceId:deviceId];
- NSData *plaintext = [[cipher decrypt:message] removePadding];
-
- content = [PushMessageContent parseFromData:plaintext];
+ plaintextData = [[cipher decrypt:message] removePadding];
} @catch (NSException *exception) {
- [self processException:exception pushSignal:secureMessage];
+ [self processException:exception envelope:messageEnvelope];
return;
}
- [self handleIncomingMessage:secureMessage withPushContent:content];
+ OWSSignalServiceProtosDataMessage *dataMessage;
+ if (messageEnvelope.hasContent) { // New style content payload
+ OWSSignalServiceProtosContent *content = [OWSSignalServiceProtosContent parseFromData:plaintextData];
+ dataMessage = content.dataMessage;
+ } else if (messageEnvelope.hasLegacyMessage) { // DEPRECATED - Remove after all clients have been upgraded.
+ dataMessage = [OWSSignalServiceProtosDataMessage parseFromData:plaintextData];
+ }
+
+ if (!dataMessage) {
+ DDLogWarn(@"Ignoring content that has no dataMessage.");
+ return;
+ }
+
+ [self handleIncomingEnvelope:messageEnvelope withDataMessage:dataMessage];
}
}
-- (void)handlePreKeyBundle:(IncomingPushMessageSignal *)preKeyMessage {
+- (void)handlePreKeyBundle:(OWSSignalServiceProtosEnvelope *)preKeyEnvelope
+{
@synchronized(self) {
TSStorageManager *storageManager = [TSStorageManager sharedManager];
- NSString *recipientId = preKeyMessage.source;
- int deviceId = (int)preKeyMessage.sourceDevice;
+ NSString *recipientId = preKeyEnvelope.source;
+ int deviceId = preKeyEnvelope.sourceDevice;
- PushMessageContent *content;
+ // DEPRECATED - Remove after all clients have been upgraded.
+ NSData *encryptedData = preKeyEnvelope.hasContent ? preKeyEnvelope.content : preKeyEnvelope.legacyMessage;
+ if (!encryptedData) {
+ DDLogError(@"Skipping message envelope which had no encrypted data");
+ return;
+ }
+ NSData *plaintextData;
@try {
- PreKeyWhisperMessage *message = [[PreKeyWhisperMessage alloc] initWithData:preKeyMessage.message];
-
+ PreKeyWhisperMessage *message = [[PreKeyWhisperMessage alloc] initWithData:encryptedData];
SessionCipher *cipher = [[SessionCipher alloc] initWithSessionStore:storageManager
preKeyStore:storageManager
signedPreKeyStore:storageManager
@@ -146,27 +169,42 @@
recipientId:recipientId
deviceId:deviceId];
- NSData *plaintext = [[cipher decrypt:message] removePadding];
-
- content = [PushMessageContent parseFromData:plaintext];
+ plaintextData = [[cipher decrypt:message] removePadding];
} @catch (NSException *exception) {
- [self processException:exception pushSignal:preKeyMessage];
+ [self processException:exception envelope:preKeyEnvelope];
return;
}
- [self handleIncomingMessage:preKeyMessage withPushContent:content];
+ OWSSignalServiceProtosDataMessage *dataMessage;
+ if (preKeyEnvelope.hasContent) {
+ OWSSignalServiceProtosContent *content = [OWSSignalServiceProtosContent parseFromData:plaintextData];
+ if (content.hasDataMessage) {
+ dataMessage = content.dataMessage;
+ }
+ } else if (preKeyEnvelope.hasLegacyMessage) {
+ // DEPRECATED - Remove after all clients have been upgraded.
+ dataMessage = [OWSSignalServiceProtosDataMessage parseFromData:plaintextData];
+ }
+
+ if (!dataMessage) {
+ DDLogError(@"unable to ascertain decrypted dataMessage from preKeyEnvelope");
+ return;
+ }
+
+ [self handleIncomingEnvelope:preKeyEnvelope withDataMessage:dataMessage];
}
}
-- (void)handleIncomingMessage:(IncomingPushMessageSignal *)incomingMessage withPushContent:(PushMessageContent *)content
+- (void)handleIncomingEnvelope:(OWSSignalServiceProtosEnvelope *)incomingEnvelope
+ withDataMessage:(OWSSignalServiceProtosDataMessage *)dataMessage
{
- if (content.hasGroup) {
+ if (dataMessage.hasGroup) {
__block BOOL ignoreMessage = NO;
[self.dbConnection readWithBlock:^(YapDatabaseReadTransaction *transaction) {
TSGroupModel *emptyModelToFillOutId =
- [[TSGroupModel alloc] initWithTitle:nil memberIds:nil image:nil groupId:content.group.id];
+ [[TSGroupModel alloc] initWithTitle:nil memberIds:nil image:nil groupId:dataMessage.group.id];
TSGroupThread *gThread = [TSGroupThread threadWithGroupModel:emptyModelToFillOutId transaction:transaction];
- if (gThread == nil && content.group.type != PushMessageContentGroupContextTypeUpdate) {
+ if (gThread == nil && dataMessage.group.type != OWSSignalServiceProtosGroupContextTypeUpdate) {
ignoreMessage = YES;
}
}];
@@ -176,38 +214,43 @@
return;
}
}
- if ((content.flags & PushMessageContentFlagsEndSession) != 0) {
+ if ((dataMessage.flags & OWSSignalServiceProtosDataMessageFlagsEndSession) != 0) {
DDLogVerbose(@"Received end session message...");
- [self handleEndSessionMessage:incomingMessage withContent:content];
- } else if (content.attachments.count > 0 ||
- (content.hasGroup && content.group.type == PushMessageContentGroupContextTypeUpdate &&
- content.group.hasAvatar)) {
+ [self handleEndSessionMessageWithEnvelope:incomingEnvelope dataMessage:dataMessage];
+ } else if (dataMessage.attachments.count > 0
+ || (dataMessage.hasGroup && dataMessage.group.type == OWSSignalServiceProtosGroupContextTypeUpdate
+ && dataMessage.group.avatar)) {
+
DDLogVerbose(@"Received push media message (attachment) or group with an avatar...");
- [self handleReceivedMediaMessage:incomingMessage withContent:content];
+ [self handleReceivedMediaWithEnvelope:incomingEnvelope dataMessage:dataMessage];
} else {
DDLogVerbose(@"Received individual push text message...");
- [self handleReceivedTextMessage:incomingMessage withContent:content];
+ [self handleReceivedTextMessageWithEnvelope:incomingEnvelope dataMessage:dataMessage];
}
}
-- (void)handleEndSessionMessage:(IncomingPushMessageSignal *)message withContent:(PushMessageContent *)content {
+- (void)handleEndSessionMessageWithEnvelope:(OWSSignalServiceProtosEnvelope *)endSessionEnvelope
+ dataMessage:(OWSSignalServiceProtosDataMessage *)dataMessage
+{
[self.dbConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
- TSContactThread *thread = [TSContactThread getOrCreateThreadWithContactId:message.source transaction:transaction];
- uint64_t timeStamp = message.timestamp;
+ TSContactThread *thread =
+ [TSContactThread getOrCreateThreadWithContactId:endSessionEnvelope.source transaction:transaction];
+ uint64_t timeStamp = endSessionEnvelope.timestamp;
- if (thread) {
- [[[TSInfoMessage alloc] initWithTimestamp:timeStamp
- inThread:thread
- messageType:TSInfoMessageTypeSessionDidEnd] saveWithTransaction:transaction];
- }
+ if (thread) {
+ [[[TSInfoMessage alloc] initWithTimestamp:timeStamp
+ inThread:thread
+ messageType:TSInfoMessageTypeSessionDidEnd] saveWithTransaction:transaction];
+ }
}];
- [[TSStorageManager sharedManager] deleteAllSessionsForContact:message.source];
+ [[TSStorageManager sharedManager] deleteAllSessionsForContact:endSessionEnvelope.source];
}
-- (void)handleReceivedTextMessage:(IncomingPushMessageSignal *)message withContent:(PushMessageContent *)content
+- (void)handleReceivedTextMessageWithEnvelope:(OWSSignalServiceProtosEnvelope *)textMessageEnvelope
+ dataMessage:(OWSSignalServiceProtosDataMessage *)dataMessage
{
- [self handleReceivedMessage:message withContent:content attachmentIds:content.attachments];
+ [self handleReceivedEnvelope:textMessageEnvelope withDataMessage:dataMessage attachmentIds:@[] completionBlock:nil];
}
- (void)handleSendToMyself:(TSOutgoingMessage *)outgoingMessage
@@ -224,35 +267,28 @@
}];
}
-- (void)handleReceivedMessage:(IncomingPushMessageSignal *)message
- withContent:(PushMessageContent *)content
- attachmentIds:(NSArray *)attachmentIds
+- (void)handleReceivedEnvelope:(OWSSignalServiceProtosEnvelope *)envelope
+ withDataMessage:(OWSSignalServiceProtosDataMessage *)dataMessage
+ attachmentIds:(NSArray *)attachmentIds
+ completionBlock:(void (^)(NSString *messageIdentifier))completionBlock
{
- [self handleReceivedMessage:message withContent:content attachmentIds:attachmentIds completionBlock:nil];
-}
-
-- (void)handleReceivedMessage:(IncomingPushMessageSignal *)message
- withContent:(PushMessageContent *)content
- attachmentIds:(NSArray *)attachmentIds
- completionBlock:(void (^)(NSString *messageIdentifier))completionBlock
-{
- uint64_t timeStamp = message.timestamp;
- NSString *body = content.body;
- NSData *groupId = content.hasGroup ? content.group.id : nil;
+ uint64_t timeStamp = envelope.timestamp;
+ NSString *body = dataMessage.body;
+ NSData *groupId = dataMessage.hasGroup ? dataMessage.group.id : nil;
[self.dbConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
TSIncomingMessage *incomingMessage;
TSThread *thread;
if (groupId) {
- TSGroupModel *model =
- [[TSGroupModel alloc] initWithTitle:content.group.name
- memberIds:[[[NSSet setWithArray:content.group.members] allObjects] mutableCopy]
- image:nil
- groupId:content.group.id];
+ NSMutableArray *uniqueMemberIds = [[[NSSet setWithArray:dataMessage.group.members] allObjects] mutableCopy];
+ TSGroupModel *model = [[TSGroupModel alloc] initWithTitle:dataMessage.group.name
+ memberIds:uniqueMemberIds
+ image:nil
+ groupId:dataMessage.group.id];
TSGroupThread *gThread = [TSGroupThread getOrCreateThreadWithGroupModel:model transaction:transaction];
[gThread saveWithTransaction:transaction];
- if (content.group.type == PushMessageContentGroupContextTypeUpdate) {
+ if (dataMessage.group.type == OWSSignalServiceProtosGroupContextTypeUpdate) {
if ([attachmentIds count] == 1) {
NSString *avatarId = attachmentIds[0];
TSAttachment *avatar = [TSAttachment fetchObjectWithUniqueID:avatarId];
@@ -273,18 +309,18 @@
inThread:gThread
messageType:TSInfoMessageTypeGroupUpdate
customMessage:updateGroupInfo] saveWithTransaction:transaction];
- } else if (content.group.type == PushMessageContentGroupContextTypeQuit) {
+ } else if (dataMessage.group.type == OWSSignalServiceProtosGroupContextTypeQuit) {
NSString *nameString =
- [[TextSecureKitEnv sharedEnv].contactsManager nameStringForPhoneIdentifier:message.source];
+ [[TextSecureKitEnv sharedEnv].contactsManager nameStringForPhoneIdentifier:envelope.source];
if (!nameString) {
- nameString = message.source;
+ nameString = envelope.source;
}
NSString *updateGroupInfo =
[NSString stringWithFormat:NSLocalizedString(@"GROUP_MEMBER_LEFT", @""), nameString];
NSMutableArray *newGroupMembers = [NSMutableArray arrayWithArray:gThread.groupModel.groupMemberIds];
- [newGroupMembers removeObject:message.source];
+ [newGroupMembers removeObject:envelope.source];
gThread.groupModel.groupMemberIds = newGroupMembers;
[gThread saveWithTransaction:transaction];
@@ -295,7 +331,7 @@
} else {
incomingMessage = [[TSIncomingMessage alloc] initWithTimestamp:timeStamp
inThread:gThread
- authorId:message.source
+ authorId:envelope.source
messageBody:body
attachmentIds:attachmentIds];
[incomingMessage saveWithTransaction:transaction];
@@ -303,9 +339,9 @@
thread = gThread;
} else {
- TSContactThread *cThread = [TSContactThread getOrCreateThreadWithContactId:message.source
+ TSContactThread *cThread = [TSContactThread getOrCreateThreadWithContactId:envelope.source
transaction:transaction
- pushSignal:message];
+ envelope:envelope];
incomingMessage = [[TSIncomingMessage alloc] initWithTimestamp:timeStamp
inThread:cThread
@@ -324,7 +360,7 @@
TSGroupThread *gThread = (TSGroupThread *)thread;
TSIncomingMessage *textMessage = [[TSIncomingMessage alloc] initWithTimestamp:textMessageTimestamp
inThread:gThread
- authorId:message.source
+ authorId:envelope.source
messageBody:body
attachmentIds:nil];
[textMessage saveWithTransaction:transaction];
@@ -356,27 +392,28 @@
}];
}
-- (void)processException:(NSException *)exception pushSignal:(IncomingPushMessageSignal *)signal {
+- (void)processException:(NSException *)exception envelope:(OWSSignalServiceProtosEnvelope *)envelope
+{
DDLogError(@"Got exception: %@ of type: %@", exception.description, exception.name);
[self.dbConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
TSErrorMessage *errorMessage;
if ([exception.name isEqualToString:NoSessionException]) {
- errorMessage = [TSErrorMessage missingSessionWithSignal:signal withTransaction:transaction];
+ errorMessage = [TSErrorMessage missingSessionWithEnvelope:envelope withTransaction:transaction];
} else if ([exception.name isEqualToString:InvalidKeyException]) {
- errorMessage = [TSErrorMessage invalidKeyExceptionWithSignal:signal withTransaction:transaction];
+ errorMessage = [TSErrorMessage invalidKeyExceptionWithEnvelope:envelope withTransaction:transaction];
} else if ([exception.name isEqualToString:InvalidKeyIdException]) {
- errorMessage = [TSErrorMessage invalidKeyExceptionWithSignal:signal withTransaction:transaction];
+ errorMessage = [TSErrorMessage invalidKeyExceptionWithEnvelope:envelope withTransaction:transaction];
} else if ([exception.name isEqualToString:DuplicateMessageException]) {
// Duplicate messages are dismissed
return;
} else if ([exception.name isEqualToString:InvalidVersionException]) {
- errorMessage = [TSErrorMessage invalidVersionWithSignal:signal withTransaction:transaction];
+ errorMessage = [TSErrorMessage invalidVersionWithEnvelope:envelope withTransaction:transaction];
} else if ([exception.name isEqualToString:UntrustedIdentityKeyException]) {
errorMessage =
- [TSInvalidIdentityKeyReceivingErrorMessage untrustedKeyWithSignal:signal withTransaction:transaction];
+ [TSInvalidIdentityKeyReceivingErrorMessage untrustedKeyWithEnvelope:envelope withTransaction:transaction];
} else {
- errorMessage = [TSErrorMessage corruptedMessageWithSignal:signal withTransaction:transaction];
+ errorMessage = [TSErrorMessage corruptedMessageWithEnvelope:envelope withTransaction:transaction];
}
[errorMessage saveWithTransaction:transaction];
diff --git a/src/Network/WebSockets/TSSocketManager.m b/src/Network/WebSockets/TSSocketManager.m
index e339e65a31..bf8845c3a0 100644
--- a/src/Network/WebSockets/TSSocketManager.m
+++ b/src/Network/WebSockets/TSSocketManager.m
@@ -167,9 +167,9 @@ NSString *const SocketConnectingNotification = @"SocketConnectingNotification";
return;
}
- IncomingPushMessageSignal *messageSignal = [IncomingPushMessageSignal parseFromData:decryptedPayload];
+ OWSSignalServiceProtosEnvelope *envelope = [OWSSignalServiceProtosEnvelope parseFromData:decryptedPayload];
- [[TSMessagesManager sharedManager] handleMessageSignal:messageSignal];
+ [[TSMessagesManager sharedManager] handleReceivedEnvelope:envelope];
} else {
DDLogWarn(@"Unsupported WebSocket Request");
}