16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
+
+
+
+
|
#import "OFObject.h"
@class OFEnumerator;
@class OFArray;
/*!
* @protocol OFEnumerating OFEnumerator.h ObjFW/OFEnumerator.h
*
* @brief A protocol for getting an enumerator for the object.
*/
@protocol OFEnumerating
/*!
* @brief Returns an OFEnumerator to enumerate through all objects of the
* collection.
*
* @returns An OFEnumerator to enumerate through all objects of the collection
*/
- (OFEnumerator*)objectEnumerator;
@end
/*!
* @class OFEnumerator OFEnumerator.h ObjFW/OFEnumerator.h
*
* @brief A class which provides methods to enumerate through collections.
*/
@interface OFEnumerator: OFObject
/*!
* @brief Returns the next object.
*
* @return The next object
|
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
+
+
-
+
+
+
|
*
* We need this bad check to see if we already imported Cocoa, which defines
* this as well.
*/
#define of_fast_enumeration_state_t NSFastEnumerationState
#ifndef NSINTEGER_DEFINED
/*!
* @struct of_fast_enumeration_state_t OFEnumerator.h ObjFW/OFEnumerator.h
*
* @brief State information for fast enumerations.
*/
typedef struct of_fast_enumeration_state_t {
typedef struct {
/// Arbitrary state information for the enumeration
unsigned long state;
/// Pointer to a C array of objects to return
__unsafe_unretained id *itemsPtr;
/// Arbitrary state information to detect mutations
unsigned long *mutationsPtr;
/// Additional arbitrary state information
unsigned long extra[5];
} of_fast_enumeration_state_t;
#endif
/*!
* @protocol OFFastEnumeration OFEnumerator.h ObjFW/OFEnumerator.h
*
* @brief A protocol for fast enumeration.
*
* The OFFastEnumeration protocol needs to be implemented by all classes
* supporting fast enumeration.
*/
@protocol OFFastEnumeration
/*!
|