41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
-
+
|
/*!
* @class OFList OFList.h ObjFW/OFList.h
*
* @brief A class which provides easy to use double-linked lists.
*/
#ifdef OF_HAVE_GENERICS
@interface OFList <ObjectType>:
@interface OFList<ObjectType>:
#else
# ifndef DOXYGEN
# define ObjectType id
# endif
@interface OFList:
#endif
OFObject <OFCopying, OFCollection, OFSerialization>
|
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
-
+
-
+
-
-
+
+
-
-
+
+
-
+
|
* @brief Appends an object to the list.
*
* @param object The object to append
* @return An of_list_object_t, needed to identify the object inside the list.
* For example, if you want to remove an object from the list, you need
* its of_list_object_t.
*/
- (of_list_object_t*)appendObject: (ObjectType)object;
- (of_list_object_t *)appendObject: (ObjectType)object;
/*!
* @brief Prepends an object to the list.
*
* @param object The object to prepend
* @return An of_list_object_t, needed to identify the object inside the list.
* For example, if you want to remove an object from the list, you need
* its of_list_object_t.
*/
- (of_list_object_t*)prependObject: (ObjectType)object;
- (of_list_object_t *)prependObject: (ObjectType)object;
/*!
* @brief Inserts an object before another list object.
*
* @param object The object to insert
* @param listObject The of_list_object_t of the object before which it should
* be inserted
* @return An of_list_object_t, needed to identify the object inside the list.
* For example, if you want to remove an object from the list, you need
* its of_list_object_t.
*/
- (of_list_object_t*)insertObject: (ObjectType)object
beforeListObject: (of_list_object_t*)listObject;
- (of_list_object_t *)insertObject: (ObjectType)object
beforeListObject: (of_list_object_t *)listObject;
/*!
* @brief Inserts an object after another list object.
*
* @param object The object to insert
* @param listObject The of_list_object_t of the object after which it should be
* inserted
* @return An of_list_object_t, needed to identify the object inside the list.
* For example, if you want to remove an object from the list, you need
* its of_list_object_t.
*/
- (of_list_object_t*)insertObject: (ObjectType)object
afterListObject: (of_list_object_t*)listObject;
- (of_list_object_t *)insertObject: (ObjectType)object
afterListObject: (of_list_object_t *)listObject;
/*!
* @brief Removes the object with the specified list object from the list.
*
* @param listObject The list object returned by append / prepend
*/
- (void)removeListObject: (of_list_object_t*)listObject;
- (void)removeListObject: (of_list_object_t *)listObject;
/*!
* @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
|
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
|
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
|
-
+
|
- (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;
- (OFEnumerator OF_GENERIC(ObjectType) *)objectEnumerator;
/*!
* @brief Returns the first object of the list or `nil`.
*
* @warning The returned object is *not* retained and autoreleased for
* performance reasons!
*
|
188
189
190
191
192
193
194
195
196
197
198
199
|
188
189
190
191
192
193
194
195
196
197
198
199
|
-
-
+
+
|
{
OFList *_list;
of_list_object_t *_current;
unsigned long _mutations;
unsigned long *_mutationsPtr;
}
- initWithList: (OFList*)list
mutationsPointer: (unsigned long*)mutationsPtr;
- initWithList: (OFList *)list
mutationsPointer: (unsigned long *)mutationsPtr;
@end
OF_ASSUME_NONNULL_END
|