blob: 7b921e8ec7088d7042c41e3b87a42c107f4a9351 [file] [log] [blame]
Thomas Van Lenten30650d82015-05-01 08:57:16 -04001// 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
31#import <Foundation/Foundation.h>
32
33#import "GPBDictionary.h"
34
35@class GPBCodedInputStream;
36@class GPBCodedOutputStream;
37@class GPBExtensionRegistry;
38@class GPBFieldDescriptor;
39
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040040@protocol GPBDictionaryInternalsProtocol
41- (size_t)computeSerializedSizeAsField:(GPBFieldDescriptor *)field;
42- (void)writeToCodedOutputStream:(GPBCodedOutputStream *)outputStream
43 asField:(GPBFieldDescriptor *)field;
Thomas Van Lentend846b0b2015-06-08 16:24:57 -040044- (void)setGPBGenericValue:(GPBGenericValue *)value
45 forGPBGenericValueKey:(GPBGenericValue *)key;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040046- (void)enumerateForTextFormat:(void (^)(id keyObj, id valueObj))block;
47@end
48
Thomas Van Lenten30650d82015-05-01 08:57:16 -040049//%PDDM-DEFINE DICTIONARY_PRIV_INTERFACES_FOR_POD_KEY(KEY_NAME)
50//%DICTIONARY_POD_PRIV_INTERFACES_FOR_KEY(KEY_NAME)
51//%DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, Object, Object)
52//%PDDM-DEFINE DICTIONARY_POD_PRIV_INTERFACES_FOR_KEY(KEY_NAME)
53//%DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, UInt32, Basic)
54//%DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, Int32, Basic)
55//%DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, UInt64, Basic)
56//%DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, Int64, Basic)
57//%DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, Bool, Basic)
58//%DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, Float, Basic)
59//%DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, Double, Basic)
60//%DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, Enum, Enum)
61
62//%PDDM-DEFINE DICTIONARY_PRIVATE_INTERFACES(KEY_NAME, VALUE_NAME, HELPER)
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040063//%@interface GPB##KEY_NAME##VALUE_NAME##Dictionary () <GPBDictionaryInternalsProtocol> {
64//% @package
65//% GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
66//%}
Thomas Van Lenten30650d82015-05-01 08:57:16 -040067//%EXTRA_DICTIONARY_PRIVATE_INTERFACES_##HELPER()@end
68//%
69
70//%PDDM-DEFINE EXTRA_DICTIONARY_PRIVATE_INTERFACES_Basic()
71// Empty
72//%PDDM-DEFINE EXTRA_DICTIONARY_PRIVATE_INTERFACES_Object()
73//%- (BOOL)isInitialized;
74//%- (instancetype)deepCopyWithZone:(NSZone *)zone
75//% __attribute__((ns_returns_retained));
76//%
77//%PDDM-DEFINE EXTRA_DICTIONARY_PRIVATE_INTERFACES_Enum()
78//%- (NSData *)serializedDataForUnknownValue:(int32_t)value
Thomas Van Lentend846b0b2015-06-08 16:24:57 -040079//% forKey:(GPBGenericValue *)key
80//% keyDataType:(GPBDataType)keyDataType;
Thomas Van Lenten30650d82015-05-01 08:57:16 -040081//%
82
83//%PDDM-EXPAND DICTIONARY_PRIV_INTERFACES_FOR_POD_KEY(UInt32)
84// This block of code is generated, do not edit it directly.
85
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040086@interface GPBUInt32UInt32Dictionary () <GPBDictionaryInternalsProtocol> {
87 @package
88 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
89}
Thomas Van Lenten30650d82015-05-01 08:57:16 -040090@end
91
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040092@interface GPBUInt32Int32Dictionary () <GPBDictionaryInternalsProtocol> {
93 @package
94 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
95}
Thomas Van Lenten30650d82015-05-01 08:57:16 -040096@end
97
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040098@interface GPBUInt32UInt64Dictionary () <GPBDictionaryInternalsProtocol> {
99 @package
100 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
101}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400102@end
103
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400104@interface GPBUInt32Int64Dictionary () <GPBDictionaryInternalsProtocol> {
105 @package
106 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
107}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400108@end
109
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400110@interface GPBUInt32BoolDictionary () <GPBDictionaryInternalsProtocol> {
111 @package
112 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
113}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400114@end
115
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400116@interface GPBUInt32FloatDictionary () <GPBDictionaryInternalsProtocol> {
117 @package
118 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
119}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400120@end
121
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400122@interface GPBUInt32DoubleDictionary () <GPBDictionaryInternalsProtocol> {
123 @package
124 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
125}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400126@end
127
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400128@interface GPBUInt32EnumDictionary () <GPBDictionaryInternalsProtocol> {
129 @package
130 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
131}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400132- (NSData *)serializedDataForUnknownValue:(int32_t)value
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400133 forKey:(GPBGenericValue *)key
134 keyDataType:(GPBDataType)keyDataType;
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400135@end
136
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400137@interface GPBUInt32ObjectDictionary () <GPBDictionaryInternalsProtocol> {
138 @package
139 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
140}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400141- (BOOL)isInitialized;
142- (instancetype)deepCopyWithZone:(NSZone *)zone
143 __attribute__((ns_returns_retained));
144@end
145
146//%PDDM-EXPAND DICTIONARY_PRIV_INTERFACES_FOR_POD_KEY(Int32)
147// This block of code is generated, do not edit it directly.
148
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400149@interface GPBInt32UInt32Dictionary () <GPBDictionaryInternalsProtocol> {
150 @package
151 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
152}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400153@end
154
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400155@interface GPBInt32Int32Dictionary () <GPBDictionaryInternalsProtocol> {
156 @package
157 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
158}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400159@end
160
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400161@interface GPBInt32UInt64Dictionary () <GPBDictionaryInternalsProtocol> {
162 @package
163 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
164}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400165@end
166
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400167@interface GPBInt32Int64Dictionary () <GPBDictionaryInternalsProtocol> {
168 @package
169 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
170}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400171@end
172
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400173@interface GPBInt32BoolDictionary () <GPBDictionaryInternalsProtocol> {
174 @package
175 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
176}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400177@end
178
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400179@interface GPBInt32FloatDictionary () <GPBDictionaryInternalsProtocol> {
180 @package
181 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
182}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400183@end
184
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400185@interface GPBInt32DoubleDictionary () <GPBDictionaryInternalsProtocol> {
186 @package
187 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
188}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400189@end
190
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400191@interface GPBInt32EnumDictionary () <GPBDictionaryInternalsProtocol> {
192 @package
193 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
194}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400195- (NSData *)serializedDataForUnknownValue:(int32_t)value
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400196 forKey:(GPBGenericValue *)key
197 keyDataType:(GPBDataType)keyDataType;
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400198@end
199
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400200@interface GPBInt32ObjectDictionary () <GPBDictionaryInternalsProtocol> {
201 @package
202 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
203}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400204- (BOOL)isInitialized;
205- (instancetype)deepCopyWithZone:(NSZone *)zone
206 __attribute__((ns_returns_retained));
207@end
208
209//%PDDM-EXPAND DICTIONARY_PRIV_INTERFACES_FOR_POD_KEY(UInt64)
210// This block of code is generated, do not edit it directly.
211
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400212@interface GPBUInt64UInt32Dictionary () <GPBDictionaryInternalsProtocol> {
213 @package
214 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
215}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400216@end
217
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400218@interface GPBUInt64Int32Dictionary () <GPBDictionaryInternalsProtocol> {
219 @package
220 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
221}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400222@end
223
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400224@interface GPBUInt64UInt64Dictionary () <GPBDictionaryInternalsProtocol> {
225 @package
226 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
227}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400228@end
229
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400230@interface GPBUInt64Int64Dictionary () <GPBDictionaryInternalsProtocol> {
231 @package
232 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
233}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400234@end
235
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400236@interface GPBUInt64BoolDictionary () <GPBDictionaryInternalsProtocol> {
237 @package
238 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
239}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400240@end
241
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400242@interface GPBUInt64FloatDictionary () <GPBDictionaryInternalsProtocol> {
243 @package
244 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
245}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400246@end
247
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400248@interface GPBUInt64DoubleDictionary () <GPBDictionaryInternalsProtocol> {
249 @package
250 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
251}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400252@end
253
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400254@interface GPBUInt64EnumDictionary () <GPBDictionaryInternalsProtocol> {
255 @package
256 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
257}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400258- (NSData *)serializedDataForUnknownValue:(int32_t)value
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400259 forKey:(GPBGenericValue *)key
260 keyDataType:(GPBDataType)keyDataType;
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400261@end
262
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400263@interface GPBUInt64ObjectDictionary () <GPBDictionaryInternalsProtocol> {
264 @package
265 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
266}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400267- (BOOL)isInitialized;
268- (instancetype)deepCopyWithZone:(NSZone *)zone
269 __attribute__((ns_returns_retained));
270@end
271
272//%PDDM-EXPAND DICTIONARY_PRIV_INTERFACES_FOR_POD_KEY(Int64)
273// This block of code is generated, do not edit it directly.
274
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400275@interface GPBInt64UInt32Dictionary () <GPBDictionaryInternalsProtocol> {
276 @package
277 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
278}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400279@end
280
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400281@interface GPBInt64Int32Dictionary () <GPBDictionaryInternalsProtocol> {
282 @package
283 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
284}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400285@end
286
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400287@interface GPBInt64UInt64Dictionary () <GPBDictionaryInternalsProtocol> {
288 @package
289 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
290}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400291@end
292
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400293@interface GPBInt64Int64Dictionary () <GPBDictionaryInternalsProtocol> {
294 @package
295 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
296}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400297@end
298
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400299@interface GPBInt64BoolDictionary () <GPBDictionaryInternalsProtocol> {
300 @package
301 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
302}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400303@end
304
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400305@interface GPBInt64FloatDictionary () <GPBDictionaryInternalsProtocol> {
306 @package
307 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
308}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400309@end
310
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400311@interface GPBInt64DoubleDictionary () <GPBDictionaryInternalsProtocol> {
312 @package
313 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
314}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400315@end
316
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400317@interface GPBInt64EnumDictionary () <GPBDictionaryInternalsProtocol> {
318 @package
319 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
320}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400321- (NSData *)serializedDataForUnknownValue:(int32_t)value
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400322 forKey:(GPBGenericValue *)key
323 keyDataType:(GPBDataType)keyDataType;
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400324@end
325
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400326@interface GPBInt64ObjectDictionary () <GPBDictionaryInternalsProtocol> {
327 @package
328 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
329}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400330- (BOOL)isInitialized;
331- (instancetype)deepCopyWithZone:(NSZone *)zone
332 __attribute__((ns_returns_retained));
333@end
334
335//%PDDM-EXPAND DICTIONARY_PRIV_INTERFACES_FOR_POD_KEY(Bool)
336// This block of code is generated, do not edit it directly.
337
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400338@interface GPBBoolUInt32Dictionary () <GPBDictionaryInternalsProtocol> {
339 @package
340 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
341}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400342@end
343
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400344@interface GPBBoolInt32Dictionary () <GPBDictionaryInternalsProtocol> {
345 @package
346 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
347}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400348@end
349
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400350@interface GPBBoolUInt64Dictionary () <GPBDictionaryInternalsProtocol> {
351 @package
352 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
353}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400354@end
355
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400356@interface GPBBoolInt64Dictionary () <GPBDictionaryInternalsProtocol> {
357 @package
358 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
359}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400360@end
361
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400362@interface GPBBoolBoolDictionary () <GPBDictionaryInternalsProtocol> {
363 @package
364 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
365}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400366@end
367
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400368@interface GPBBoolFloatDictionary () <GPBDictionaryInternalsProtocol> {
369 @package
370 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
371}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400372@end
373
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400374@interface GPBBoolDoubleDictionary () <GPBDictionaryInternalsProtocol> {
375 @package
376 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
377}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400378@end
379
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400380@interface GPBBoolEnumDictionary () <GPBDictionaryInternalsProtocol> {
381 @package
382 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
383}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400384- (NSData *)serializedDataForUnknownValue:(int32_t)value
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400385 forKey:(GPBGenericValue *)key
386 keyDataType:(GPBDataType)keyDataType;
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400387@end
388
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400389@interface GPBBoolObjectDictionary () <GPBDictionaryInternalsProtocol> {
390 @package
391 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
392}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400393- (BOOL)isInitialized;
394- (instancetype)deepCopyWithZone:(NSZone *)zone
395 __attribute__((ns_returns_retained));
396@end
397
398//%PDDM-EXPAND DICTIONARY_POD_PRIV_INTERFACES_FOR_KEY(String)
399// This block of code is generated, do not edit it directly.
400
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400401@interface GPBStringUInt32Dictionary () <GPBDictionaryInternalsProtocol> {
402 @package
403 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
404}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400405@end
406
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400407@interface GPBStringInt32Dictionary () <GPBDictionaryInternalsProtocol> {
408 @package
409 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
410}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400411@end
412
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400413@interface GPBStringUInt64Dictionary () <GPBDictionaryInternalsProtocol> {
414 @package
415 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
416}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400417@end
418
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400419@interface GPBStringInt64Dictionary () <GPBDictionaryInternalsProtocol> {
420 @package
421 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
422}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400423@end
424
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400425@interface GPBStringBoolDictionary () <GPBDictionaryInternalsProtocol> {
426 @package
427 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
428}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400429@end
430
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400431@interface GPBStringFloatDictionary () <GPBDictionaryInternalsProtocol> {
432 @package
433 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
434}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400435@end
436
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400437@interface GPBStringDoubleDictionary () <GPBDictionaryInternalsProtocol> {
438 @package
439 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
440}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400441@end
442
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400443@interface GPBStringEnumDictionary () <GPBDictionaryInternalsProtocol> {
444 @package
445 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
446}
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400447- (NSData *)serializedDataForUnknownValue:(int32_t)value
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400448 forKey:(GPBGenericValue *)key
449 keyDataType:(GPBDataType)keyDataType;
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400450@end
451
452//%PDDM-EXPAND-END (6 expansions)
453
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400454#pragma mark - NSDictionary Subclass
455
456@interface GPBAutocreatedDictionary : NSMutableDictionary {
457 @package
458 GPB_UNSAFE_UNRETAINED GPBMessage *_autocreator;
459}
460@end
461
462#pragma mark - Helpers
463
Thomas Van Lenten30650d82015-05-01 08:57:16 -0400464CF_EXTERN_C_BEGIN
465
466// Helper to compute size when an NSDictionary is used for the map instead
467// of a custom type.
468size_t GPBDictionaryComputeSizeInternalHelper(NSDictionary *dict,
469 GPBFieldDescriptor *field);
470
471// Helper to write out when an NSDictionary is used for the map instead
472// of a custom type.
473void GPBDictionaryWriteToStreamInternalHelper(
474 GPBCodedOutputStream *outputStream, NSDictionary *dict,
475 GPBFieldDescriptor *field);
476
477// Helper to check message initialization when an NSDictionary is used for
478// the map instead of a custom type.
479BOOL GPBDictionaryIsInitializedInternalHelper(NSDictionary *dict,
480 GPBFieldDescriptor *field);
481
482// Helper to read a map instead.
483void GPBDictionaryReadEntry(id mapDictionary, GPBCodedInputStream *stream,
484 GPBExtensionRegistry *registry,
485 GPBFieldDescriptor *field,
486 GPBMessage *parentMessage);
487
488CF_EXTERN_C_END