29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
*/
struct of_map_table_functions_t {
/** The function to retain keys / objects */
void *_Nullable (*_Nullable retain)(void *_Nullable object);
/** The function to release keys / objects */
void (*_Nullable release)(void *_Nullable object);
/** The function to hash keys */
uint32_t (*_Nullable hash)(void *_Nullable object);
/** The function to compare keys / objects */
bool (*_Nullable equal)(void *_Nullable object1,
void *_Nullable object2);
};
typedef struct of_map_table_functions_t of_map_table_functions_t;
#ifdef OF_HAVE_BLOCKS
|
|
|
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
*/
struct of_map_table_functions_t {
/** The function to retain keys / objects */
void *_Nullable (*_Nullable retain)(void *_Nullable object);
/** The function to release keys / objects */
void (*_Nullable release)(void *_Nullable object);
/** The function to hash keys */
unsigned long (*_Nullable hash)(void *_Nullable object);
/** The function to compare keys / objects */
bool (*_Nullable equal)(void *_Nullable object1,
void *_Nullable object2);
};
typedef struct of_map_table_functions_t of_map_table_functions_t;
#ifdef OF_HAVE_BLOCKS
|
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
* and objects should be retained, released, compared and hashed.
*/
OF_SUBCLASSING_RESTRICTED
@interface OFMapTable: OFObject <OFCopying, OFFastEnumeration>
{
of_map_table_functions_t _keyFunctions, _objectFunctions;
struct of_map_table_bucket *_Nonnull *_Nullable _buckets;
uint32_t _count, _capacity;
uint8_t _rotate;
unsigned long _mutations;
}
/**
* @brief The key functions used by the map table.
*/
@property (readonly, nonatomic) of_map_table_functions_t keyFunctions;
|
|
|
|
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
* and objects should be retained, released, compared and hashed.
*/
OF_SUBCLASSING_RESTRICTED
@interface OFMapTable: OFObject <OFCopying, OFFastEnumeration>
{
of_map_table_functions_t _keyFunctions, _objectFunctions;
struct of_map_table_bucket *_Nonnull *_Nullable _buckets;
unsigned long _count, _capacity;
unsigned char _rotate;
unsigned long _mutations;
}
/**
* @brief The key functions used by the map table.
*/
@property (readonly, nonatomic) of_map_table_functions_t keyFunctions;
|
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
|
* @brief A class which provides methods to enumerate through an OFMapTable's
* keys or objects.
*/
@interface OFMapTableEnumerator: OFObject
{
OFMapTable *_mapTable;
struct of_map_table_bucket *_Nonnull *_Nullable _buckets;
uint32_t _capacity;
unsigned long _mutations;
unsigned long *_Nullable _mutationsPtr;
uint32_t _position;
}
- (instancetype)init OF_UNAVAILABLE;
/**
* @brief Returns a pointer to the next object, or NULL if the enumeration
* finished.
|
<
|
|
<
|
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
|
* @brief A class which provides methods to enumerate through an OFMapTable's
* keys or objects.
*/
@interface OFMapTableEnumerator: OFObject
{
OFMapTable *_mapTable;
struct of_map_table_bucket *_Nonnull *_Nullable _buckets;
unsigned long _capacity, _mutations, *_Nullable _mutationsPtr;
unsigned long _position;
}
- (instancetype)init OF_UNAVAILABLE;
/**
* @brief Returns a pointer to the next object, or NULL if the enumeration
* finished.
|