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
 |