27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
*
* @brief A list object.
*
* A struct that contains a pointer to the next list object, the previous list
* object and the object.
*/
struct of_list_object_t {
/// A pointer to the next list object in the list
of_list_object_t *next;
/// A pointer to the previous list object in the list
of_list_object_t *previous;
/// The object for the list object
id __unsafe_unretained object;
};
/*!
* @class OFList OFList.h ObjFW/OFList.h
*
* @brief A class which provides easy to use double-linked lists.
*/
@interface OFList OF_GENERIC(ObjectType): OFObject <OFCopying, OFCollection,
OFSerialization>
#if !defined(OF_HAVE_GENERICS) && !defined(DOXYGEN)
# define ObjectType id
#endif
{
of_list_object_t *_firstListObject;
of_list_object_t *_lastListObject;
size_t _count;
unsigned long _mutations;
}
/*!
* The first list object of the list.
*/
@property OF_NULLABLE_PROPERTY (readonly, nonatomic)
of_list_object_t *firstListObject;
|
|
|
|
|
|
|
|
|
|
|
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
*
* @brief A list object.
*
* A struct that contains a pointer to the next list object, the previous list
* object and the object.
*/
struct of_list_object_t {
/*! A pointer to the next list object in the list */
of_list_object_t *_Nullable next;
/*! A pointer to the previous list object in the list */
of_list_object_t *_Nullable previous;
/*! The object for the list object */
id __unsafe_unretained object;
};
/*!
* @class OFList OFList.h ObjFW/OFList.h
*
* @brief A class which provides easy to use double-linked lists.
*/
@interface OFList OF_GENERIC(ObjectType): OFObject <OFCopying, OFCollection,
OFSerialization>
#if !defined(OF_HAVE_GENERICS) && !defined(DOXYGEN)
# define ObjectType id
#endif
{
of_list_object_t *_Nullable _firstListObject;
of_list_object_t *_Nullable _lastListObject;
size_t _count;
unsigned long _mutations;
}
/*!
* The first list object of the list.
*/
@property OF_NULLABLE_PROPERTY (readonly, nonatomic)
of_list_object_t *firstListObject;
|
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
/*!
* @brief Checks whether the list contains an object equal to the specified
* object.
*
* @param object The object which is checked for being in the list
* @return A boolean whether the list contains the specified object
*/
- (bool)containsObject: (nullable ObjectType)object;
/*!
* @brief Checks whether the list contains an object with the specified address.
*
* @param object The object which is checked for being in the list
* @return A boolean whether the list contains an object with the specified
* address
*/
- (bool)containsObjectIdenticalTo: (nullable ObjectType)object;
/*!
* @brief Returns an OFEnumerator to enumerate through all objects of the list.
*
* @returns An OFEnumerator to enumerate through all objects of the list
*/
- (OFEnumerator OF_GENERIC(ObjectType) *)objectEnumerator;
|
|
|
|
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
/*!
* @brief Checks whether the list contains an object equal to the specified
* object.
*
* @param object The object which is checked for being in the list
* @return A boolean whether the list contains the specified object
*/
- (bool)containsObject: (ObjectType)object;
/*!
* @brief Checks whether the list contains an object with the specified address.
*
* @param object The object which is checked for being in the list
* @return A boolean whether the list contains an object with the specified
* address
*/
- (bool)containsObjectIdenticalTo: (ObjectType)object;
/*!
* @brief Returns an OFEnumerator to enumerate through all objects of the list.
*
* @returns An OFEnumerator to enumerate through all objects of the list
*/
- (OFEnumerator OF_GENERIC(ObjectType) *)objectEnumerator;
|
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
|
#if !defined(OF_HAVE_GENERICS) && !defined(DOXYGEN)
# undef ObjectType
#endif
@end
@interface OFListEnumerator: OFEnumerator
{
OFList *_list;
of_list_object_t *_current;
unsigned long _mutations;
unsigned long *_mutationsPtr;
}
- initWithList: (OFList *)list
mutationsPointer: (unsigned long *)mutationsPtr;
@end
OF_ASSUME_NONNULL_END
|
|
|
|
|
|
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
|
#if !defined(OF_HAVE_GENERICS) && !defined(DOXYGEN)
# undef ObjectType
#endif
@end
@interface OFListEnumerator: OFEnumerator
{
OFList *_list;
of_list_object_t *_Nullable _current;
unsigned long _mutations;
unsigned long *_Nullable _mutationsPtr;
}
- initWithList: (OFList *)list
mutationsPointer: (unsigned long *)mutationsPtr;
@end
OF_ASSUME_NONNULL_END
|