mirror of https://github.com/oxen-io/session-ios
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
144 lines
3.6 KiB
Objective-C
144 lines
3.6 KiB
Objective-C
// Copyright 2008 Cyrus Najmabadi
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
#import "Field.h"
|
|
|
|
#import "CodedOutputStream.h"
|
|
#import "MutableField.h"
|
|
|
|
@interface PBField ()
|
|
@property (retain) NSMutableArray* mutableVarintList;
|
|
@property (retain) NSMutableArray* mutableFixed32List;
|
|
@property (retain) NSMutableArray* mutableFixed64List;
|
|
@property (retain) NSMutableArray* mutableLengthDelimitedList;
|
|
@property (retain) NSMutableArray* mutableGroupList;
|
|
@end
|
|
|
|
@implementation PBField
|
|
|
|
static PBField* defaultInstance = nil;
|
|
|
|
+ (void) initialize {
|
|
if (self == [PBField class]) {
|
|
defaultInstance = [[PBField alloc] init];
|
|
}
|
|
}
|
|
|
|
|
|
@synthesize mutableVarintList;
|
|
@synthesize mutableFixed32List;
|
|
@synthesize mutableFixed64List;
|
|
@synthesize mutableLengthDelimitedList;
|
|
@synthesize mutableGroupList;
|
|
|
|
|
|
- (void) dealloc {
|
|
self.mutableVarintList = nil;
|
|
self.mutableFixed32List = nil;
|
|
self.mutableFixed64List = nil;
|
|
self.mutableLengthDelimitedList = nil;
|
|
self.mutableGroupList = nil;
|
|
}
|
|
|
|
|
|
+ (PBField*) defaultInstance {
|
|
return defaultInstance;
|
|
}
|
|
|
|
|
|
- (NSArray*) varintList {
|
|
return mutableVarintList;
|
|
}
|
|
|
|
|
|
- (NSArray*) fixed32List {
|
|
return mutableFixed32List;
|
|
}
|
|
|
|
|
|
- (NSArray*) fixed64List {
|
|
return mutableFixed64List;
|
|
}
|
|
|
|
|
|
- (NSArray*) lengthDelimitedList {
|
|
return mutableLengthDelimitedList;
|
|
}
|
|
|
|
|
|
- (NSArray*) groupList {
|
|
return mutableGroupList;
|
|
}
|
|
|
|
|
|
- (void) writeTo:(int32_t) fieldNumber
|
|
output:(PBCodedOutputStream*) output {
|
|
for (NSNumber* value in self.varintList) {
|
|
[output writeUInt64:fieldNumber value:value.longLongValue];
|
|
}
|
|
for (NSNumber* value in self.fixed32List) {
|
|
[output writeFixed32:fieldNumber value:value.intValue];
|
|
}
|
|
for (NSNumber* value in self.fixed64List) {
|
|
[output writeFixed64:fieldNumber value:value.longLongValue];
|
|
}
|
|
for (NSData* value in self.lengthDelimitedList) {
|
|
[output writeData:fieldNumber value:value];
|
|
}
|
|
for (PBUnknownFieldSet* value in self.groupList) {
|
|
[output writeUnknownGroup:fieldNumber value:value];
|
|
}
|
|
}
|
|
|
|
|
|
- (int32_t) getSerializedSize:(int32_t) fieldNumber {
|
|
int32_t result = 0;
|
|
for (NSNumber* value in self.varintList) {
|
|
result += computeUInt64Size(fieldNumber, value.longLongValue);
|
|
}
|
|
for (NSNumber* value in self.fixed32List) {
|
|
result += computeFixed32Size(fieldNumber, value.intValue);
|
|
}
|
|
for (NSNumber* value in self.fixed64List) {
|
|
result += computeFixed64Size(fieldNumber, value.longLongValue);
|
|
}
|
|
for (NSData* value in self.lengthDelimitedList) {
|
|
result += computeDataSize(fieldNumber, value);
|
|
}
|
|
for (PBUnknownFieldSet* value in self.groupList) {
|
|
result += computeUnknownGroupSize(fieldNumber, value);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
|
|
- (void) writeAsMessageSetExtensionTo:(int32_t) fieldNumber
|
|
output:(PBCodedOutputStream*) output {
|
|
for (NSData* value in self.lengthDelimitedList) {
|
|
[output writeRawMessageSetExtension:fieldNumber value:value];
|
|
}
|
|
}
|
|
|
|
|
|
- (int32_t) getSerializedSizeAsMessageSetExtension:(int32_t) fieldNumber {
|
|
int32_t result = 0;
|
|
for (NSData* value in self.lengthDelimitedList) {
|
|
result += computeRawMessageSetExtensionSize(fieldNumber, value);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
|
|
@end
|