GPBUnknownField.h 3.3 KB

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