GPBUtilities.h 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  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. #import "GPBMessage.h"
  32. #import "GPBTypes.h"
  33. CF_EXTERN_C_BEGIN
  34. BOOL GPBMessageHasFieldNumberSet(GPBMessage *self, uint32_t fieldNumber);
  35. BOOL GPBMessageHasFieldSet(GPBMessage *self, GPBFieldDescriptor *field);
  36. void GPBClearMessageField(GPBMessage *self, GPBFieldDescriptor *field);
  37. // Returns an empty NSData to assign to byte fields when you wish
  38. // to assign them to empty. Prevents allocating a lot of little [NSData data]
  39. // objects.
  40. NSData *GPBEmptyNSData(void) __attribute__((pure));
  41. //%PDDM-EXPAND GPB_IVAR_ACCESSORS()
  42. // This block of code is generated, do not edit it directly.
  43. // Getters and Setters for ivars named |name| from instance self.
  44. NSData* GPBGetDataIvarWithField(GPBMessage *self,
  45. GPBFieldDescriptor *field);
  46. void GPBSetDataIvarWithField(GPBMessage *self,
  47. GPBFieldDescriptor *field,
  48. NSData* value);
  49. NSString* GPBGetStringIvarWithField(GPBMessage *self,
  50. GPBFieldDescriptor *field);
  51. void GPBSetStringIvarWithField(GPBMessage *self,
  52. GPBFieldDescriptor *field,
  53. NSString* value);
  54. GPBMessage* GPBGetMessageIvarWithField(GPBMessage *self,
  55. GPBFieldDescriptor *field);
  56. void GPBSetMessageIvarWithField(GPBMessage *self,
  57. GPBFieldDescriptor *field,
  58. GPBMessage* value);
  59. GPBMessage* GPBGetGroupIvarWithField(GPBMessage *self,
  60. GPBFieldDescriptor *field);
  61. void GPBSetGroupIvarWithField(GPBMessage *self,
  62. GPBFieldDescriptor *field,
  63. GPBMessage* value);
  64. BOOL GPBGetBoolIvarWithField(GPBMessage *self,
  65. GPBFieldDescriptor *field);
  66. void GPBSetBoolIvarWithField(GPBMessage *self,
  67. GPBFieldDescriptor *field,
  68. BOOL value);
  69. int32_t GPBGetInt32IvarWithField(GPBMessage *self,
  70. GPBFieldDescriptor *field);
  71. void GPBSetInt32IvarWithField(GPBMessage *self,
  72. GPBFieldDescriptor *field,
  73. int32_t value);
  74. int32_t GPBGetSFixed32IvarWithField(GPBMessage *self,
  75. GPBFieldDescriptor *field);
  76. void GPBSetSFixed32IvarWithField(GPBMessage *self,
  77. GPBFieldDescriptor *field,
  78. int32_t value);
  79. int32_t GPBGetSInt32IvarWithField(GPBMessage *self,
  80. GPBFieldDescriptor *field);
  81. void GPBSetSInt32IvarWithField(GPBMessage *self,
  82. GPBFieldDescriptor *field,
  83. int32_t value);
  84. int32_t GPBGetEnumIvarWithField(GPBMessage *self,
  85. GPBFieldDescriptor *field);
  86. void GPBSetEnumIvarWithField(GPBMessage *self,
  87. GPBFieldDescriptor *field,
  88. int32_t value);
  89. uint32_t GPBGetUInt32IvarWithField(GPBMessage *self,
  90. GPBFieldDescriptor *field);
  91. void GPBSetUInt32IvarWithField(GPBMessage *self,
  92. GPBFieldDescriptor *field,
  93. uint32_t value);
  94. uint32_t GPBGetFixed32IvarWithField(GPBMessage *self,
  95. GPBFieldDescriptor *field);
  96. void GPBSetFixed32IvarWithField(GPBMessage *self,
  97. GPBFieldDescriptor *field,
  98. uint32_t value);
  99. int64_t GPBGetInt64IvarWithField(GPBMessage *self,
  100. GPBFieldDescriptor *field);
  101. void GPBSetInt64IvarWithField(GPBMessage *self,
  102. GPBFieldDescriptor *field,
  103. int64_t value);
  104. int64_t GPBGetSInt64IvarWithField(GPBMessage *self,
  105. GPBFieldDescriptor *field);
  106. void GPBSetSInt64IvarWithField(GPBMessage *self,
  107. GPBFieldDescriptor *field,
  108. int64_t value);
  109. int64_t GPBGetSFixed64IvarWithField(GPBMessage *self,
  110. GPBFieldDescriptor *field);
  111. void GPBSetSFixed64IvarWithField(GPBMessage *self,
  112. GPBFieldDescriptor *field,
  113. int64_t value);
  114. uint64_t GPBGetUInt64IvarWithField(GPBMessage *self,
  115. GPBFieldDescriptor *field);
  116. void GPBSetUInt64IvarWithField(GPBMessage *self,
  117. GPBFieldDescriptor *field,
  118. uint64_t value);
  119. uint64_t GPBGetFixed64IvarWithField(GPBMessage *self,
  120. GPBFieldDescriptor *field);
  121. void GPBSetFixed64IvarWithField(GPBMessage *self,
  122. GPBFieldDescriptor *field,
  123. uint64_t value);
  124. float GPBGetFloatIvarWithField(GPBMessage *self,
  125. GPBFieldDescriptor *field);
  126. void GPBSetFloatIvarWithField(GPBMessage *self,
  127. GPBFieldDescriptor *field,
  128. float value);
  129. double GPBGetDoubleIvarWithField(GPBMessage *self,
  130. GPBFieldDescriptor *field);
  131. void GPBSetDoubleIvarWithField(GPBMessage *self,
  132. GPBFieldDescriptor *field,
  133. double value);
  134. //%PDDM-EXPAND-END GPB_IVAR_ACCESSORS()
  135. // Generates a sting that should be a valid "Text Format" for the C++ version
  136. // of Protocol Buffers. lineIndent can be nil if no additional line indent is
  137. // needed. The comments provide the names according to the ObjC library, they
  138. // most likely won't exactly match the original .proto file.
  139. NSString *GPBTextFormatForMessage(GPBMessage *message, NSString *lineIndent);
  140. NSString *GPBTextFormatForUnknownFieldSet(GPBUnknownFieldSet *unknownSet,
  141. NSString *lineIndent);
  142. CF_EXTERN_C_END
  143. //%PDDM-DEFINE GPB_IVAR_ACCESSORS()
  144. //%// Getters and Setters for ivars named |name| from instance self.
  145. //%
  146. //%GPB_IVAR_ACCESSORS_DECL(Data, NSData*)
  147. //%GPB_IVAR_ACCESSORS_DECL(String, NSString*)
  148. //%GPB_IVAR_ACCESSORS_DECL(Message, GPBMessage*)
  149. //%GPB_IVAR_ACCESSORS_DECL(Group, GPBMessage*)
  150. //%GPB_IVAR_ACCESSORS_DECL(Bool, BOOL)
  151. //%GPB_IVAR_ACCESSORS_DECL(Int32, int32_t)
  152. //%GPB_IVAR_ACCESSORS_DECL(SFixed32, int32_t)
  153. //%GPB_IVAR_ACCESSORS_DECL(SInt32, int32_t)
  154. //%GPB_IVAR_ACCESSORS_DECL(Enum, int32_t)
  155. //%GPB_IVAR_ACCESSORS_DECL(UInt32, uint32_t)
  156. //%GPB_IVAR_ACCESSORS_DECL(Fixed32, uint32_t)
  157. //%GPB_IVAR_ACCESSORS_DECL(Int64, int64_t)
  158. //%GPB_IVAR_ACCESSORS_DECL(SInt64, int64_t)
  159. //%GPB_IVAR_ACCESSORS_DECL(SFixed64, int64_t)
  160. //%GPB_IVAR_ACCESSORS_DECL(UInt64, uint64_t)
  161. //%GPB_IVAR_ACCESSORS_DECL(Fixed64, uint64_t)
  162. //%GPB_IVAR_ACCESSORS_DECL(Float, float)
  163. //%GPB_IVAR_ACCESSORS_DECL(Double, double)
  164. //%PDDM-DEFINE GPB_IVAR_ACCESSORS_DECL(NAME, TYPE)
  165. //%TYPE GPBGet##NAME##IvarWithField(GPBMessage *self,
  166. //% TYPE$S NAME$S GPBFieldDescriptor *field);
  167. //%void GPBSet##NAME##IvarWithField(GPBMessage *self,
  168. //% NAME$S GPBFieldDescriptor *field,
  169. //% NAME$S TYPE value);