ObjFW  Diff

Differences From Artifact [3debf5b6eb]:

To Artifact [7932c0a40a]:


16
17
18
19
20
21
22


23
24
25

26
27
28
29
30
31
32
16
17
18
19
20
21
22
23
24
25
26

27
28
29
30
31
32
33
34







+
+


-
+








#import "OFObject.h"
#import "OFEnumerator.h"

/*! @file */

/*!
 * @struct of_map_table_functions_t OFMapTable.h ObjFW/OFMapTable.h
 *
 * @brief A struct describing the functions to be used by the map table.
 */
typedef struct of_map_table_functions_t {
typedef struct {
	/// The function to retain keys / values
	void* (*retain)(void *value);
	/// The function to release keys / values
	void (*release)(void *value);
	/// The function to hash keys
	uint32_t (*hash)(void *value);
	/// The function to compare keys / values
54
55
56
57
58
59
60


61
62
63
64
65
66
67
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71







+
+







 */
typedef void* (^of_map_table_replace_block_t)(void *key, void *value);
#endif

@class OFMapTableEnumerator;

/*!
 * @class OFMapTable OFMapTable.h ObjFW/OFMapTable.h
 *
 * @brief A class similar to OFDictionary, but providing more options how keys
 *	  and values should be retained, released, compared and hashed.
 */
@interface OFMapTable: OFObject <OFCopying, OFFastEnumeration>
{
	of_map_table_functions_t _keyFunctions, _valueFunctions;
	struct of_map_table_bucket **_buckets;
221
222
223
224
225
226
227


228
229
230
231
232
233
234
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240







+
+







 *
 * @return The value functions used by the map table
 */
- (of_map_table_functions_t)valueFunctions;
@end

/*!
 * @class OFMapTableEnumerator OFMapTable.h ObjFW/OFMapTable.h
 *
 * @brief A class which provides methods to enumerate through an OFMapTable's
 *	  keys or values.
 */
@interface OFMapTableEnumerator: OFObject
{
	OFMapTable *_mapTable;
	struct of_map_table_bucket **_buckets;