1ffe3c632Sopenharmony_ci// Protocol Buffers - Google's data interchange format 2ffe3c632Sopenharmony_ci// Copyright 2008 Google Inc. All rights reserved. 3ffe3c632Sopenharmony_ci// https://developers.google.com/protocol-buffers/ 4ffe3c632Sopenharmony_ci// 5ffe3c632Sopenharmony_ci// Redistribution and use in source and binary forms, with or without 6ffe3c632Sopenharmony_ci// modification, are permitted provided that the following conditions are 7ffe3c632Sopenharmony_ci// met: 8ffe3c632Sopenharmony_ci// 9ffe3c632Sopenharmony_ci// * Redistributions of source code must retain the above copyright 10ffe3c632Sopenharmony_ci// notice, this list of conditions and the following disclaimer. 11ffe3c632Sopenharmony_ci// * Redistributions in binary form must reproduce the above 12ffe3c632Sopenharmony_ci// copyright notice, this list of conditions and the following disclaimer 13ffe3c632Sopenharmony_ci// in the documentation and/or other materials provided with the 14ffe3c632Sopenharmony_ci// distribution. 15ffe3c632Sopenharmony_ci// * Neither the name of Google Inc. nor the names of its 16ffe3c632Sopenharmony_ci// contributors may be used to endorse or promote products derived from 17ffe3c632Sopenharmony_ci// this software without specific prior written permission. 18ffe3c632Sopenharmony_ci// 19ffe3c632Sopenharmony_ci// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20ffe3c632Sopenharmony_ci// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21ffe3c632Sopenharmony_ci// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 22ffe3c632Sopenharmony_ci// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 23ffe3c632Sopenharmony_ci// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 24ffe3c632Sopenharmony_ci// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 25ffe3c632Sopenharmony_ci// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 26ffe3c632Sopenharmony_ci// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 27ffe3c632Sopenharmony_ci// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28ffe3c632Sopenharmony_ci// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29ffe3c632Sopenharmony_ci// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30ffe3c632Sopenharmony_ci 31ffe3c632Sopenharmony_ci#import <Foundation/Foundation.h> 32ffe3c632Sopenharmony_ci 33ffe3c632Sopenharmony_ci@class GPBCodedOutputStream; 34ffe3c632Sopenharmony_ci@class GPBUInt32Array; 35ffe3c632Sopenharmony_ci@class GPBUInt64Array; 36ffe3c632Sopenharmony_ci@class GPBUnknownFieldSet; 37ffe3c632Sopenharmony_ci 38ffe3c632Sopenharmony_ciNS_ASSUME_NONNULL_BEGIN 39ffe3c632Sopenharmony_ci/** 40ffe3c632Sopenharmony_ci * Store an unknown field. These are used in conjunction with 41ffe3c632Sopenharmony_ci * GPBUnknownFieldSet. 42ffe3c632Sopenharmony_ci **/ 43ffe3c632Sopenharmony_ci@interface GPBUnknownField : NSObject<NSCopying> 44ffe3c632Sopenharmony_ci 45ffe3c632Sopenharmony_ci/** Initialize a field with the given number. */ 46ffe3c632Sopenharmony_ci- (instancetype)initWithNumber:(int32_t)number; 47ffe3c632Sopenharmony_ci 48ffe3c632Sopenharmony_ci/** The field number the data is stored under. */ 49ffe3c632Sopenharmony_ci@property(nonatomic, readonly, assign) int32_t number; 50ffe3c632Sopenharmony_ci 51ffe3c632Sopenharmony_ci/** An array of varint values for this field. */ 52ffe3c632Sopenharmony_ci@property(nonatomic, readonly, strong) GPBUInt64Array *varintList; 53ffe3c632Sopenharmony_ci 54ffe3c632Sopenharmony_ci/** An array of fixed32 values for this field. */ 55ffe3c632Sopenharmony_ci@property(nonatomic, readonly, strong) GPBUInt32Array *fixed32List; 56ffe3c632Sopenharmony_ci 57ffe3c632Sopenharmony_ci/** An array of fixed64 values for this field. */ 58ffe3c632Sopenharmony_ci@property(nonatomic, readonly, strong) GPBUInt64Array *fixed64List; 59ffe3c632Sopenharmony_ci 60ffe3c632Sopenharmony_ci/** An array of data values for this field. */ 61ffe3c632Sopenharmony_ci@property(nonatomic, readonly, strong) NSArray<NSData*> *lengthDelimitedList; 62ffe3c632Sopenharmony_ci 63ffe3c632Sopenharmony_ci/** An array of groups of values for this field. */ 64ffe3c632Sopenharmony_ci@property(nonatomic, readonly, strong) NSArray<GPBUnknownFieldSet*> *groupList; 65ffe3c632Sopenharmony_ci 66ffe3c632Sopenharmony_ci/** 67ffe3c632Sopenharmony_ci * Add a value to the varintList. 68ffe3c632Sopenharmony_ci * 69ffe3c632Sopenharmony_ci * @param value The value to add. 70ffe3c632Sopenharmony_ci **/ 71ffe3c632Sopenharmony_ci- (void)addVarint:(uint64_t)value; 72ffe3c632Sopenharmony_ci/** 73ffe3c632Sopenharmony_ci * Add a value to the fixed32List. 74ffe3c632Sopenharmony_ci * 75ffe3c632Sopenharmony_ci * @param value The value to add. 76ffe3c632Sopenharmony_ci **/ 77ffe3c632Sopenharmony_ci- (void)addFixed32:(uint32_t)value; 78ffe3c632Sopenharmony_ci/** 79ffe3c632Sopenharmony_ci * Add a value to the fixed64List. 80ffe3c632Sopenharmony_ci * 81ffe3c632Sopenharmony_ci * @param value The value to add. 82ffe3c632Sopenharmony_ci **/ 83ffe3c632Sopenharmony_ci- (void)addFixed64:(uint64_t)value; 84ffe3c632Sopenharmony_ci/** 85ffe3c632Sopenharmony_ci * Add a value to the lengthDelimitedList. 86ffe3c632Sopenharmony_ci * 87ffe3c632Sopenharmony_ci * @param value The value to add. 88ffe3c632Sopenharmony_ci **/ 89ffe3c632Sopenharmony_ci- (void)addLengthDelimited:(NSData *)value; 90ffe3c632Sopenharmony_ci/** 91ffe3c632Sopenharmony_ci * Add a value to the groupList. 92ffe3c632Sopenharmony_ci * 93ffe3c632Sopenharmony_ci * @param value The value to add. 94ffe3c632Sopenharmony_ci **/ 95ffe3c632Sopenharmony_ci- (void)addGroup:(GPBUnknownFieldSet *)value; 96ffe3c632Sopenharmony_ci 97ffe3c632Sopenharmony_ci@end 98ffe3c632Sopenharmony_ci 99ffe3c632Sopenharmony_ciNS_ASSUME_NONNULL_END 100