Modified src/OFApplication.h
from [ec565e513e]
to [f44a22ec3a].
︙ | | |
25
26
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
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
25
26
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
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
|
#define OF_APPLICATION_DELEGATE(cls) \
int \
main(int argc, char *argv[]) \
{ \
return of_application_main(&argc, &argv, [cls class]); \
}
/**
* \brief A protocol for delegates of OFApplication.
/*!
* @brief A protocol for delegates of OFApplication.
*/
#ifndef OF_APPLICATION_M
@protocol OFApplicationDelegate <OFObject>
#else
@protocol OFApplicationDelegate
#endif
/**
* \brief A method which is called when the application was initialized and is
/*!
* @brief A method which is called when the application was initialized and is
* running now.
*/
- (void)applicationDidFinishLaunching;
#ifdef OF_HAVE_OPTIONAL_PROTOCOLS
@optional
#endif
/**
* \brief A method which is called when the application will terminate.
/*!
* @brief A method which is called when the application will terminate.
*/
- (void)applicationWillTerminate;
/**
* \brief A method which is called when the application received a SIGINT.
/*!
* @brief A method which is called when the application received a SIGINT.
*
* \warning You are not allowed to send any messages inside this method, as
* @warning You are not allowed to send any messages inside this method, as
* message dispatching is not signal-safe! You are only allowed to do
* signal-safe operations like setting a variable or calling a
* signal-safe function!
*/
- (void)applicationDidReceiveSIGINT;
#ifndef _WIN32
/**
* \brief A method which is called when the application received a SIGHUP.
/*!
* @brief A method which is called when the application received a SIGHUP.
*
* This signal is not available on Windows.
*
* \warning You are not allowed to send any messages inside this method, as
* @warning You are not allowed to send any messages inside this method, as
* message dispatching is not signal-safe! You are only allowed to do
* signal-safe operations like setting a variable or calling a
* signal-safe function!
*/
- (void)applicationDidReceiveSIGHUP;
/**
* \brief A method which is called when the application received a SIGUSR1.
/*!
* @brief A method which is called when the application received a SIGUSR1.
*
* This signal is not available on Windows.
*
* \warning You are not allowed to send any messages inside this method, as
* @warning You are not allowed to send any messages inside this method, as
* message dispatching is not signal-safe! You are only allowed to do
* signal-safe operations like setting a variable or calling a
* signal-safe function!
*/
- (void)applicationDidReceiveSIGUSR1;
/**
* \brief A method which is called when the application received a SIGUSR2.
/*!
* @brief A method which is called when the application received a SIGUSR2.
*
* This signal is not available on Windows.
*
* \warning You are not allowed to send any messages inside this method, as
* @warning You are not allowed to send any messages inside this method, as
* message dispatching is not signal-safe! You are only allowed to do
* signal-safe operations like setting a variable or calling a
* signal-safe function!
*/
- (void)applicationDidReceiveSIGUSR2;
#endif
@end
/**
* \brief Represents the application as an object.
/*!
* @brief Represents the application as an object.
*/
@interface OFApplication: OFObject
{
OFString *programName;
OFMutableArray *arguments;
OFMutableDictionary *environment;
int *argc;
|
︙ | | |
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
|
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
|
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
|
#ifdef OF_HAVE_PROPERTIES
@property (readonly, copy, nonatomic) OFString *programName;
@property (readonly, copy, nonatomic) OFArray *arguments;
@property (readonly, copy, nonatomic) OFDictionary *environment;
@property (assign) id <OFApplicationDelegate> delegate;
#endif
/**
* \brief Returns the only OFApplication instance in the application.
/*!
* @brief Returns the only OFApplication instance in the application.
*
* \return The only OFApplication instance in the application
* @return The only OFApplication instance in the application
*/
+ (OFApplication*)sharedApplication;
/**
* \brief Returns the name of the program (argv[0]).
/*!
* @brief Returns the name of the program (argv[0]).
*
* \return The name of the program (argv[0])
* @return The name of the program (argv[0])
*/
+ (OFString*)programName;
/**
* \brief Returns the arguments passed to the application.
/*!
* @brief Returns the arguments passed to the application.
*
* \return The arguments passed to the application
* @return The arguments passed to the application
*/
+ (OFArray*)arguments;
/**
* \brief Returns the environment of the application.
/*!
* @brief Returns the environment of the application.
*
* \return The environment of the application
* @return The environment of the application
*/
+ (OFDictionary*)environment;
/**
* \brief Terminates the application.
/*!
* @brief Terminates the application.
*/
+ (void)terminate;
/**
* \brief Terminates the application with the specified status.
/*!
* @brief Terminates the application with the specified status.
*
* \param status The status with which the application will terminate
* @param status The status with which the application will terminate
*/
+ (void)terminateWithStatus: (int)status;
/**
* \brief Sets argc and argv.
/*!
* @brief Sets argc and argv.
*
* You should not call this directly, but use OF_APPLICATION_DELEGATE instead!
*
* \param argc The number of arguments
* \param argv The argument values
* @param argc The number of arguments
* @param argv The argument values
*/
- (void)setArgumentCount: (int*)argc
andArgumentValues: (char**[])argv;
/**
* \brief Gets args and argv.
/*!
* @brief Gets args and argv.
*
* \param argc A pointer where a pointer to argc should be stored
* \param argv A pointer where a pointer to argv should be stored
* @param argc A pointer where a pointer to argc should be stored
* @param argv A pointer where a pointer to argv should be stored
*/
- (void)getArgumentCount: (int**)argc
andArgumentValues: (char***[])argv;
/**
* \brief Returns the name of the program (argv[0]).
/*!
* @brief Returns the name of the program (argv[0]).
*
* \return The name of the program (argv[0])
* @return The name of the program (argv[0])
*/
- (OFString*)programName;
/**
* \brief Returns the arguments passed to the application.
/*!
* @brief Returns the arguments passed to the application.
*
* \return The arguments passed to the application
* @return The arguments passed to the application
*/
- (OFArray*)arguments;
/**
* \brief Returns the environment of the application.
/*!
* @brief Returns the environment of the application.
*
* \return The environment of the application
* @return The environment of the application
*/
- (OFDictionary*)environment;
/**
* \brief Returns the delegate of the application.
/*!
* @brief Returns the delegate of the application.
*
* \return The delegate of the application
* @return The delegate of the application
*/
- (id <OFApplicationDelegate>)delegate;
/**
* \brief Sets the delegate of the application.
/*!
* @brief Sets the delegate of the application.
*
* \param delegate The delegate for the application
* @param delegate The delegate for the application
*/
- (void)setDelegate: (id <OFApplicationDelegate>)delegate;
/**
* \brief Starts the application after everything has been initialized.
/*!
* @brief Starts the application after everything has been initialized.
*
* You should not call this directly, but use OF_APPLICATION_DELEGATE instead!
*/
- (void)run;
/**
* \brief Terminates the application.
/*!
* @brief Terminates the application.
*/
- (void)terminate;
/**
* \brief Terminates the application with the specified status.
/*!
* @brief Terminates the application with the specified status.
*
* \param status The status with which the application will terminate
* @param status The status with which the application will terminate
*/
- (void)terminateWithStatus: (int)status;
@end
@interface OFObject (OFApplicationDelegate) <OFApplicationDelegate>
@end
|
︙ | | |
Modified src/OFArray.h
from [d93b4c3a6a]
to [768eda6eec].
︙ | | |
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
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
|
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
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
|
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
|
typedef void (^of_array_enumeration_block_t)(id object, size_t index,
BOOL *stop);
typedef BOOL (^of_array_filter_block_t)(id odject, size_t index);
typedef id (^of_array_map_block_t)(id object, size_t index);
typedef id (^of_array_fold_block_t)(id left, id right);
#endif
/**
* \brief An abstract class for storing objects in an array.
/*!
* @brief An abstract class for storing objects in an array.
*/
@interface OFArray: OFObject <OFCopying, OFMutableCopying, OFCollection,
OFSerialization, OFJSONRepresentation>
#ifdef OF_HAVE_PROPERTIES
@property (readonly) size_t count;
#endif
/**
* \brief Creates a new OFArray.
/*!
* @brief Creates a new OFArray.
*
* \return A new autoreleased OFArray
* @return A new autoreleased OFArray
*/
+ (instancetype)array;
/**
* \brief Creates a new OFArray with the specified object.
/*!
* @brief Creates a new OFArray with the specified object.
*
* \param object An object
* \return A new autoreleased OFArray
* @param object An object
* @return A new autoreleased OFArray
*/
+ (instancetype)arrayWithObject: (id)object;
/**
* \brief Creates a new OFArray with the specified objects, terminated by nil.
/*!
* @brief Creates a new OFArray with the specified objects, terminated by nil.
*
* \param firstObject The first object in the array
* \return A new autoreleased OFArray
* @param firstObject The first object in the array
* @return A new autoreleased OFArray
*/
+ (instancetype)arrayWithObjects: (id)firstObject, ... OF_SENTINEL;
/**
* \brief Creates a new OFArray with the objects from the specified array.
/*!
* @brief Creates a new OFArray with the objects from the specified array.
*
* \param array An array
* \return A new autoreleased OFArray
* @param array An array
* @return A new autoreleased OFArray
*/
+ (instancetype)arrayWithArray: (OFArray*)array;
/**
* \brief Creates a new OFArray with the objects from the specified C array of
/*!
* @brief Creates a new OFArray with the objects from the specified C array of
* the specified length.
*
* \param objects A C array of objects
* \param length The length of the C array
* \return A new autoreleased OFArray
* @param objects A C array of objects
* @param length The length of the C array
* @return A new autoreleased OFArray
*/
+ (instancetype)arrayWithObjects: (id const*)objects
count: (size_t)count;
/**
* \brief Initializes an OFArray with the specified object.
/*!
* @brief Initializes an OFArray with the specified object.
*
* \param object An object
* \return An initialized OFArray
* @param object An object
* @return An initialized OFArray
*/
- initWithObject: (id)object;
/**
* \brief Initializes an OFArray with the specified objects.
/*!
* @brief Initializes an OFArray with the specified objects.
*
* \param firstObject The first object
* \return An initialized OFArray
* @param firstObject The first object
* @return An initialized OFArray
*/
- initWithObjects: (id)firstObject, ... OF_SENTINEL;
/**
* \brief Initializes an OFArray with the specified object and a va_list.
/*!
* @brief Initializes an OFArray with the specified object and a va_list.
*
* \param firstObject The first object
* \param arguments A va_list
* \return An initialized OFArray
* @param firstObject The first object
* @param arguments A va_list
* @return An initialized OFArray
*/
- initWithObject: (id)firstObject
arguments: (va_list)arguments;
/**
* \brief Initializes an OFArray with the objects from the specified array.
/*!
* @brief Initializes an OFArray with the objects from the specified array.
*
* \param array An array
* \return An initialized OFArray
* @param array An array
* @return An initialized OFArray
*/
- initWithArray: (OFArray*)array;
/**
* \brief Initializes an OFArray with the objects from the specified C array of
/*!
* @brief Initializes an OFArray with the objects from the specified C array of
* the specified length.
*
* \param objects A C array of objects
* \param length The length of the C array
* \return An initialized OFArray
* @param objects A C array of objects
* @param length The length of the C array
* @return An initialized OFArray
*/
- initWithObjects: (id const*)objects
count: (size_t)count;
/**
* \brief Returns a specified object of the array.
/*!
* @brief Returns a specified object of the array.
*
* The returned object is <i>not</i> retained and autoreleased for performance
* reasons!
*
* \param index The number of the object to return
* \return The specified object of the OFArray
* @param index The number of the object to return
* @return The specified object of the OFArray
*/
- (id)objectAtIndex: (size_t)index;
- (id)objectAtIndexedSubscript: (size_t)index;
/**
* \brief Copies the objects at the specified range to the specified buffer.
/*!
* @brief Copies the objects at the specified range to the specified buffer.
*
* \param buffer The buffer to copy the objects to
* \param range The range to copy
* @param buffer The buffer to copy the objects to
* @param range The range to copy
*/
- (void)getObjects: (__unsafe_unretained id*)buffer
inRange: (of_range_t)range;
/**
* \brief Returns the objects of the array as a C array.
/*!
* @brief Returns the objects of the array as a C array.
*
* \return The objects of the array as a C array
* @return The objects of the array as a C array
*/
- (id*)objects;
/**
* \brief Returns the index of the first object that is equivalent to the
/*!
* @brief Returns the index of the first object that is equivalent to the
* specified object or OF_NOT_FOUND if it was not found.
*
* \param object The object whose index is returned
* \return The index of the first object equivalent to the specified object
* @param object The object whose index is returned
* @return The index of the first object equivalent to the specified object
* or OF_NOT_FOUND if it was not found
*/
- (size_t)indexOfObject: (id)object;
/**
* \brief Returns the index of the first object that has the same address as the
/*!
* @brief Returns the index of the first object that has the same address as the
* specified object or OF_NOT_FOUND if it was not found.
*
* \param object The object whose index is returned
* \return The index of the first object that has the same aaddress as
* @param object The object whose index is returned
* @return The index of the first object that has the same aaddress as
* the specified object or OF_NOT_FOUND if it was not found
*/
- (size_t)indexOfObjectIdenticalTo: (id)object;
/**
* \brief Checks whether the array contains an object with the specified
/*!
* @brief Checks whether the array contains an object with the specified
* address.
*
* \param object The object which is checked for being in the array
* \return A boolean whether the array contains an object with the specified
* @param object The object which is checked for being in the array
* @return A boolean whether the array contains an object with the specified
* address.
*/
- (BOOL)containsObjectIdenticalTo: (id)object;
/**
* \brief Returns the first object of the array or nil.
/*!
* @brief Returns the first object of the array or nil.
*
* The returned object is <i>not</i> retained and autoreleased for performance
* reasons!
*
* \return The first object of the array or nil
* @return The first object of the array or nil
*/
- (id)firstObject;
/**
* \brief Returns the last object of the array or nil.
/*!
* @brief Returns the last object of the array or nil.
*
* The returned object is <i>not</i> retained and autoreleased for performance
* reasons!
*
* \return The last object of the array or nil
* @return The last object of the array or nil
*/
- (id)lastObject;
/**
* \brief Returns the objects in the specified range as a new OFArray.
/*!
* @brief Returns the objects in the specified range as a new OFArray.
*
* \param range The range for the subarray
* \return The subarray as a new autoreleased OFArray
* @param range The range for the subarray
* @return The subarray as a new autoreleased OFArray
*/
- (OFArray*)objectsInRange: (of_range_t)range;
/**
* \brief Creates a string by joining all objects of the array.
/*!
* @brief Creates a string by joining all objects of the array.
*
* \param separator The string with which the objects should be joined
* \return A string containing all objects joined by the separator
* @param separator The string with which the objects should be joined
* @return A string containing all objects joined by the separator
*/
- (OFString*)componentsJoinedByString: (OFString*)separator;
/**
* \brief Creates a string by calling the selector on all objects of the array
/*!
* @brief Creates a string by calling the selector on all objects of the array
* and joining the strings returned by calling the selector.
*
* \param separator The string with which the objects should be joined
* \param selector The selector to perform on the objects
* \return A string containing all objects joined by the separator
* @param separator The string with which the objects should be joined
* @param selector The selector to perform on the objects
* @return A string containing all objects joined by the separator
*/
- (OFString*)componentsJoinedByString: (OFString*)separator
usingSelector: (SEL)selector;
/**
* \brief Performs the specified selector on all objects in the array.
/*!
* @brief Performs the specified selector on all objects in the array.
*
* \param selector The selector to perform on all objects in the array
* @param selector The selector to perform on all objects in the array
*/
- (void)makeObjectsPerformSelector: (SEL)selector;
/**
* \brief Performs the specified selector on all objects in the array with the
/*!
* @brief Performs the specified selector on all objects in the array with the
* specified object.
*
* \param selector The selector to perform on all objects in the array
* \param object The object to perform the selector with on all objects in the
* @param selector The selector to perform on all objects in the array
* @param object The object to perform the selector with on all objects in the
* array
*/
- (void)makeObjectsPerformSelector: (SEL)selector
withObject: (id)object;
/**
* \brief Returns a sorted copy of the array.
/*!
* @brief Returns a sorted copy of the array.
*
* \return A sorted copy of the array
* @return A sorted copy of the array
*/
- (OFArray*)sortedArray;
/**
* \brief Returns a copy of the array with the order reversed.
/*!
* @brief Returns a copy of the array with the order reversed.
*
* \return A copy of the array with the order reversed
* @return A copy of the array with the order reversed
*/
- (OFArray*)reversedArray;
/**
* \brief Creates a new array with the specified object added.
/*!
* @brief Creates a new array with the specified object added.
*
* \param object The object to add
* \return A new array with the specified object added
* @param object The object to add
* @return A new array with the specified object added
*/
- (OFArray*)arrayByAddingObject: (id)object;
/**
* \brief Creates a new array with the objects from the specified array added.
/*!
* @brief Creates a new array with the objects from the specified array added.
*
* \param array The array with objects to add
* \return A new array with the objects from the specified array added
* @param array The array with objects to add
* @return A new array with the objects from the specified array added
*/
- (OFArray*)arrayByAddingObjectsFromArray: (OFArray*)array;
/**
* \brief Creates a new array with the specified object removed.
/*!
* @brief Creates a new array with the specified object removed.
*
* \param object The object to remove
* \return A new array with the specified object removed
* @param object The object to remove
* @return A new array with the specified object removed
*/
- (OFArray*)arrayByRemovingObject: (id)object;
#ifdef OF_HAVE_BLOCKS
/**
* \brief Executes a block for each object.
/*!
* @brief Executes a block for each object.
*
* \param block The block to execute for each object
* @param block The block to execute for each object
*/
- (void)enumerateObjectsUsingBlock: (of_array_enumeration_block_t)block;
/**
* \brief Creates a new array, mapping each object using the specified block.
/*!
* @brief Creates a new array, mapping each object using the specified block.
*
* \param block A block which maps an object for each object
* \return A new, autoreleased OFArray
* @param block A block which maps an object for each object
* @return A new, autoreleased OFArray
*/
- (OFArray*)mappedArrayUsingBlock: (of_array_map_block_t)block;
/**
* \brief Creates a new array, only containing the objects for which the block
/*!
* @brief Creates a new array, only containing the objects for which the block
* returns YES.
*
* \param block A block which determines if the object should be in the new
* @param block A block which determines if the object should be in the new
* array
* \return A new, autoreleased OFArray
* @return A new, autoreleased OFArray
*/
- (OFArray*)filteredArrayUsingBlock: (of_array_filter_block_t)block;
/**
* \brief Folds the array to a single object using the specified block.
/*!
* @brief Folds the array to a single object using the specified block.
*
* If the array is empty, it will return nil.
*
* If there is only one object in the array, that object will be returned and
* the block will not be invoked.
*
* If there are at least two objects, the block is invoked for each object
* except the first, where left is always to what the array has already been
* folded and right what should be added to left.
*
* \param block A block which folds two objects into one, which is called for
* @param block A block which folds two objects into one, which is called for
* all objects except the first
* \return The array folded to a single object
* @return The array folded to a single object
*/
- (id)foldUsingBlock: (of_array_fold_block_t)block;
#endif
@end
@interface OFArrayEnumerator: OFEnumerator
{
|
︙ | | |
Modified src/OFAutoreleasePool.h
from [5fa48ae30d]
to [6e133e1966].
︙ | | |
12
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
12
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFObject.h"
/**
* \brief A pool that keeps track of objects to release.
/*!
* @brief A pool that keeps track of objects to release.
*
* The OFAutoreleasePool class is a class that keeps track of objects that will
* be released when the autorelease pool is released.
*
* Every thread has its own stack of autorelease pools.
*/
@interface OFAutoreleasePool: OFObject
{
void *pool;
BOOL ignoreRelease;
}
/**
* \brief Adds an object to the autorelease pool at the top of the
/*!
* @brief Adds an object to the autorelease pool at the top of the
* thread-specific autorelease pool stack.
*
* \param object The object to add to the autorelease pool
* \return The object
* @param object The object to add to the autorelease pool
* @return The object
*/
+ (id)addObject: (id)object;
/**
* \brief Releases all objects in the autorelease pool.
/*!
* @brief Releases all objects in the autorelease pool.
*
* This does not free the memory allocated to store pointers to the objects in
* the pool, so reusing the pool does not allocate any memory until the previous
* number of objects is exceeded. It behaves this way to optimize loops that
* always work with the same or similar number of objects and call relaseObjects
* at the end of the loop, which is propably the most common case for
* releaseObjects.
*
* If a garbage collector is added in the future, it will tell the GC that now
* is a good time to clean up, as this is often used after a lot of objects
* have been added to the pool that should be released before the next iteration
* of a loop, which adds objects again. Thus, it is usually a clean up call.
*/
- (void)releaseObjects;
/**
* \brief Releases all objects in the autorelease pool and deallocates the pool.
/*!
* @brief Releases all objects in the autorelease pool and deallocates the pool.
*/
- (void)release;
/**
* \brief Releases all objects in the autorelease pool and deallocates the pool.
/*!
* @brief Releases all objects in the autorelease pool and deallocates the pool.
*/
- (void)drain;
@end
#ifdef __cplusplus
extern "C" {
#endif
extern id of_autorelease(id);
#ifdef __cplusplus
}
#endif
|
Modified src/OFBlock.h
from [57ad6e55f9]
to [b8e1a2deb4].
︙ | | |
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
-
-
+
+
|
#ifndef Block_copy
# define Block_copy(x) ((__typeof__(x))_Block_copy((const void*)(x)))
#endif
#ifndef Block_release
# define Block_release(x) _Block_release((const void*)(x))
#endif
/**
* \brief The class for all blocks, since all blocks are also objects.
/*!
* @brief The class for all blocks, since all blocks are also objects.
*/
@interface OFBlock: OFObject
@end
@interface OFStackBlock: OFBlock
@end
@interface OFGlobalBlock: OFBlock
@end
@interface OFMallocBlock: OFBlock
@end
|
Modified src/OFCollection.h
from [69a9127fc3]
to [39431ad515].
︙ | | |
12
13
14
15
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
|
12
13
14
15
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
|
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFEnumerator.h"
/**
* \brief A protocol with methods common for all collections.
/*!
* @brief A protocol with methods common for all collections.
*/
@protocol OFCollection <OFEnumerating, OFFastEnumeration>
#ifdef OF_HAVE_PROPERTIES
@property (readonly) size_t count;
#endif
/**
* \brief Returns the number of objects in the collection.
/*!
* @brief Returns the number of objects in the collection.
*
* \return The number of objects in the collection
* @return The number of objects in the collection
*/
- (size_t)count;
/**
* \brief Checks whether the collection contains an object equal to the
/*!
* @brief Checks whether the collection contains an object equal to the
* specified object.
*
* \param object The object which is checked for being in the collection
* \return A boolean whether the collection contains the specified object
* @param object The object which is checked for being in the collection
* @return A boolean whether the collection contains the specified object
*/
- (BOOL)containsObject: (id)object;
@end
|
Modified src/OFCondition.h
from [1e8d6909b1]
to [7903b725d1].
︙ | | |
12
13
14
15
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
47
48
49
50
|
12
13
14
15
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
47
48
49
50
|
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFMutex.h"
/**
* \brief A class implementing a condition variable for thread synchronization.
/*!
* @brief A class implementing a condition variable for thread synchronization.
*/
@interface OFCondition: OFMutex
{
of_condition_t condition;
BOOL conditionInitialized;
}
/**
* \brief Creates a new condition.
/*!
* @brief Creates a new condition.
*
* \return A new, autoreleased OFCondition
* @return A new, autoreleased OFCondition
*/
+ (instancetype)condition;
/**
* \brief Blocks the current thread until another thread calls -[signal] or
/*!
* @brief Blocks the current thread until another thread calls -[signal] or
* -[broadcast].
*/
- (void)wait;
/**
* \brief Signals the next waiting thread to continue.
/*!
* @brief Signals the next waiting thread to continue.
*/
- (void)signal;
/**
* \brief Signals all threads to continue.
/*!
* @brief Signals all threads to continue.
*/
- (void)broadcast;
@end
|
Modified src/OFConstantString.h
from [faa3808289]
to [592b0ead45].
︙ | | |
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
-
-
+
+
|
# endif
extern void *_OFConstantStringClassReference;
# ifdef __cplusplus
}
# endif
#endif
/**
* \brief A class for storing constant strings using the \@"" literal.
/*!
* @brief A class for storing constant strings using the \@"" literal.
*/
@interface OFConstantString: OFString
{
char *cString;
size_t cStringLength;
}
@end
|
Modified src/OFCountedSet.h
from [38bca9caea]
to [a4d21d5e22].
︙ | | |
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
|
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
|
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
|
#import "OFSet.h"
#ifdef OF_HAVE_BLOCKS
typedef void (^of_counted_set_enumeration_block_t)(id object, size_t count,
BOOL *stop);
#endif
/**
* \brief An abstract class for a mutable unordered set of objects, counting how
/*!
* @brief An abstract class for a mutable unordered set of objects, counting how
* often it contains an object.
*/
@interface OFCountedSet: OFMutableSet
/**
* \brief Returns how often the object is in the set.
/*!
* @brief Returns how often the object is in the set.
*
* \return How often the object is in the set
* @return How often the object is in the set
*/
- (size_t)countForObject: (id)object;
#ifdef OF_HAVE_BLOCKS
/**
* \brief Executes a block for each object in the set.
/*!
* @brief Executes a block for each object in the set.
*
* \param block The block to execute for each object in the set
* @param block The block to execute for each object in the set
*/
- (void)enumerateObjectsAndCountUsingBlock:
(of_counted_set_enumeration_block_t)block;
#endif
@end
|
Modified src/OFDataArray+Hashing.h
from [7b8e83201a]
to [56ee04101c].
︙ | | |
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
|
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
|
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
|
extern "C" {
#endif
extern int _OFDataArray_Hashing_reference;
#ifdef __cplusplus
}
#endif
/**
* \brief A category which provides methods to calculate hashes for data arrays.
/*!
* @brief A category which provides methods to calculate hashes for data arrays.
*/
@interface OFDataArray (Hashing)
/**
* \brief Returns the MD5 hash of the data array as an autoreleased OFString.
/*!
* @brief Returns the MD5 hash of the data array as an autoreleased OFString.
*
* \return The MD5 hash of the data array as an autoreleased OFString
* @return The MD5 hash of the data array as an autoreleased OFString
*/
- (OFString*)MD5Hash;
/**
* \brief Returns the SHA-1 hash of the data array as an autoreleased OFString.
/*!
* @brief Returns the SHA-1 hash of the data array as an autoreleased OFString.
*
* \return The SHA-1 hash of the data array as an autoreleased OFString
* @return The SHA-1 hash of the data array as an autoreleased OFString
*/
- (OFString*)SHA1Hash;
@end
|
Modified src/OFDataArray.h
from [fe192fcada]
to [c01f27a1bc].
︙ | | |
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
|
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
|
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
|
#import "OFObject.h"
#import "OFSerialization.h"
@class OFString;
@class OFURL;
/**
* \brief A class for storing arbitrary data in an array.
/*!
* @brief A class for storing arbitrary data in an array.
*
* If you plan to store large hunks of data, you should consider using
* OFBigDataArray, which allocates the memory in pages rather than in bytes.
*
* For security reasons, serialization and deserialization is only implemented
* for OFDataArrays with item size 1.
*/
@interface OFDataArray: OFObject <OFCopying, OFComparing, OFSerialization>
{
uint8_t *data;
size_t count;
size_t itemSize;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, getter=cArray) void *data;
@property (readonly) size_t count;
@property (readonly) size_t itemSize;
#endif
/**
* \brief Creates a new OFDataArray with an item size of 1.
/*!
* @brief Creates a new OFDataArray with an item size of 1.
*
* \return A new autoreleased OFDataArray
* @return A new autoreleased OFDataArray
*/
+ (instancetype)dataArray;
/**
* \brief Creates a new OFDataArray whose items all have the same size.
/*!
* @brief Creates a new OFDataArray whose items all have the same size.
*
* \param itemSize The size of each element in the OFDataArray
* \return A new autoreleased OFDataArray
* @param itemSize The size of each element in the OFDataArray
* @return A new autoreleased OFDataArray
*/
+ (instancetype)dataArrayWithItemSize: (size_t)itemSize;
/**
* \brief Creates a new OFDataArary with an item size of 1, containing the data
/*!
* @brief Creates a new OFDataArary with an item size of 1, containing the data
* of the specified file.
*
* \param path The path of the file
* \return A new autoreleased OFDataArray
* @param path The path of the file
* @return A new autoreleased OFDataArray
*/
+ (instancetype)dataArrayWithContentsOfFile: (OFString*)path;
/**
* \brief Creates a new OFDataArray with an item size of 1, containing the data
/*!
* @brief Creates a new OFDataArray with an item size of 1, containing the data
* of the specified URL.
*
* \param URL The URL to the contents for the OFDataArray
* \return A new autoreleased OFDataArray
* @param URL The URL to the contents for the OFDataArray
* @return A new autoreleased OFDataArray
*/
+ (instancetype)dataArrayWithContentsOfURL: (OFURL*)URL;
/**
* \brief Creates a new OFDataArray with an item size of 1, containing the data
/*!
* @brief Creates a new OFDataArray with an item size of 1, containing the data
* of the string representation.
*
* \param string The string representation of the data
* \return A new autoreleased OFDataArray
* @param string The string representation of the data
* @return A new autoreleased OFDataArray
*/
+ (instancetype)dataArrayWithStringRepresentation: (OFString*)string;
/**
* \brief Creates a new OFDataArray with an item size of 1, containing the data
/*!
* @brief Creates a new OFDataArray with an item size of 1, containing the data
* of the Base64-encoded string.
*
* \param string The string with the Base64-encoded data
* \return A new autoreleased OFDataArray
* @param string The string with the Base64-encoded data
* @return A new autoreleased OFDataArray
*/
+ (instancetype)dataArrayWithBase64EncodedString: (OFString*)string;
/**
* \brief Initializes an already allocated OFDataArray with an item size of 1.
/*!
* @brief Initializes an already allocated OFDataArray with an item size of 1.
*
* \return A initialized OFDataArray
* @return A initialized OFDataArray
*/
- init;
/**
* \brief Initializes an already allocated OFDataArray whose items all have the
/*!
* @brief Initializes an already allocated OFDataArray whose items all have the
* same size.
*
* \param itemSize The size of each element in the OFDataArray
* \return An initialized OFDataArray
* @param itemSize The size of each element in the OFDataArray
* @return An initialized OFDataArray
*/
- initWithItemSize: (size_t)itemSize;
/**
* \brief Initializes an already allocated OFDataArray with an item size of 1,
/*!
* @brief Initializes an already allocated OFDataArray with an item size of 1,
* containing the data of the specified file.
*
* \param path The path of the file
* \return An initialized OFDataArray
* @param path The path of the file
* @return An initialized OFDataArray
*/
- initWithContentsOfFile: (OFString*)path;
/**
* \brief Initializes an already allocated OFDataArray with an item size of 1,
/*!
* @brief Initializes an already allocated OFDataArray with an item size of 1,
* containing the data of the specified URL.
*
* \param URL The URL to the contents for the OFDataArray
* \return A new autoreleased OFDataArray
* @param URL The URL to the contents for the OFDataArray
* @return A new autoreleased OFDataArray
*/
- initWithContentsOfURL: (OFURL*)URL;
/**
* \brief Initializes an already allocated OFDataArray with an item size of 1,
/*!
* @brief Initializes an already allocated OFDataArray with an item size of 1,
* containing the data of the string representation.
*
* \param string The string representation of the data
* \return A new autoreleased OFDataArray
* @param string The string representation of the data
* @return A new autoreleased OFDataArray
*/
- initWithStringRepresentation: (OFString*)string;
/**
* \brief Initializes an already allocated OFDataArray with an item size of 1,
/*!
* @brief Initializes an already allocated OFDataArray with an item size of 1,
* containing the data of the Base64-encoded string.
*
* \param string The string with the Base64-encoded data
* \return A initialized OFDataArray
* @param string The string with the Base64-encoded data
* @return A initialized OFDataArray
*/
- initWithBase64EncodedString: (OFString*)string;
/**
* \brief Returns the number of items in the OFDataArray.
/*!
* @brief Returns the number of items in the OFDataArray.
*
* \return The number of items in the OFDataArray
* @return The number of items in the OFDataArray
*/
- (size_t)count;
/**
* \brief Returns the size of each item in the OFDataArray in bytes.
/*!
* @brief Returns the size of each item in the OFDataArray in bytes.
*
* \return The size of each item in the OFDataArray in bytes
* @return The size of each item in the OFDataArray in bytes
*/
- (size_t)itemSize;
/**
* \brief Returns all elements of the OFDataArray as a C array.
/*!
* @brief Returns all elements of the OFDataArray as a C array.
*
* \warning The pointer is only valid until the OFDataArray is changed!
* @warning The pointer is only valid until the OFDataArray is changed!
*
* Modifying the returned array directly is allowed and will change the contents
* of the data array.
*
* \return All elements of the OFDataArray as a C array
* @return All elements of the OFDataArray as a C array
*/
- (void*)cArray OF_RETURNS_INNER_POINTER;
/**
* \brief Returns a specific item of the OFDataArray.
/*!
* @brief Returns a specific item of the OFDataArray.
*
* \param index The number of the item to return
* \return The specified item of the OFDataArray
* @param index The number of the item to return
* @return The specified item of the OFDataArray
*/
- (void*)itemAtIndex: (size_t)index OF_RETURNS_INNER_POINTER;
/**
* \brief Returns the first item of the OFDataArray.
/*!
* @brief Returns the first item of the OFDataArray.
*
* \return The first item of the OFDataArray or NULL
* @return The first item of the OFDataArray or NULL
*/
- (void*)firstItem OF_RETURNS_INNER_POINTER;
/**
* \brief Returns the last item of the OFDataArray.
/*!
* @brief Returns the last item of the OFDataArray.
*
* \return The last item of the OFDataArray or NULL
* @return The last item of the OFDataArray or NULL
*/
- (void*)lastItem OF_RETURNS_INNER_POINTER;
/**
* \brief Adds an item to the OFDataArray.
/*!
* @brief Adds an item to the OFDataArray.
*
* \param item A pointer to an arbitrary item
* @param item A pointer to an arbitrary item
*/
- (void)addItem: (const void*)item;
/**
* \brief Adds an item to the OFDataArray at the specified index.
/*!
* @brief Adds an item to the OFDataArray at the specified index.
*
* \param item A pointer to an arbitrary item
* \param index The index where the item should be added
* @param item A pointer to an arbitrary item
* @param index The index where the item should be added
*/
- (void)insertItem: (const void*)item
atIndex: (size_t)index;
/**
* \brief Adds items from a C array to the OFDataArray.
/*!
* @brief Adds items from a C array to the OFDataArray.
*
* \param count The number of items to add
* \param cArray A C array containing the items to add
* @param count The number of items to add
* @param cArray A C array containing the items to add
*/
- (void)addItemsFromCArray: (const void*)cArray
count: (size_t)count;
/**
* \brief Adds items from a C array to the OFDataArray at the specified index.
/*!
* @brief Adds items from a C array to the OFDataArray at the specified index.
*
* \param cArray A C array containing the items to add
* \param index The index where the items should be added
* \param count The number of items to add
* @param cArray A C array containing the items to add
* @param index The index where the items should be added
* @param count The number of items to add
*/
- (void)insertItemsFromCArray: (const void*)cArray
atIndex: (size_t)index
count: (size_t)count;
/**
* \brief Removes the item at the specified index.
/*!
* @brief Removes the item at the specified index.
*
* \param index The index of the item to remove
* @param index The index of the item to remove
*/
- (void)removeItemAtIndex: (size_t)index;
/**
* \brief Removes the specified amount of items at the specified index.
/*!
* @brief Removes the specified amount of items at the specified index.
*
* \param range The range of items to remove
* @param range The range of items to remove
*/
- (void)removeItemsInRange: (of_range_t)range;
/**
* \brief Removes the last item.
/*!
* @brief Removes the last item.
*/
- (void)removeLastItem;
/**
* \brief Removes all items.
/*!
* @brief Removes all items.
*/
- (void)removeAllItems;
/**
* \brief Returns the string representation of the data array.
/*!
* @brief Returns the string representation of the data array.
*
* \return The string representation of the data array.
* @return The string representation of the data array.
*/
- (OFString*)stringRepresentation;
/**
* \brief Returns a string containing the data in Base64 encoding.
/*!
* @brief Returns a string containing the data in Base64 encoding.
*
* \return A string containing the data in Base64 encoding
* @return A string containing the data in Base64 encoding
*/
- (OFString*)stringByBase64Encoding;
/**
* \brief Writes the OFDataArray into the specified file.
/*!
* @brief Writes the OFDataArray into the specified file.
*
* \param path The path of the file to write to
* @param path The path of the file to write to
*/
- (void)writeToFile: (OFString*)path;
@end
/**
* \brief A class for storing arbitrary big data in an array.
/*!
* @brief A class for storing arbitrary big data in an array.
*
* The OFBigDataArray class is a class for storing arbitrary data in an array
* and is designed to store large hunks of data. Therefore, it allocates
* memory in pages rather than a chunk of memory for each item.
*/
@interface OFBigDataArray: OFDataArray
{
size_t size;
}
@end
#import "OFDataArray+Hashing.h"
|
Modified src/OFDate.h
from [09915d0305]
to [267ceb61ed].
︙ | | |
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
|
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
|
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
-
+
+
+
-
-
+
+
-
+
-
-
-
+
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
-
+
+
+
-
-
+
+
-
+
-
-
-
+
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
|
#import "OFObject.h"
#import "OFSerialization.h"
@class OFString;
@class OFConstantString;
/**
* \brief A class for storing, accessing and comparing dates.
/*!
* @brief A class for storing, accessing and comparing dates.
*/
@interface OFDate: OFObject <OFCopying, OFComparing, OFSerialization>
{
double seconds;
}
/**
* \brief Creates a new OFDate with the current date and time.
/*!
* @brief Creates a new OFDate with the current date and time.
*
* \return A new, autoreleased OFDate with the current date and time
* @return A new, autoreleased OFDate with the current date and time
*/
+ (instancetype)date;
/**
* \brief Creates a new OFDate with the specified date and time since
/*!
* @brief Creates a new OFDate with the specified date and time since
* 1970-01-01T00:00:00Z.
*
* \param seconds The seconds since 1970-01-01T00:00:00Z
* \return A new, autoreleased OFDate with the specified date and time
* @param seconds The seconds since 1970-01-01T00:00:00Z
* @return A new, autoreleased OFDate with the specified date and time
*/
+ (instancetype)dateWithTimeIntervalSince1970: (double)seconds;
/**
* \brief Creates a new OFDate with the specified date and time since now.
/*!
* @brief Creates a new OFDate with the specified date and time since now.
*
* \param seconds The seconds since now
* \return A new, autoreleased OFDate with the specified date and time
* @param seconds The seconds since now
* @return A new, autoreleased OFDate with the specified date and time
*/
+ (instancetype)dateWithTimeIntervalSinceNow: (double)seconds;
/**
* \brief Creates a new OFDate with the specified string in the specified
/*!
* @brief Creates a new OFDate with the specified string in the specified
* format.
*
* The time zone used is UTC. See +[dateWithLocalDateString:format:] if you
* want local time.
*
* See the manpage for strftime for information on the format.
*
* \warning The format is currently limited to the following format specifiers:
* @warning The format is currently limited to the following format specifiers:
* %%d, %%e, %%H, %%m, %%M, %%S, %%y, %%Y, %%, %%n and %%t.
*
* \param string The string describing the date
* \param format The format of the string describing the date
* \return A new, autoreleased OFDate with the specified date and time
* @param string The string describing the date
* @param format The format of the string describing the date
* @return A new, autoreleased OFDate with the specified date and time
*/
+ (instancetype)dateWithDateString: (OFString*)string
format: (OFString*)format;
/**
* \brief Creates a new OFDate with the specified string in the specified
/*!
* @brief Creates a new OFDate with the specified string in the specified
* format.
*
* See the manpage for strftime for information on the format.
*
* \warning The format is currently limited to the following format specifiers:
* @warning The format is currently limited to the following format specifiers:
* %%d, %%e, %%H, %%m, %%M, %%S, %%y, %%Y, %%, %%n and %%t.
*
* \param string The string describing the date
* \param format The format of the string describing the date
* \return A new, autoreleased OFDate with the specified date and time
* @param string The string describing the date
* @param format The format of the string describing the date
* @return A new, autoreleased OFDate with the specified date and time
*/
+ (instancetype)dateWithLocalDateString: (OFString*)string
format: (OFString*)format;
/**
* \brief Returns a date in the distant future.
/*!
* @brief Returns a date in the distant future.
*
* The date is system-dependant.
*
* \return A date in the distant future
* @return A date in the distant future
*/
+ (instancetype)distantFuture;
/**
* \brief Returns a date in the distant past.
/*!
* @brief Returns a date in the distant past.
*
* The date is system-dependant.
*
* \return A date in the distant past
* @return A date in the distant past
*/
+ (instancetype)distantPast;
/**
* \brief Initializes an already allocated OFDate with the specified date and
/*!
* @brief Initializes an already allocated OFDate with the specified date and
* time since 1970-01-01T00:00:00Z.
*
* \param seconds The seconds since 1970-01-01T00:00:00Z
* \return An initialized OFDate with the specified date and time
* @param seconds The seconds since 1970-01-01T00:00:00Z
* @return An initialized OFDate with the specified date and time
*/
- initWithTimeIntervalSince1970: (double)seconds;
/**
* \brief Initializes an already allocated OFDate with the specified date and
/*!
* @brief Initializes an already allocated OFDate with the specified date and
* time since now.
*
* \param seconds The seconds since now
* \return An initialized OFDate with the specified date and time
* @param seconds The seconds since now
* @return An initialized OFDate with the specified date and time
*/
- initWithTimeIntervalSinceNow: (double)seconds;
/**
* \brief Initializes an already allocated OFDate with the specified string in
/*!
* @brief Initializes an already allocated OFDate with the specified string in
* the specified format.
*
* The time zone used is UTC. If a time zone is specified anyway, an
* OFInvalidFormatException is thrown. See -[initWithLocalDateString:format:]
* if you want to specify a time zone.
*
* See the manpage for strftime for information on the format.
*
* \warning The format is currently limited to the following format specifiers:
* @warning The format is currently limited to the following format specifiers:
* %%d, %%e, %%H, %%m, %%M, %%S, %%y, %%Y, %%, %%n and %%t.
*
* \param string The string describing the date
* \param format The format of the string describing the date
* \return An initialized OFDate with the specified date and time
* @param string The string describing the date
* @param format The format of the string describing the date
* @return An initialized OFDate with the specified date and time
*/
- initWithDateString: (OFString*)string
format: (OFString*)format;
/**
* \brief Initializes an already allocated OFDate with the specified string in
/*!
* @brief Initializes an already allocated OFDate with the specified string in
* the specified format.
*
* If no time zone is specified, local time is assumed.
*
* See the manpage for strftime for information on the format.
*
* \warning The format is currently limited to the following format specifiers:
* @warning The format is currently limited to the following format specifiers:
* %%d, %%e, %%H, %%m, %%M, %%S, %%y, %%Y, %%, %%n and %%t.
*
* \param string The string describing the date
* \param format The format of the string describing the date
* \return An initialized OFDate with the specified date and time
* @param string The string describing the date
* @param format The format of the string describing the date
* @return An initialized OFDate with the specified date and time
*/
- initWithLocalDateString: (OFString*)string
format: (OFString*)format;
/**
* \brief Returns the microsecond of the date.
/*!
* @brief Returns the microsecond of the date.
*
* \return The microsecond of the date
* @return The microsecond of the date
*/
- (uint32_t)microsecond;
/**
* \brief Returns the second of the date.
/*!
* @brief Returns the second of the date.
*
* \return The second of the date
* @return The second of the date
*/
- (uint8_t)second;
/**
* \brief Returns the minute of the date.
/*!
* @brief Returns the minute of the date.
*
* \return The minute of the date
* @return The minute of the date
*/
- (uint8_t)minute;
/**
* \brief Returns the hour of the date.
/*!
* @brief Returns the hour of the date.
*
* \return The hour of the date
* @return The hour of the date
*/
- (uint8_t)hour;
/**
* \brief Returns the hour of the date in local time.
/*!
* @brief Returns the hour of the date in local time.
*
* \return The hour of the date in local time
* @return The hour of the date in local time
*/
- (uint8_t)localHour;
/**
* \brief Returns the day of the month.
/*!
* @brief Returns the day of the month.
*
* \return The day of the month of the date
* @return The day of the month of the date
*/
- (uint8_t)dayOfMonth;
/**
* \brief Returns the day of the month of the date in local time.
/*!
* @brief Returns the day of the month of the date in local time.
*
* \return The day of the month of the date in local time
* @return The day of the month of the date in local time
*/
- (uint8_t)localDayOfMonth;
/**
* \brief Returns the month of the year of the date.
/*!
* @brief Returns the month of the year of the date.
*
* \return The month of the year of the date
* @return The month of the year of the date
*/
- (uint8_t)monthOfYear;
/**
* \brief Returns the month of the year of the date in local time.
/*!
* @brief Returns the month of the year of the date in local time.
*
* \return The month of the year of the date in local time
* @return The month of the year of the date in local time
*/
- (uint8_t)localMonthOfYear;
/**
* \brief Returns the year of the date.
/*!
* @brief Returns the year of the date.
*
* \return The year of the date
* @return The year of the date
*/
- (uint16_t)year;
/**
* \brief Returns the year of the date in local time.
/*!
* @brief Returns the year of the date in local time.
*
* \return The year of the date in local time
* @return The year of the date in local time
*/
- (uint16_t)localYear;
/**
* \brief Returns the day of the week of the date.
/*!
* @brief Returns the day of the week of the date.
*
* \return The day of the week of the date
* @return The day of the week of the date
*/
- (uint8_t)dayOfWeek;
/**
* \brief Returns the day of the week of the date in local time.
/*!
* @brief Returns the day of the week of the date in local time.
*
* \return The day of the week of the date in local time
* @return The day of the week of the date in local time
*/
- (uint8_t)localDayOfWeek;
/**
* \brief Returns the day of the year of the date.
/*!
* @brief Returns the day of the year of the date.
*
* \return The day of the year of the date
* @return The day of the year of the date
*/
- (uint16_t)dayOfYear;
/**
* \brief Returns the day of the year of the date in local time.
/*!
* @brief Returns the day of the year of the date in local time.
*
* \return The day of the year of the date in local time
* @return The day of the year of the date in local time
*/
- (uint16_t)localDayOfYear;
/**
* \brief Creates a string of the date with the specified format.
/*!
* @brief Creates a string of the date with the specified format.
*
* See the manpage for strftime for information on the format.
*
* \param format The format for the date string
* \return A new, autoreleased OFString
* @param format The format for the date string
* @return A new, autoreleased OFString
*/
- (OFString*)dateStringWithFormat: (OFConstantString*)format;
/**
* \brief Creates a string of the local date with the specified format.
/*!
* @brief Creates a string of the local date with the specified format.
*
* See the manpage for strftime for information on the format.
*
* \param format The format for the date string
* \return A new, autoreleased OFString
* @param format The format for the date string
* @return A new, autoreleased OFString
*/
- (OFString*)localDateStringWithFormat: (OFConstantString*)format;
/**
* \brief Returns the earlier of the two dates.
/*!
* @brief Returns the earlier of the two dates.
*
* \param date Another date
* \return The earlier date of the two dates
* @param date Another date
* @return The earlier date of the two dates
*/
- (OFDate*)earlierDate: (OFDate*)otherDate;
/**
* \brief Returns the later of the two dates.
/*!
* @brief Returns the later of the two dates.
*
* \param date Another date
* \return The later date of the two dates
* @param date Another date
* @return The later date of the two dates
*/
- (OFDate*)laterDate: (OFDate*)otherDate;
/**
* \brief Returns the seconds since 1970-01-01T00:00:00Z.
/*!
* @brief Returns the seconds since 1970-01-01T00:00:00Z.
*
* \return The seconds since 1970-01-01T00:00:00Z
* @return The seconds since 1970-01-01T00:00:00Z
*/
- (double)timeIntervalSince1970;
/**
* \brief Returns the seconds the receiver is after the date.
/*!
* @brief Returns the seconds the receiver is after the date.
*
* \param date Date date to generate the difference with receiver
* \return The seconds the receiver is after the date.
* @param date Date date to generate the difference with receiver
* @return The seconds the receiver is after the date.
*/
- (double)timeIntervalSinceDate: (OFDate*)otherDate;
/**
* \brief Returns the seconds the receiver is in the future.
/*!
* @brief Returns the seconds the receiver is in the future.
*
* \return The seconds the receiver is in the future
* @return The seconds the receiver is in the future
*/
- (double)timeIntervalSinceNow;
/**
* \brief Creates a new date with the specified time interval added.
/*!
* @brief Creates a new date with the specified time interval added.
*
* \param seconds The seconds after the date
* \return A new, autoreleased OFDate
* @param seconds The seconds after the date
* @return A new, autoreleased OFDate
*/
- (OFDate*)dateByAddingTimeInterval: (double)seconds;
@end
|
Modified src/OFDictionary.h
from [180610d08f]
to [c64d7b9e16].
︙ | | |
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
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
|
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
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
|
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
|
#ifdef OF_HAVE_BLOCKS
typedef void (^of_dictionary_enumeration_block_t)(id key, id object,
BOOL *stop);
typedef BOOL (^of_dictionary_filter_block_t)(id key, id object);
typedef id (^of_dictionary_map_block_t)(id key, id object);
#endif
/**
* \brief An abstract class for storing objects in a dictionary.
/*!
* @brief An abstract class for storing objects in a dictionary.
*
* Keys are copied and thus must conform to the OFCopying protocol.
*
* Note: Fast enumeration on a dictionary enumerates through the keys of the
* dictionary.
*/
@interface OFDictionary: OFObject <OFCopying, OFMutableCopying, OFCollection,
OFSerialization, OFJSONRepresentation>
/**
* \brief Creates a new OFDictionary.
/*!
* @brief Creates a new OFDictionary.
*
* \return A new autoreleased OFDictionary
* @return A new autoreleased OFDictionary
*/
+ (instancetype)dictionary;
/**
* \brief Creates a new OFDictionary with the specified dictionary.
/*!
* @brief Creates a new OFDictionary with the specified dictionary.
*
* \param dictionary An OFDictionary
* \return A new autoreleased OFDictionary
* @param dictionary An OFDictionary
* @return A new autoreleased OFDictionary
*/
+ (instancetype)dictionaryWithDictionary: (OFDictionary*)dictionary;
/**
* \brief Creates a new OFDictionary with the specified key and object.
/*!
* @brief Creates a new OFDictionary with the specified key and object.
*
* \param key The key
* \param object The object
* \return A new autoreleased OFDictionary
* @param key The key
* @param object The object
* @return A new autoreleased OFDictionary
*/
+ (instancetype)dictionaryWithObject: (id)object
forKey: (id)key;
/**
* \brief Creates a new OFDictionary with the specified keys and objects.
/*!
* @brief Creates a new OFDictionary with the specified keys and objects.
*
* \param keys An array of keys
* \param objects An array of objects
* \return A new autoreleased OFDictionary
* @param keys An array of keys
* @param objects An array of objects
* @return A new autoreleased OFDictionary
*/
+ (instancetype)dictionaryWithObjects: (OFArray*)objects
forKeys: (OFArray*)keys;
/**
* \brief Creates a new OFDictionary with the specified keys and objects.
/*!
* @brief Creates a new OFDictionary with the specified keys and objects.
*
* \param keys An array of keys
* \param objects An array of objects
* \param count The number of objects in the arrays
* \return A new autoreleased OFDictionary
* @param keys An array of keys
* @param objects An array of objects
* @param count The number of objects in the arrays
* @return A new autoreleased OFDictionary
*/
+ (instancetype)dictionaryWithObjects: (id const*)objects
forKeys: (id const*)keys
count: (size_t)count;
/**
* \brief Creates a new OFDictionary with the specified keys objects.
/*!
* @brief Creates a new OFDictionary with the specified keys objects.
*
* \param firstKey The first key
* \return A new autoreleased OFDictionary
* @param firstKey The first key
* @return A new autoreleased OFDictionary
*/
+ (instancetype)dictionaryWithKeysAndObjects: (id)firstKey, ... OF_SENTINEL;
/**
* \brief Initializes an already allocated OFDictionary.
/*!
* @brief Initializes an already allocated OFDictionary.
*
* \return An initialized OFDictionary
* @return An initialized OFDictionary
*/
- init;
/**
* \brief Initializes an already allocated OFDictionary with the specified
/*!
* @brief Initializes an already allocated OFDictionary with the specified
* OFDictionary.
*
* \param dictionary An OFDictionary
* \return An initialized OFDictionary
* @param dictionary An OFDictionary
* @return An initialized OFDictionary
*/
- initWithDictionary: (OFDictionary*)dictionary;
/**
* \brief Initializes an already allocated OFDictionary with the specified key
/*!
* @brief Initializes an already allocated OFDictionary with the specified key
* and object.
*
* \param key The key
* \param object The object
* \return A new initialized OFDictionary
* @param key The key
* @param object The object
* @return A new initialized OFDictionary
*/
- initWithObject: (id)object
forKey: (id)key;
/**
* \brief Initializes an already allocated OFDictionary with the specified keys
/*!
* @brief Initializes an already allocated OFDictionary with the specified keys
* and objects.
*
* \param keys An array of keys
* \param objects An array of objects
* \return A new initialized OFDictionary
* @param keys An array of keys
* @param objects An array of objects
* @return A new initialized OFDictionary
*/
- initWithObjects: (OFArray*)objects
forKeys: (OFArray*)keys;
/**
* \brief Initializes an already allocated OFDictionary with the specified keys
/*!
* @brief Initializes an already allocated OFDictionary with the specified keys
* and objects.
*
* \param keys An array of keys
* \param objects An array of objects
* \param count The number of objects in the arrays
* \return A new initialized OFDictionary
* @param keys An array of keys
* @param objects An array of objects
* @param count The number of objects in the arrays
* @return A new initialized OFDictionary
*/
- initWithObjects: (id const*)objects
forKeys: (id const*)keys
count: (size_t)count;
/**
* \brief Initializes an already allocated OFDictionary with the specified keys
/*!
* @brief Initializes an already allocated OFDictionary with the specified keys
* and objects.
*
* \param firstKey The first key
* \return A new initialized OFDictionary
* @param firstKey The first key
* @return A new initialized OFDictionary
*/
- initWithKeysAndObjects: (id)firstKey, ... OF_SENTINEL;
/**
* \brief Initializes an already allocated OFDictionary with the specified key
/*!
* @brief Initializes an already allocated OFDictionary with the specified key
* and va_list.
*
* \param firstKey The first key
* \param arguments A va_list of the other arguments
* \return A new initialized OFDictionary
* @param firstKey The first key
* @param arguments A va_list of the other arguments
* @return A new initialized OFDictionary
*/
- initWithKey: (id)firstKey
arguments: (va_list)arguments;
/**
* \brief Returns the object for the given key or nil if the key was not found.
/*!
* @brief Returns the object for the given key or nil if the key was not found.
*
* The returned object is <i>not</i> retained and autoreleased for performance
* reasons!
*
* \param key The key whose object should be returned
* \return The object for the given key or nil if the key was not found
* @param key The key whose object should be returned
* @return The object for the given key or nil if the key was not found
*/
- (id)objectForKey: (id)key;
- (id)objectForKeyedSubscript: (id)key;
/**
* \brief Checks whether the dictionary contains an object with the specified
/*!
* @brief Checks whether the dictionary contains an object with the specified
* address.
*
* \param object The object which is checked for being in the dictionary
* \return A boolean whether the dictionary contains an object with the
* @param object The object which is checked for being in the dictionary
* @return A boolean whether the dictionary contains an object with the
* specified address.
*/
- (BOOL)containsObjectIdenticalTo: (id)object;
/**
* \brief Returns an array of all keys.
/*!
* @brief Returns an array of all keys.
*
* \return An array of all keys
* @return An array of all keys
*/
- (OFArray*)allKeys;
/**
* \brief Returns an array of all objects.
/*!
* @brief Returns an array of all objects.
*
* \return An array of all objects
* @return An array of all objects
*/
- (OFArray*)allObjects;
/**
* \brief Returns an OFEnumerator to enumerate through the dictionary's keys.
/*!
* @brief Returns an OFEnumerator to enumerate through the dictionary's keys.
*
* \return An OFEnumerator to enumerate through the dictionary's keys
* @return An OFEnumerator to enumerate through the dictionary's keys
*/
- (OFEnumerator*)keyEnumerator;
#ifdef OF_HAVE_BLOCKS
/**
* \brief Executes a block for each key / object pair.
/*!
* @brief Executes a block for each key / object pair.
*
* \param block The block to execute for each key / object pair.
* @param block The block to execute for each key / object pair.
*/
- (void)enumerateKeysAndObjectsUsingBlock:
(of_dictionary_enumeration_block_t)block;
/**
* \brief Creates a new dictionary, mapping each object using the specified
/*!
* @brief Creates a new dictionary, mapping each object using the specified
* block.
*
* \param block A block which maps an object for each object
* \return A new, autorelease OFDictionary
* @param block A block which maps an object for each object
* @return A new, autorelease OFDictionary
*/
- (OFDictionary*)mappedDictionaryUsingBlock: (of_dictionary_map_block_t)block;
/**
* \brief Creates a new dictionary, only containing the objects for which the
/*!
* @brief Creates a new dictionary, only containing the objects for which the
* block returns YES.
*
* \param block A block which determines if the object should be in the new
* @param block A block which determines if the object should be in the new
* dictionary
* \return A new, autoreleased OFDictionary
* @return A new, autoreleased OFDictionary
*/
- (OFDictionary*)filteredDictionaryUsingBlock:
(of_dictionary_filter_block_t)block;
#endif
@end
#import "OFMutableDictionary.h"
#ifndef NSINTEGER_DEFINED
/* Required for dictionary literals to work */
@compatibility_alias NSDictionary OFDictionary;
#endif
|
Modified src/OFEnumerator.h
from [24f3965058]
to [8203f0ccdd].
︙ | | |
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
91
92
93
94
95
|
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
91
92
93
94
95
|
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
|
* file.
*/
#import "OFObject.h"
@class OFEnumerator;
/**
* \brief A protocol for getting an enumerator for the object.
/*!
* @brief A protocol for getting an enumerator for the object.
*/
@protocol OFEnumerating
/**
* \brief Returns an OFEnumerator to enumerate through all objects of the
/*!
* @brief Returns an OFEnumerator to enumerate through all objects of the
* collection.
*
* \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
/**
* \brief A class which provides methods to enumerate through collections.
/*!
* @brief A class which provides methods to enumerate through collections.
*/
@interface OFEnumerator: OFObject
/**
* \brief Returns the next object.
/*!
* @brief Returns the next object.
*
* \return The next object
* @return The next object
*/
- (id)nextObject;
/**
* \brief Resets the enumerator, so the next call to nextObject returns the
/*!
* @brief Resets the enumerator, so the next call to nextObject returns the
* first object again.
*/
- (void)reset;
@end
/*
* This needs to be exactly like this because it's hardcoded in the compiler.
*
* 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
/**
* \brief State information for fast enumerations.
/*!
* @brief State information for fast enumerations.
*/
typedef struct of_fast_enumeration_state_t {
/// 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
/**
* \brief A protocol for fast enumeration.
/*!
* @brief A protocol for fast enumeration.
*
* The OFFastEnumeration protocol needs to be implemented by all classes
* supporting fast enumeration.
*/
@protocol OFFastEnumeration
/**
* \brief A method which is called by the code produced by the compiler when
/*!
* @brief A method which is called by the code produced by the compiler when
* doing a fast enumeration.
*
* \param state Context information for the enumeration
* \param objects A pointer to an array where to put the objects
* \param count The number of objects that can be stored at objects
* \return The number of objects returned in objects or 0 when the enumeration
* @param state Context information for the enumeration
* @param objects A pointer to an array where to put the objects
* @param count The number of objects that can be stored at objects
* @return The number of objects returned in objects or 0 when the enumeration
* finished.
*/
- (int)countByEnumeratingWithState: (of_fast_enumeration_state_t*)state
objects: (__unsafe_unretained id*)objects
count: (int)count;
@end
|
Modified src/OFFile.h
from [9ede7ee4ac]
to [296a9224ed].
︙ | | |
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
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
|
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
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
|
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
+
|
extern "C" {
#endif
extern void of_log(OFConstantString*, ...);
#ifdef __cplusplus
}
#endif
/**
* \brief A class which provides functions to read, write and manipulate files.
/*!
* @brief A class which provides functions to read, write and manipulate files.
*/
@interface OFFile: OFSeekableStream
{
int fd;
BOOL closable;
BOOL atEndOfStream;
}
/**
* \brief Creates a new OFFile with the specified path and mode.
/*!
* @brief Creates a new OFFile with the specified path and mode.
*
* \param path The path to the file to open as a string
* \param mode The mode in which the file should be opened as a string
* \return A new autoreleased OFFile
* @param path The path to the file to open as a string
* @param mode The mode in which the file should be opened as a string
* @return A new autoreleased OFFile
*/
+ (instancetype)fileWithPath: (OFString*)path
mode: (OFString*)mode;
/**
* \brief Creates a new OFFile with the specified file descriptor.
/*!
* @brief Creates a new OFFile with the specified file descriptor.
*
* \param fileDescriptor A file descriptor, returned from for example open().
* @param fileDescriptor A file descriptor, returned from for example open().
* It is not closed when the OFFile object is deallocated!
* \return A new autoreleased OFFile
* @return A new autoreleased OFFile
*/
+ (instancetype)fileWithFileDescriptor: (int)fileDescriptor;
/**
* \brief Returns the path fo the current working directory.
/*!
* @brief Returns the path fo the current working directory.
*
* \return The path of the current working directory
* @return The path of the current working directory
*/
+ (OFString*)currentDirectoryPath;
/**
* \brief Checks whether a file exists at the specified path.
/*!
* @brief Checks whether a file exists at the specified path.
*
* \param path The path to check
* \return A boolean whether there is a file at the specified path
* @param path The path to check
* @return A boolean whether there is a file at the specified path
*/
+ (BOOL)fileExistsAtPath: (OFString*)path;
/**
* \brief Checks whether a directory exists at the specified path.
/*!
* @brief Checks whether a directory exists at the specified path.
*
* \param path The path to check
* \return A boolean whether there is a directory at the specified path
* @param path The path to check
* @return A boolean whether there is a directory at the specified path
*/
+ (BOOL)directoryExistsAtPath: (OFString*)path;
/**
* \brief Creates a directory at the specified path.
/*!
* @brief Creates a directory at the specified path.
*
* \param path The path of the directory
* @param path The path of the directory
*/
+ (void)createDirectoryAtPath: (OFString*)path;
/**
* \brief Creates a directory at the specified path.
/*!
* @brief Creates a directory at the specified path.
*
* \param path The path of the directory
* \param createParents Whether to create the parents of the directory
* @param path The path of the directory
* @param createParents Whether to create the parents of the directory
*/
+ (void)createDirectoryAtPath: (OFString*)path
createParents: (BOOL)createParents;
/**
* \brief Returns an array with the files in the specified directory.
/*!
* @brief Returns an array with the files in the specified directory.
*
* \param path The path of the directory
* \return An array of OFStrings with the files at the specified path
* @param path The path of the directory
* @return An array of OFStrings with the files at the specified path
*/
+ (OFArray*)filesInDirectoryAtPath: (OFString*)path;
/**
* \brief Changes the current working directory.
/*!
* @brief Changes the current working directory.
*
* \param path The new directory to change to
* @param path The new directory to change to
*/
+ (void)changeToDirectoryAtPath: (OFString*)path;
/**
* \brief Returns the size of the specified file.
/*!
* @brief Returns the size of the specified file.
*
* \return The size of the specified file
* @return The size of the specified file
*/
+ (off_t)sizeOfFileAtPath: (OFString*)path;
/**
* \brief Returns the date of the last modification of the file.
/*!
* @brief Returns the date of the last modification of the file.
*
* \return The date of the last modification of the file
* @return The date of the last modification of the file
*/
+ (OFDate*)modificationDateOfFileAtPath: (OFString*)path;
#ifndef _PSP
/**
* \brief Changes the mode of a file.
/*!
* @brief Changes the mode of a file.
*
* Only changes read-only flag on Windows.
*
* \param path The path to the file of which the mode should be changed as a
* @param path The path to the file of which the mode should be changed as a
* string
* \param mode The new mode for the file
* @param mode The new mode for the file
*/
+ (void)changeModeOfFileAtPath: (OFString*)path
mode: (mode_t)mode;
#endif
#if !defined(_WIN32) && !defined(_PSP)
/**
* \brief Changes the owner of a file.
/*!
* @brief Changes the owner of a file.
*
* Not available on Windows.
*
* \param path The path to the file of which the owner should be changed as a
* @param path The path to the file of which the owner should be changed as a
* string
* \param owner The new owner for the file
* \param group The new group for the file
* @param owner The new owner for the file
* @param group The new group for the file
*/
+ (void)changeOwnerOfFileAtPath: (OFString*)path
owner: (OFString*)owner
group: (OFString*)group;
#endif
/**
* \brief Copies a file.
/*!
* @brief Copies a file.
*
* \param source The file to copy
* \param destination The destination path
* @param source The file to copy
* @param destination The destination path
*/
+ (void)copyFileAtPath: (OFString*)source
toPath: (OFString*)destination;
/**
* \brief Renames a file.
/*!
* @brief Renames a file.
*
* \param source The file to rename
* \param destination The new name
* @param source The file to rename
* @param destination The new name
*/
+ (void)renameFileAtPath: (OFString*)source
toPath: (OFString*)destination;
/**
* \brief Deletes a file.
/*!
* @brief Deletes a file.
*
* \param path The path to the file of which should be deleted as a string
* @param path The path to the file of which should be deleted as a string
*/
+ (void)deleteFileAtPath: (OFString*)path;
/**
* \brief Deletes an empty directory.
/*!
* @brief Deletes an empty directory.
*
* \param path The path to the directory which should be deleted as a string
* @param path The path to the directory which should be deleted as a string
*/
+ (void)deleteDirectoryAtPath: (OFString*)path;
#ifndef _WIN32
/**
* \brief Creates a hard link for a file.
/*!
* @brief Creates a hard link for a file.
*
* Not available on Windows.
*
* \param source The path to the file of which should be linked as a string
* \param destination The path to where the file should be linked as a string
* @param source The path to the file of which should be linked as a string
* @param destination The path to where the file should be linked as a string
*/
+ (void)linkFileAtPath: (OFString*)source
toPath: (OFString*)destination;
#endif
#if !defined(_WIN32) && !defined(_PSP)
/**
* \brief Creates a symbolink link for a file.
/*!
* @brief Creates a symbolink link for a file.
*
* Not available on Windows.
*
* \param source The path to the file of which should be symlinked as a string
* \param destination The path to where the file should be symlinked as a string
* @param source The path to the file of which should be symlinked as a string
* @param destination The path to where the file should be symlinked as a string
*/
+ (void)symlinkFileAtPath: (OFString*)source
toPath: (OFString*)destination;
#endif
/**
* \brief Initializes an already allocated OFFile.
/*!
* @brief Initializes an already allocated OFFile.
*
* \param path The path to the file to open as a string
* \param mode The mode in which the file should be opened as a string
* \return An initialized OFFile
* @param path The path to the file to open as a string
* @param mode The mode in which the file should be opened as a string
* @return An initialized OFFile
*/
- initWithPath: (OFString*)path
mode: (OFString*)mode;
/**
* \brief Initializes an already allocated OFFile.
/*!
* @brief Initializes an already allocated OFFile.
*
* \param fileDescriptor A file descriptor, returned from for example open().
* @param fileDescriptor A file descriptor, returned from for example open().
* It is not closed when the OFFile object is deallocated!
*/
- initWithFileDescriptor: (int)fileDescriptor;
@end
#ifdef __cplusplus
extern "C" {
|
︙ | | |
Modified src/OFHTTPRequest.h
from [afa9ff2eb3]
to [26ed4a79d0].
︙ | | |
26
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
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
26
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
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
|
typedef enum of_http_request_type_t {
OF_HTTP_REQUEST_TYPE_GET,
OF_HTTP_REQUEST_TYPE_POST,
OF_HTTP_REQUEST_TYPE_HEAD
} of_http_request_type_t;
/**
* \brief A delegate for OFHTTPRequests.
/*!
* @brief A delegate for OFHTTPRequests.
*/
#ifndef OF_HTTP_REQUEST_M
@protocol OFHTTPRequestDelegate <OFObject>
#else
@protocol OFHTTPRequestDelegate
#endif
#ifdef OF_HAVE_OPTIONAL_PROTOCOLS
@optional
#endif
/**
* \brief A callback which is called when an OFHTTPRequest creates a socket.
/*!
* @brief A callback which is called when an OFHTTPRequest creates a socket.
*
* This is useful if the connection is using HTTPS and the server requires a
* client certificate. This callback can then be used to tell the TLS socket
* about the certificate. Another use case is to tell the socket about a SOCKS5
* proxy it should use for this connection.
*
* \param request The OFHTTPRequest that created a socket
* \param socket The socket created by the OFHTTPRequest
* @param request The OFHTTPRequest that created a socket
* @param socket The socket created by the OFHTTPRequest
*/
- (void)request: (OFHTTPRequest*)request
didCreateSocket: (OFTCPSocket*)socket;
/**
* \brief A callback which is called when an OFHTTPRequest received headers.
/*!
* @brief A callback which is called when an OFHTTPRequest received headers.
*
* \param request The OFHTTPRequest which received the headers
* \param headers The headers received
* \param statusCode The status code received
* @param request The OFHTTPRequest which received the headers
* @param headers The headers received
* @param statusCode The status code received
*/
- (void)request: (OFHTTPRequest*)request
didReceiveHeaders: (OFDictionary*)headers
withStatusCode: (int)statusCode;
/**
* \brief A callback which is called when an OFHTTPRequest received data.
/*!
* @brief A callback which is called when an OFHTTPRequest received data.
*
* This is useful for example if you want to update a status display.
*
* \param request The OFHTTPRequest which received data
* \param data The data the OFHTTPRequest received
* \param length The length of the data received, in bytes
* @param request The OFHTTPRequest which received data
* @param data The data the OFHTTPRequest received
* @param length The length of the data received, in bytes
*/
- (void)request: (OFHTTPRequest*)request
didReceiveData: (const char*)data
withLength: (size_t)length;
/**
* \brief A callback which is called when an OFHTTPRequest will follow a
/*!
* @brief A callback which is called when an OFHTTPRequest will follow a
* redirect.
*
* If you want to get the headers and data for each redirect, set the number of
* redirects to 0 and perform a new OFHTTPRequest for each redirect. However,
* this callback will not be called then and you have to look at the status code
* to detect a redirect.
*
* This callback will only be called if the OFHTTPRequest will follow a
* redirect. If the maximum number of redirects has been reached already, this
* callback will not be called.
*
* \param request The OFHTTPRequest which will follow a redirect
* \param URL The URL to which it will follow a redirect
* \return A boolean whether the OFHTTPRequest should follow the redirect
* @param request The OFHTTPRequest which will follow a redirect
* @param URL The URL to which it will follow a redirect
* @return A boolean whether the OFHTTPRequest should follow the redirect
*/
- (BOOL)request: (OFHTTPRequest*)request
willFollowRedirectTo: (OFURL*)URL;
@end
/**
* \brief A class for storing and performing HTTP requests.
/*!
* @brief A class for storing and performing HTTP requests.
*/
@interface OFHTTPRequest: OFObject
{
OFURL *URL;
of_http_request_type_t requestType;
OFString *queryString;
OFDictionary *headers;
|
︙ | | |
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
|
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
|
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
|
@property (copy) OFString *queryString;
@property (copy) OFDictionary *headers;
@property BOOL redirectsFromHTTPSToHTTPAllowed;
@property (assign) id <OFHTTPRequestDelegate> delegate;
@property BOOL storesData;
#endif
/**
* \brief Creates a new OFHTTPRequest.
/*!
* @brief Creates a new OFHTTPRequest.
*
* \return A new, autoreleased OFHTTPRequest
* @return A new, autoreleased OFHTTPRequest
*/
+ (instancetype)request;
/**
* \brief Creates a new OFHTTPRequest with the specified URL.
/*!
* @brief Creates a new OFHTTPRequest with the specified URL.
*
* \param URL The URL for the request
* \return A new, autoreleased OFHTTPRequest
* @param URL The URL for the request
* @return A new, autoreleased OFHTTPRequest
*/
+ (instancetype)requestWithURL: (OFURL*)URL;
/**
* \brief Initializes an already allocated OFHTTPRequest with the specified URL.
/*!
* @brief Initializes an already allocated OFHTTPRequest with the specified URL.
*
* \param URL The URL for the request
* \return An initialized OFHTTPRequest
* @param URL The URL for the request
* @return An initialized OFHTTPRequest
*/
- initWithURL: (OFURL*)URL;
/**
* \brief Sets the URL of the HTTP request.
/*!
* @brief Sets the URL of the HTTP request.
*
* \param URL The URL of the HTTP request
* @param URL The URL of the HTTP request
*/
- (void)setURL: (OFURL*)URL;
/**
* \brief Returns the URL of the HTTP request.
/*!
* @brief Returns the URL of the HTTP request.
*
* \return The URL of the HTTP request
* @return The URL of the HTTP request
*/
- (OFURL*)URL;
/**
* \brief Sets the request type of the HTTP request.
/*!
* @brief Sets the request type of the HTTP request.
*
* \param requestType The request type of the HTTP request
* @param requestType The request type of the HTTP request
*/
- (void)setRequestType: (of_http_request_type_t)requestType;
/**
* \brief Returns the request type of the HTTP request.
/*!
* @brief Returns the request type of the HTTP request.
*
* \return The request type of the HTTP request
* @return The request type of the HTTP request
*/
- (of_http_request_type_t)requestType;
/**
* \brief Sets the query string of the HTTP request.
/*!
* @brief Sets the query string of the HTTP request.
*
* \param queryString The query string of the HTTP request
* @param queryString The query string of the HTTP request
*/
- (void)setQueryString: (OFString*)queryString;
/**
* \brief Returns the query string of the HTTP request.
/*!
* @brief Returns the query string of the HTTP request.
*
* \return The query string of the HTTP request
* @return The query string of the HTTP request
*/
- (OFString*)queryString;
/**
* \brief Sets a dictionary with headers for the HTTP request.
/*!
* @brief Sets a dictionary with headers for the HTTP request.
*
* \param headers A dictionary with headers for the HTTP request
* @param headers A dictionary with headers for the HTTP request
*/
- (void)setHeaders: (OFDictionary*)headers;
/**
* \brief Retrusn a dictionary with headers for the HTTP request.
/*!
* @brief Retrusn a dictionary with headers for the HTTP request.
*
* \return A dictionary with headers for the HTTP request.
* @return A dictionary with headers for the HTTP request.
*/
- (OFDictionary*)headers;
/**
* \brief Sets whether redirects from HTTPS to HTTP are allowed.
/*!
* @brief Sets whether redirects from HTTPS to HTTP are allowed.
*
* \param allowed Whether redirects from HTTPS to HTTP are allowed
* @param allowed Whether redirects from HTTPS to HTTP are allowed
*/
- (void)setRedirectsFromHTTPSToHTTPAllowed: (BOOL)allowed;
/**
* \brief Returns whether redirects from HTTPS to HTTP will be allowed
/*!
* @brief Returns whether redirects from HTTPS to HTTP will be allowed
*
* \return Whether redirects from HTTPS to HTTP will be allowed
* @return Whether redirects from HTTPS to HTTP will be allowed
*/
- (BOOL)redirectsFromHTTPSToHTTPAllowed;
/**
* \brief Sets the delegate of the HTTP request.
/*!
* @brief Sets the delegate of the HTTP request.
*
* \param delegate The delegate of the HTTP request
* @param delegate The delegate of the HTTP request
*/
- (void)setDelegate: (id <OFHTTPRequestDelegate>)delegate;
/**
* \brief Returns the delegate of the HTTP reqeust.
/*!
* @brief Returns the delegate of the HTTP reqeust.
*
* \return The delegate of the HTTP request
* @return The delegate of the HTTP request
*/
- (id <OFHTTPRequestDelegate>)delegate;
/**
* \brief Sets whether an OFDataArray with the data should be created.
/*!
* @brief Sets whether an OFDataArray with the data should be created.
*
* Setting this to NO is only useful if you are using the delegate to handle the
* data.
*
* \param storesData Whether to store the data in an OFDataArray
* @param storesData Whether to store the data in an OFDataArray
*/
- (void)setStoresData: (BOOL)storesData;
/**
* \brief Returns whether an OFDataArray with the date should be created.
/*!
* @brief Returns whether an OFDataArray with the date should be created.
*
* \return Whether an OFDataArray with the data should be created
* @return Whether an OFDataArray with the data should be created
*/
- (BOOL)storesData;
/**
* \brief Performs the HTTP request and returns an OFHTTPRequestResult.
/*!
* @brief Performs the HTTP request and returns an OFHTTPRequestResult.
*
* \return An OFHTTPRequestResult with the result of the HTTP request
* @return An OFHTTPRequestResult with the result of the HTTP request
*/
- (OFHTTPRequestResult*)perform;
/**
* \brief Performs the HTTP request and returns an OFHTTPRequestResult.
/*!
* @brief Performs the HTTP request and returns an OFHTTPRequestResult.
*
* \param redirects The maximum number of redirects after which no further
* @param redirects The maximum number of redirects after which no further
* attempt is done to follow the redirect, but instead the
* redirect is returned as an OFHTTPRequest
* \return An OFHTTPRequestResult with the result of the HTTP request
* @return An OFHTTPRequestResult with the result of the HTTP request
*/
- (OFHTTPRequestResult*)performWithRedirects: (size_t)redirects;
@end
/**
* \brief A class for storing the result of an HTTP request.
/*!
* @brief A class for storing the result of an HTTP request.
*/
@interface OFHTTPRequestResult: OFObject
{
short statusCode;
OFDataArray *data;
OFDictionary *headers;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly) short statusCode;
@property (readonly, copy) OFDictionary *headers;
@property (readonly, retain) OFDataArray *data;
#endif
- initWithStatusCode: (short)status
headers: (OFDictionary*)headers
data: (OFDataArray*)data;
/**
* \brief Returns the state code of the result of the HTTP request.
/*!
* @brief Returns the state code of the result of the HTTP request.
*
* \return The status code of the result of the HTTP request
* @return The status code of the result of the HTTP request
*/
- (short)statusCode;
/**
* \brief Returns the headers of the result of the HTTP request.
/*!
* @brief Returns the headers of the result of the HTTP request.
*
* \return The headers of the result of the HTTP request
* @return The headers of the result of the HTTP request
*/
- (OFDictionary*)headers;
/**
* \brief Returns the data received for the HTTP request.
/*!
* @brief Returns the data received for the HTTP request.
*
* Returns nil if storesData was set to NO.
*
* \return The data received for the HTTP request
* @return The data received for the HTTP request
*/
- (OFDataArray*)data;
@end
@interface OFObject (OFHTTPRequestDelegate) <OFHTTPRequestDelegate>
@end
extern Class of_http_request_tls_socket_class;
|
Modified src/OFHash.h
from [51a74f2d37]
to [694ee414f3].
︙ | | |
12
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
12
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFObject.h"
/**
* \brief A base class for classes providing hash functions.
/*!
* @brief A base class for classes providing hash functions.
*/
@interface OFHash: OFObject
{
BOOL calculated;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, getter=isCalculated) BOOL calculated;
#endif
/**
* \brief Creates a new hash.
/*!
* @brief Creates a new hash.
*
* \return A new autoreleased OFHash
* @return A new autoreleased OFHash
*/
+ (instancetype)hash;
/**
* \brief Returns the digest size of the hash, in bytes.
/*!
* @brief Returns the digest size of the hash, in bytes.
*
* \return The digest size of the hash, in bytes
* @return The digest size of the hash, in bytes
*/
+ (size_t)digestSize;
/**
* \brief Returns the block size of the hash, in bytes.
/*!
* @brief Returns the block size of the hash, in bytes.
*
* \return The block size of the hash, in bytes
* @return The block size of the hash, in bytes
*/
+ (size_t)blockSize;
/**
* \brief Adds a buffer to the hash to be calculated.
/*!
* @brief Adds a buffer to the hash to be calculated.
*
* \param buffer The buffer which should be included into the calculation
* \param length The length of the buffer
* @param buffer The buffer which should be included into the calculation
* @param length The length of the buffer
*/
- (void)updateWithBuffer: (const void*)buffer
length: (size_t)length;
/**
* \brief Returns a buffer containing the hash.
/*!
* @brief Returns a buffer containing the hash.
*
* The size of the buffer depends on the hash used. The buffer is part of the
* receiver's memory pool.
*
* \return A buffer containing the hash
* @return A buffer containing the hash
*/
- (uint8_t*)digest OF_RETURNS_INNER_POINTER;
/**
* \brief Returns a boolean whether the hash has already been calculated.
/*!
* @brief Returns a boolean whether the hash has already been calculated.
*
* \return A boolean whether the hash has already been calculated
* @return A boolean whether the hash has already been calculated
*/
- (BOOL)isCalculated;
@end
|
Modified src/OFIntrospection.h
from [2314d4ab1a]
to [b853dc8c4c].
︙ | | |
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
|
#import "OFObject.h"
@class OFString;
@class OFArray;
@class OFMutableArray;
/**
* \brief A class for describing a method.
/*!
* @brief A class for describing a method.
*/
@interface OFMethod: OFObject
{
SEL selector;
OFString *name;
const char *typeEncoding;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly) SEL selector;
@property (readonly, copy) OFString *name;
@property (readonly) const char *typeEncoding;
#endif
/**
* \brief Returns the selector of the method.
/*!
* @brief Returns the selector of the method.
*
* \return The selector of the method
* @return The selector of the method
*/
- (SEL)selector;
/**
* \brief Returns the name of the method.
/*!
* @brief Returns the name of the method.
*
* \return The name of the method
* @return The name of the method
*/
- (OFString*)name;
/**
* \brief Returns the type encoding for the method.
/*!
* @brief Returns the type encoding for the method.
*
* \return The type encoding for the method
* @return The type encoding for the method
*/
- (const char*)typeEncoding;
@end
/**
* \brief A class for describing an instance variable.
/*!
* @brief A class for describing an instance variable.
*/
@interface OFInstanceVariable: OFObject
{
OFString *name;
const char *typeEncoding;
ptrdiff_t offset;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, copy) OFString *name;
@property (readonly) ptrdiff_t offset;
@property (readonly) const char *typeEncoding;
#endif
/**
* \brief Returns the name of the instance variable.
/*!
* @brief Returns the name of the instance variable.
*
* \return The name of the instance variable
* @return The name of the instance variable
*/
- (OFString*)name;
/**
* \brief Returns the offset of the instance variable.
/*!
* @brief Returns the offset of the instance variable.
*
* \return The offset of the instance variable
* @return The offset of the instance variable
*/
- (ptrdiff_t)offset;
/**
* \brief Returns the type encoding for the instance variable.
/*!
* @brief Returns the type encoding for the instance variable.
*
* \return The type encoding for the instance variable
* @return The type encoding for the instance variable
*/
- (const char*)typeEncoding;
@end
/**
* \brief A class for introspecting classes.
/*!
* @brief A class for introspecting classes.
*/
@interface OFIntrospection: OFObject
{
OFMutableArray *classMethods;
OFMutableArray *instanceMethods;
OFMutableArray *instanceVariables;
#ifdef OF_HAVE_PROPERTIES
OFMutableArray *properties;
#endif
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, copy) OFArray *classMethods;
@property (readonly, copy) OFArray *instanceMethods;
@property (readonly, copy) OFArray *instanceVariables;
#endif
/**
* \brief Creates a new introspection for the specified class.
/*!
* @brief Creates a new introspection for the specified class.
*
* \return A new, autoreleased introspection for the specified class
* @return A new, autoreleased introspection for the specified class
*/
+ (instancetype)introspectionWithClass: (Class)class_;
/**
* \brief Initializes an already allocated OFIntrospection with the specified
/*!
* @brief Initializes an already allocated OFIntrospection with the specified
* class.
*
* \return An initialized OFIntrospection
* @return An initialized OFIntrospection
*/
- initWithClass: (Class)class_;
/**
* \brief Returns the class methods of the class.
/*!
* @brief Returns the class methods of the class.
*
* \return An array of OFMethods
* @return An array of OFMethods
*/
- (OFArray*)classMethods;
/**
* \brief Returns the instance methods of the class.
/*!
* @brief Returns the instance methods of the class.
*
* \return An array of OFMethods
* @return An array of OFMethods
*/
- (OFArray*)instanceMethods;
/**
* \brief Returns the instance variables of the class.
/*!
* @brief Returns the instance variables of the class.
*
* \return An array of OFInstanceVariables
* @return An array of OFInstanceVariables
*/
- (OFArray*)instanceVariables;
/* TODO: protocols */
@end
|
Modified src/OFJSONRepresentation.h
from [88b187db64]
to [0c0aa14181].
︙ | | |
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
-
-
+
+
-
+
-
-
+
+
-
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
@class OFString;
/**
* \brief A protocol implemented by classes that support encoding to a JSON
/*!
* @brief A protocol implemented by classes that support encoding to a JSON
* representation.
*
* \warning Although this method can be called directly on classes other than
* @warning Although this method can be called directly on classes other than
* OFArray and OFDictionary, this will generate invalid JSON, as JSON
* requires all data to be encapsulated in an array or a dictionary!
*/
@protocol OFJSONRepresentation
/**
* \brief Returns the JSON representation of the object as a string.
/*!
* @brief Returns the JSON representation of the object as a string.
*
* \return The JSON representation of the object as a string.
* @return The JSON representation of the object as a string.
*/
- (OFString*)JSONRepresentation;
@end
|
Modified src/OFList.h
from [d4ed52a4cc]
to [f7c36c6b33].
︙ | | |
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
|
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
|
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
|
#import "OFObject.h"
#import "OFCollection.h"
#import "OFEnumerator.h"
#import "OFSerialization.h"
typedef struct of_list_object_t of_list_object_t;
/**
* \brief A list object.
/*!
* @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
__unsafe_unretained id object;
};
/**
* \brief A class which provides easy to use double-linked lists.
/*!
* @brief A class which provides easy to use double-linked lists.
*/
@interface OFList: OFObject <OFCopying, OFCollection, OFSerialization>
{
of_list_object_t *firstListObject;
of_list_object_t *lastListObject;
size_t count;
unsigned long mutations;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly) of_list_object_t *firstListObject;
@property (readonly) of_list_object_t *lastListObject;
#endif
/**
* \brief Creates a new OFList.
/*!
* @brief Creates a new OFList.
*
* \return A new autoreleased OFList
* @return A new autoreleased OFList
*/
+ (instancetype)list;
/**
* \brief Returns the first list object of the list.
/*!
* @brief Returns the first list object of the list.
*
* \return The first list object of the list
* @return The first list object of the list
*/
- (of_list_object_t*)firstListObject;
/**
* \brief Retrusn the last list object of the list.
/*!
* @brief Retrusn the last list object of the list.
*
* \return The last list object of the list
* @return The last list object of the list
*/
- (of_list_object_t*)lastListObject;
/**
* \brief Appends an object to the list.
/*!
* @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.
* @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: (id)object;
/**
* \brief Prepends an object to the list.
/*!
* @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.
* @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: (id)object;
/**
* \brief Inserts an object before another list 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
* @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.
* @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: (id)object
beforeListObject: (of_list_object_t*)listObject;
/**
* \brief Inserts an object after another list object.
/*!
* @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
* @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.
* @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: (id)object
afterListObject: (of_list_object_t*)listObject;
/**
* \brief Removes the object with the specified list object from the list.
/*!
* @brief Removes the object with the specified list object from the list.
*
* \param listObject The list object returned by append / prepend
* @param listObject The list object returned by append / prepend
*/
- (void)removeListObject: (of_list_object_t*)listObject;
/**
* \brief Checks whether the list contains an object with the specified address.
/*!
* @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
* @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: (id)object;
/**
* \brief Returns the first object of the list or nil.
/*!
* @brief Returns the first object of the list or nil.
*
* The returned object is <i>not</i> retained and autoreleased for performance
* reasons!
*
* \return The first object of the list or nil
* @return The first object of the list or nil
*/
- (id)firstObject;
/**
* \brief Returns the last object of the list or nil.
/*!
* @brief Returns the last object of the list or nil.
*
* The returned object is <i>not</i> retained and autoreleased for performance
* reasons!
*
* \return The last object of the list or nil
* @return The last object of the list or nil
*/
- (id)lastObject;
/**
* \brief Removes all objects from the list.
/*!
* @brief Removes all objects from the list.
*/
- (void)removeAllObjects;
@end
@interface OFListEnumerator: OFEnumerator
{
OFList *list;
|
︙ | | |
Modified src/OFLocking.h
from [0ad6f630ce]
to [5f7cf70e41].
︙ | | |
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFObject.h"
/**
* \brief A protocol for locks.
/*!
* @brief A protocol for locks.
*/
@protocol OFLocking <OFObject>
/**
* \brief Locks the lock.
/*!
* @brief Locks the lock.
*/
- (void)lock;
/**
* \brief Tries to lock the lock.
/*!
* @brief Tries to lock the lock.
*
* \return A boolean whether the lock could be locked
* @return A boolean whether the lock could be locked
*/
- (BOOL)tryLock;
/**
* \brief Unlocks the lock.
/*!
* @brief Unlocks the lock.
*/
- (void)unlock;
@end
|
Modified src/OFMD5Hash.h
from [a6c35b82ad]
to [b8a9b23fd3].
︙ | | |
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
-
-
+
+
|
* file.
*/
#import "OFHash.h"
#define OF_MD5_DIGEST_SIZE 16
/**
* \brief A class which provides functions to create an MD5 hash.
/*!
* @brief A class which provides functions to create an MD5 hash.
*/
@interface OFMD5Hash: OFHash
{
uint32_t buffer[4];
uint32_t bits[2];
union {
uint8_t u8[64];
uint32_t u32[16];
} in;
}
@end
|
Modified src/OFMutableArray.h
from [9c7f745e9f]
to [3b79729549].
︙ | | |
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
|
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
|
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
|
#import "OFArray.h"
#ifdef OF_HAVE_BLOCKS
typedef id (^of_array_replace_block_t)(id obj, size_t idx, BOOL *stop);
#endif
/**
* \brief An abstract class for storing, adding and removing objects in anr
/*!
* @brief An abstract class for storing, adding and removing objects in anr
* array.
*/
@interface OFMutableArray: OFArray
/**
* \brief Adds an object to the end of the array.
/*!
* @brief Adds an object to the end of the array.
*
* \param object An object to add
* @param object An object to add
*/
- (void)addObject: (id)object;
/**
* \brief Adds the objects from the specified OFArray to the end of the array.
/*!
* @brief Adds the objects from the specified OFArray to the end of the array.
*
* \brief array An array of objects to add
* @brief array An array of objects to add
*/
- (void)addObjectsFromArray: (OFArray*)array;
/**
* \brief Inserts an object to the OFArray at the specified index.
/*!
* @brief Inserts an object to the OFArray at the specified index.
*
* \param object An object to add
* \param index The index where the object should be inserted
* @param object An object to add
* @param index The index where the object should be inserted
*/
- (void)insertObject: (id)object
atIndex: (size_t)index;
/**
* \brief Inserts the objects from the specified OFArray at the specified index.
/*!
* @brief Inserts the objects from the specified OFArray at the specified index.
*
* \param array An array of objects
* \param index The index where the objects should be inserted
* @param array An array of objects
* @param index The index where the objects should be inserted
*/
- (void)insertObjectsFromArray: (OFArray*)array
atIndex: (size_t)index;
/**
* \brief Replaces the first object equivalent to the specified object with the
/*!
* @brief Replaces the first object equivalent to the specified object with the
* other specified object.
*
* \param oldObject The object to replace
* \param newObject The replacement object
* @param oldObject The object to replace
* @param newObject The replacement object
*/
- (void)replaceObject: (id)oldObject
withObject: (id)newObject;
/**
* \brief Replaces the object at the specified index with the specified object.
/*!
* @brief Replaces the object at the specified index with the specified object.
*
* \param index The index of the object to replace
* \param object The replacement object
* @param index The index of the object to replace
* @param object The replacement object
*/
- (void)replaceObjectAtIndex: (size_t)index
withObject: (id)object;
- (void)setObject: (id)object
atIndexedSubscript: (size_t)index;
/**
* \brief Replaces the first object that has the same address as the specified
/*!
* @brief Replaces the first object that has the same address as the specified
* object with the other specified object.
*
* \param oldObject The object to replace
* \param newObject The replacement object
* @param oldObject The object to replace
* @param newObject The replacement object
*/
- (void)replaceObjectIdenticalTo: (id)oldObject
withObject: (id)newObject;
/**
* \brief Removes the first object equivalent to the specified object.
/*!
* @brief Removes the first object equivalent to the specified object.
*
* \param object The object to remove
* @param object The object to remove
*/
- (void)removeObject: (id)object;
/**
* \brief Removes the first object that has the same address as the specified
/*!
* @brief Removes the first object that has the same address as the specified
* object.
*
* \param object The object to remove
* @param object The object to remove
*/
- (void)removeObjectIdenticalTo: (id)object;
/**
* \brief Removes the object at the specified index.
/*!
* @brief Removes the object at the specified index.
*
* \param index The index of the object to remove
* @param index The index of the object to remove
*/
- (void)removeObjectAtIndex: (size_t)index;
/**
* \brief Removes the object in the specified range.
/*!
* @brief Removes the object in the specified range.
*
* \param range The range of the objects to remove
* @param range The range of the objects to remove
*/
- (void)removeObjectsInRange: (of_range_t)range;
/**
* \brief Removes the last object.
/*!
* @brief Removes the last object.
*/
- (void)removeLastObject;
/**
* \brief Removes all objects.
/*!
* @brief Removes all objects.
*/
- (void)removeAllObjects;
#ifdef OF_HAVE_BLOCKS
/**
* \brief Replaces each object with the object returned by the block.
/*!
* @brief Replaces each object with the object returned by the block.
*
* \param block The block which returns a new object for each object
* @param block The block which returns a new object for each object
*/
- (void)replaceObjectsUsingBlock: (of_array_replace_block_t)block;
#endif
/**
* \brief Exchange the objects at the specified indices.
/*!
* @brief Exchange the objects at the specified indices.
*
* \param index1 The index of the first object to exchange
* \param index2 The index of the second object to exchange
* @param index1 The index of the first object to exchange
* @param index2 The index of the second object to exchange
*/
- (void)exchangeObjectAtIndex: (size_t)index1
withObjectAtIndex: (size_t)index2;
/**
* \brief Sorts the array.
/*!
* @brief Sorts the array.
*/
- (void)sort;
/**
* \brief Reverts the order of the objects in the array.
/*!
* @brief Reverts the order of the objects in the array.
*/
- (void)reverse;
/**
* \brief Converts the mutable array to an immutable array.
/*!
* @brief Converts the mutable array to an immutable array.
*/
- (void)makeImmutable;
@end
|
Modified src/OFMutableDictionary.h
from [e2f5552214]
to [0b8942ce10].
︙ | | |
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
|
#import "OFDictionary.h"
#ifdef OF_HAVE_BLOCKS
typedef id (^of_dictionary_replace_block_t)(id key, id object, BOOL *stop);
#endif
/**
* \brief An abstract class for storing and changing objects in a dictionary.
/*!
* @brief An abstract class for storing and changing objects in a dictionary.
*/
@interface OFMutableDictionary: OFDictionary
/**
* \brief Sets an object for a key.
/*!
* @brief Sets an object for a key.
*
* A key can be any object that conforms to the OFCopying protocol.
*
* \param key The key to set
* \param object The object to set the key to
* @param key The key to set
* @param object The object to set the key to
*/
- (void)setObject: (id)object
forKey: (id)key;
- (void)setObject: (id)object
forKeyedSubscript: (id)key;
/**
* \brief Removes the object for the specified key from the dictionary.
/*!
* @brief Removes the object for the specified key from the dictionary.
*
* \param key The key whose object should be removed
* @param key The key whose object should be removed
*/
- (void)removeObjectForKey: (id)key;
#ifdef OF_HAVE_BLOCKS
/**
* \brief Replaces each object with the object returned by the block.
/*!
* @brief Replaces each object with the object returned by the block.
*
* \param block The block which returns a new object for each object
* @param block The block which returns a new object for each object
*/
- (void)replaceObjectsUsingBlock: (of_dictionary_replace_block_t)block;
#endif
/**
* \brief Converts the mutable dictionary to an immutable dictionary.
/*!
* @brief Converts the mutable dictionary to an immutable dictionary.
*/
- (void)makeImmutable;
@end
|
Modified src/OFMutableSet.h
from [7b8b5bfbbc]
to [df687701d6].
︙ | | |
12
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
12
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFSet.h"
/**
* \brief An abstract class for a mutable unordered set of unique objects.
/*!
* @brief An abstract class for a mutable unordered set of unique objects.
*/
@interface OFMutableSet: OFSet
/**
* \brief Adds the specified object to the set.
/*!
* @brief Adds the specified object to the set.
*
* \param object The object to add to the set
* @param object The object to add to the set
*/
- (void)addObject: (id)object;
/**
* \brief Removes the specified object from the set.
/*!
* @brief Removes the specified object from the set.
*
* \param object The object to remove from the set
* @param object The object to remove from the set
*/
- (void)removeObject: (id)object;
/**
* \brief Removes all objects from the receiver that are in the specified set.
/*!
* @brief Removes all objects from the receiver that are in the specified set.
*
* \param set The set whose objects will be removed from the receiver
* @param set The set whose objects will be removed from the receiver
*/
- (void)minusSet: (OFSet*)set;
/**
* \brief Removes all objects from the receiver that are not in the specified
/*!
* @brief Removes all objects from the receiver that are not in the specified
* set.
*
* \param set The set to intersect
* @param set The set to intersect
*/
- (void)intersectSet: (OFSet*)set;
/**
* \brief Creates a union of the receiver and the specified set.
/*!
* @brief Creates a union of the receiver and the specified set.
*
* \param set The set to create the union with
* @param set The set to create the union with
*/
- (void)unionSet: (OFSet*)set;
/**
* \brief Converts the mutable set to an immutable set.
/*!
* @brief Converts the mutable set to an immutable set.
*/
- (void)makeImmutable;
@end
|
Modified src/OFMutableString.h
from [2c3f1dcc50]
to [37a957d0d8].
︙ | | |
12
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
|
12
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
|
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFString.h"
/**
* \brief A class for storing and modifying strings.
/*!
* @brief A class for storing and modifying strings.
*/
@interface OFMutableString: OFString
/**
* \brief Sets the character at the specified index.
/*!
* @brief Sets the character at the specified index.
*
* \param character The character to set
* \param index The index where to set the character
* @param character The character to set
* @param index The index where to set the character
*/
- (void)setCharacter: (of_unichar_t)character
atIndex: (size_t)index;
/**
* \brief Appends a UTF-8 encoded C string to the OFMutableString.
/*!
* @brief Appends a UTF-8 encoded C string to the OFMutableString.
*
* \param UTF8String A UTF-8 encoded C string to append
* @param UTF8String A UTF-8 encoded C string to append
*/
- (void)appendUTF8String: (const char*)UTF8String;
/**
* \brief Appends a UTF-8 encoded C string with the specified length to the
/*!
* @brief Appends a UTF-8 encoded C string with the specified length to the
* OFMutableString.
*
* \param UTF8String A UTF-8 encoded C string to append
* \param UTF8StringLength The length of the UTF-8 encoded C string
* @param UTF8String A UTF-8 encoded C string to append
* @param UTF8StringLength The length of the UTF-8 encoded C string
*/
- (void)appendUTF8String: (const char*)UTF8String
length: (size_t)UTF8StringLength;
/**
* \brief Appends a C string with the specified encoding to the OFMutableString.
/*!
* @brief Appends a C string with the specified encoding to the OFMutableString.
*
* \param cString A C string to append
* \param encoding The encoding of the C string
* @param cString A C string to append
* @param encoding The encoding of the C string
*/
- (void)appendCString: (const char*)cString
encoding: (of_string_encoding_t)encoding;
/**
* \brief Appends a C string with the specified encoding and length to the
/*!
* @brief Appends a C string with the specified encoding and length to the
* OFMutableString.
*
* \param cString A C string to append
* \param encoding The encoding of the C string
* \param cStringLength The length of the UTF-8 encoded C string
* @param cString A C string to append
* @param encoding The encoding of the C string
* @param cStringLength The length of the UTF-8 encoded C string
*/
- (void)appendCString: (const char*)cString
encoding: (of_string_encoding_t)encoding
length: (size_t)cStringLength;
/**
* \brief Appends another OFString to the OFMutableString.
/*!
* @brief Appends another OFString to the OFMutableString.
*
* \param string An OFString to append
* @param string An OFString to append
*/
- (void)appendString: (OFString*)string;
/**
* \brief Appends a formatted string to the OFMutableString.
/*!
* @brief Appends a formatted string to the OFMutableString.
*
* See printf for the format syntax. As an addition, %@ is available as format
* specifier for objects.
*
* \param format A format string which generates the string to append
* @param format A format string which generates the string to append
*/
- (void)appendFormat: (OFConstantString*)format, ...;
/**
* \brief Appends a formatted string to the OFMutableString.
/*!
* @brief Appends a formatted string to the OFMutableString.
*
* See printf for the format syntax. As an addition, %@ is available as format
* specifier for objects.
*
* \param format A format string which generates the string to append
* \param arguments The arguments used in the format string
* @param format A format string which generates the string to append
* @param arguments The arguments used in the format string
*/
- (void)appendFormat: (OFConstantString*)format
arguments: (va_list)arguments;
/**
* \brief Prepends another OFString to the OFMutableString.
/*!
* @brief Prepends another OFString to the OFMutableString.
*
* \param string An OFString to prepend
* @param string An OFString to prepend
*/
- (void)prependString: (OFString*)string;
/**
* \brief Reverses the string.
/*!
* @brief Reverses the string.
*/
- (void)reverse;
/**
* \brief Converts the string to uppercase.
/*!
* @brief Converts the string to uppercase.
*/
- (void)uppercase;
/**
* \brief Converts the string to lowercase.
/*!
* @brief Converts the string to lowercase.
*/
- (void)lowercase;
/**
* \brief Capitalizes the string.
/*!
* @brief Capitalizes the string.
*
* \note This only considers spaces, tabs and newlines to be word delimiters!
* @note This only considers spaces, tabs and newlines to be word delimiters!
* Also note that this might change in the future to all word delimiters
* specified by Unicode!
*/
- (void)capitalize;
/**
* \brief Inserts a string at the specified index.
/*!
* @brief Inserts a string at the specified index.
*
* \param string The string to insert
* \param index The index
* @param string The string to insert
* @param index The index
*/
- (void)insertString: (OFString*)string
atIndex: (size_t)index;
/**
* \brief Deletes the characters at the specified range.
/*!
* @brief Deletes the characters at the specified range.
*
* \param range The range of the characters which should be removed
* @param range The range of the characters which should be removed
*/
- (void)deleteCharactersInRange: (of_range_t)range;
/**
* \brief Replaces the characters at the specified range.
/*!
* @brief Replaces the characters at the specified range.
*
* \param range The range of the characters which should be replaced
* \param replacement The string to the replace the characters with
* @param range The range of the characters which should be replaced
* @param replacement The string to the replace the characters with
*/
- (void)replaceCharactersInRange: (of_range_t)range
withString: (OFString*)replacement;
/**
* \brief Replaces all occurrences of a string with another string.
/*!
* @brief Replaces all occurrences of a string with another string.
*
* \param string The string to replace
* \param replacement The string with which it should be replaced
* @param string The string to replace
* @param replacement The string with which it should be replaced
*/
- (void)replaceOccurrencesOfString: (OFString*)string
withString: (OFString*)replacement;
/**
* \brief Replaces all occurrences of a string in the specified range with
/*!
* @brief Replaces all occurrences of a string in the specified range with
* another string.
*
* \param string The string to replace
* \param replacement The string with which it should be replaced
* \param options Options modifying search behaviour
* @param string The string to replace
* @param replacement The string with which it should be replaced
* @param options Options modifying search behaviour
* Possible values: None yet
* \param range The range in which the string should be replaced
* @param range The range in which the string should be replaced
*/
- (void)replaceOccurrencesOfString: (OFString*)string
withString: (OFString*)replacement
options: (int)options
range: (of_range_t)range;
/**
* \brief Deletes all whitespaces at the beginning of the string.
/*!
* @brief Deletes all whitespaces at the beginning of the string.
*/
- (void)deleteLeadingWhitespaces;
/**
* \brief Deletes all whitespaces at the end of the string.
/*!
* @brief Deletes all whitespaces at the end of the string.
*/
- (void)deleteTrailingWhitespaces;
/**
* \brief Deletes all whitespaces at the beginning and the end of the string.
/*!
* @brief Deletes all whitespaces at the beginning and the end of the string.
*/
- (void)deleteEnclosingWhitespaces;
/**
* \brief Converts the mutable string to an immutable string.
/*!
* @brief Converts the mutable string to an immutable string.
*/
- (void)makeImmutable;
@end
|
Modified src/OFMutex.h
from [2f19637b86]
to [9e5b4524e5].
︙ | | |
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
-
-
+
+
-
-
+
+
-
+
|
*/
#import "OFObject.h"
#import "OFLocking.h"
#import "threading.h"
/**
* \brief A class for creating mutual exclusions.
/*!
* @brief A class for creating mutual exclusions.
*/
@interface OFMutex: OFObject <OFLocking>
{
of_mutex_t mutex;
BOOL initialized;
}
/**
* \brief Creates a new mutex.
/*!
* @brief Creates a new mutex.
*
* \return A new autoreleased mutex.
* @return A new autoreleased mutex.
*/
+ (instancetype)mutex;
@end
|
Modified src/OFNull.h
from [c231d998aa]
to [b64619ec77].
︙ | | |
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
-
-
+
+
-
-
+
+
-
+
|
* file.
*/
#import "OFObject.h"
#import "OFSerialization.h"
#import "OFJSONRepresentation.h"
/**
* \brief A class for representing null values in collections.
/*!
* @brief A class for representing null values in collections.
*/
@interface OFNull: OFObject <OFCopying, OFSerialization, OFJSONRepresentation>
/**
* \brief Returns an OFNull singleton.
/*!
* @brief Returns an OFNull singleton.
*
* \return An OFNull singleton
* @return An OFNull singleton
*/
+ (OFNull*)null;
@end
|
Modified src/OFNumber.h
from [325eff17e3]
to [40cf62c75a].
︙ | | |
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
-
-
+
+
|
#include <sys/types.h>
#import "OFObject.h"
#import "OFSerialization.h"
#import "OFJSONRepresentation.h"
/**
* \brief The type of a number.
/*!
* @brief The type of a number.
*/
typedef enum of_number_type_t {
OF_NUMBER_BOOL = 0x01,
OF_NUMBER_UCHAR = 0x02,
OF_NUMBER_USHORT = 0x03,
OF_NUMBER_UINT = 0x04,
OF_NUMBER_ULONG = 0x05,
|
︙ | | |
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
-
-
+
+
|
OF_NUMBER_INTMAX = OF_NUMBER_UINTMAX | OF_NUMBER_SIGNED,
OF_NUMBER_PTRDIFF = 0x0D | OF_NUMBER_SIGNED,
OF_NUMBER_INTPTR = 0x0E | OF_NUMBER_SIGNED,
OF_NUMBER_FLOAT = 0x20,
OF_NUMBER_DOUBLE = 0x40 | OF_NUMBER_FLOAT,
} of_number_type_t;
/**
* \brief Provides a way to store a number in an object.
/*!
* @brief Provides a way to store a number in an object.
*/
@interface OFNumber: OFObject <OFCopying, OFComparing, OFSerialization,
OFJSONRepresentation>
{
union of_number_value {
BOOL bool_;
signed char char_;
|
︙ | | |
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
|
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
|
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
|
of_number_type_t type;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly) of_number_type_t type;
#endif
/**
* \brief Creates a new OFNumber with the specified BOOL.
/*!
* @brief Creates a new OFNumber with the specified BOOL.
*
* \param bool_ A BOOL which the OFNumber should contain
* \return A new autoreleased OFNumber
* @param bool_ A BOOL which the OFNumber should contain
* @return A new autoreleased OFNumber
*/
+ (instancetype)numberWithBool: (BOOL)bool_;
/**
* \brief Creates a new OFNumber with the specified signed char.
/*!
* @brief Creates a new OFNumber with the specified signed char.
*
* \param char_ A signed char which the OFNumber should contain
* \return A new autoreleased OFNumber
* @param char_ A signed char which the OFNumber should contain
* @return A new autoreleased OFNumber
*/
+ (instancetype)numberWithChar: (signed char)char_;
/**
* \brief Creates a new OFNumber with the specified signed short.
/*!
* @brief Creates a new OFNumber with the specified signed short.
*
* \param short_ A signed short which the OFNumber should contain
* \return A new autoreleased OFNumber
* @param short_ A signed short which the OFNumber should contain
* @return A new autoreleased OFNumber
*/
+ (instancetype)numberWithShort: (signed short)short_;
/**
* \brief Creates a new OFNumber with the specified signed int.
/*!
* @brief Creates a new OFNumber with the specified signed int.
*
* \param int_ A signed int which the OFNumber should contain
* \return A new autoreleased OFNumber
* @param int_ A signed int which the OFNumber should contain
* @return A new autoreleased OFNumber
*/
+ (instancetype)numberWithInt: (signed int)int_;
/**
* \brief Creates a new OFNumber with the specified signed long.
/*!
* @brief Creates a new OFNumber with the specified signed long.
*
* \param long_ A signed long which the OFNumber should contain
* \return A new autoreleased OFNumber
* @param long_ A signed long which the OFNumber should contain
* @return A new autoreleased OFNumber
*/
+ (instancetype)numberWithLong: (signed long)long_;
/**
* \brief Creates a new OFNumber with the specified unsigned char.
/*!
* @brief Creates a new OFNumber with the specified unsigned char.
*
* \param uchar An unsigned char which the OFNumber should contain
* \return A new autoreleased OFNumber
* @param uchar An unsigned char which the OFNumber should contain
* @return A new autoreleased OFNumber
*/
+ (instancetype)numberWithUnsignedChar: (unsigned char)uchar;
/**
* \brief Creates a new OFNumber with the specified unsigned short.
/*!
* @brief Creates a new OFNumber with the specified unsigned short.
*
* \param ushort An unsigned short which the OFNumber should contain
* \return A new autoreleased OFNumber
* @param ushort An unsigned short which the OFNumber should contain
* @return A new autoreleased OFNumber
*/
+ (instancetype)numberWithUnsignedShort: (unsigned short)ushort;
/**
* \brief Creates a new OFNumber with the specified unsigned int.
/*!
* @brief Creates a new OFNumber with the specified unsigned int.
*
* \param uint An unsigned int which the OFNumber should contain
* \return A new autoreleased OFNumber
* @param uint An unsigned int which the OFNumber should contain
* @return A new autoreleased OFNumber
*/
+ (instancetype)numberWithUnsignedInt: (unsigned int)uint;
/**
* \brief Creates a new OFNumber with the specified unsigned long.
/*!
* @brief Creates a new OFNumber with the specified unsigned long.
*
* \param ulong An unsigned long which the OFNumber should contain
* \return A new autoreleased OFNumber
* @param ulong An unsigned long which the OFNumber should contain
* @return A new autoreleased OFNumber
*/
+ (instancetype)numberWithUnsignedLong: (unsigned long)ulong;
/**
* \brief Creates a new OFNumber with the specified int8_t.
/*!
* @brief Creates a new OFNumber with the specified int8_t.
*
* \param int8 An int8_t which the OFNumber should contain
* \return A new autoreleased OFNumber
* @param int8 An int8_t which the OFNumber should contain
* @return A new autoreleased OFNumber
*/
+ (instancetype)numberWithInt8: (int8_t)int8;
/**
* \brief Creates a new OFNumber with the specified int16_t.
/*!
* @brief Creates a new OFNumber with the specified int16_t.
*
* \param int16 An int16_t which the OFNumber should contain
* \return A new autoreleased OFNumber
* @param int16 An int16_t which the OFNumber should contain
* @return A new autoreleased OFNumber
*/
+ (instancetype)numberWithInt16: (int16_t)int16;
/**
* \brief Creates a new OFNumber with the specified int32_t.
/*!
* @brief Creates a new OFNumber with the specified int32_t.
*
* \param int32 An int32_t which the OFNumber should contain
* \return A new autoreleased OFNumber
* @param int32 An int32_t which the OFNumber should contain
* @return A new autoreleased OFNumber
*/
+ (instancetype)numberWithInt32: (int32_t)int32;
/**
* \brief Creates a new OFNumber with the specified int64_t.
/*!
* @brief Creates a new OFNumber with the specified int64_t.
*
* \param int64 An int64_t which the OFNumber should contain
* \return A new autoreleased OFNumber
* @param int64 An int64_t which the OFNumber should contain
* @return A new autoreleased OFNumber
*/
+ (instancetype)numberWithInt64: (int64_t)int64;
/**
* \brief Creates a new OFNumber with the specified uint8_t.
/*!
* @brief Creates a new OFNumber with the specified uint8_t.
*
* \param uint8 A uint8_t which the OFNumber should contain
* \return A new autoreleased OFNumber
* @param uint8 A uint8_t which the OFNumber should contain
* @return A new autoreleased OFNumber
*/
+ (instancetype)numberWithUInt8: (uint8_t)uint8;
/**
* \brief Creates a new OFNumber with the specified uint16_t.
/*!
* @brief Creates a new OFNumber with the specified uint16_t.
*
* \param uint16 A uint16_t which the OFNumber should contain
* \return A new autoreleased OFNumber
* @param uint16 A uint16_t which the OFNumber should contain
* @return A new autoreleased OFNumber
*/
+ (instancetype)numberWithUInt16: (uint16_t)uint16;
/**
* \brief Creates a new OFNumber with the specified uint32_t.
/*!
* @brief Creates a new OFNumber with the specified uint32_t.
*
* \param uint32 A uint32_t which the OFNumber should contain
* \return A new autoreleased OFNumber
* @param uint32 A uint32_t which the OFNumber should contain
* @return A new autoreleased OFNumber
*/
+ (instancetype)numberWithUInt32: (uint32_t)uint32;
/**
* \brief Creates a new OFNumber with the specified uint64_t.
/*!
* @brief Creates a new OFNumber with the specified uint64_t.
*
* \param uint64 A uint64_t which the OFNumber should contain
* \return A new autoreleased OFNumber
* @param uint64 A uint64_t which the OFNumber should contain
* @return A new autoreleased OFNumber
*/
+ (instancetype)numberWithUInt64: (uint64_t)uint64;
/**
* \brief Creates a new OFNumber with the specified size_t.
/*!
* @brief Creates a new OFNumber with the specified size_t.
*
* \param size A size_t which the OFNumber should contain
* \return A new autoreleased OFNumber
* @param size A size_t which the OFNumber should contain
* @return A new autoreleased OFNumber
*/
+ (instancetype)numberWithSize: (size_t)size;
/**
* \brief Creates a new OFNumber with the specified ssize_t.
/*!
* @brief Creates a new OFNumber with the specified ssize_t.
*
* \param ssize An ssize_t which the OFNumber should contain
* \return A new autoreleased OFNumber
* @param ssize An ssize_t which the OFNumber should contain
* @return A new autoreleased OFNumber
*/
+ (instancetype)numberWithSSize: (ssize_t)ssize;
/**
* \brief Creates a new OFNumber with the specified intmax_t.
/*!
* @brief Creates a new OFNumber with the specified intmax_t.
*
* \param intmax An intmax_t which the OFNumber should contain
* \return A new autoreleased OFNumber
* @param intmax An intmax_t which the OFNumber should contain
* @return A new autoreleased OFNumber
*/
+ (instancetype)numberWithIntMax: (intmax_t)intmax;
/**
* \brief Creates a new OFNumber with the specified uintmax_t.
/*!
* @brief Creates a new OFNumber with the specified uintmax_t.
*
* \param uintmax A uintmax_t which the OFNumber should contain
* \return A new autoreleased OFNumber
* @param uintmax A uintmax_t which the OFNumber should contain
* @return A new autoreleased OFNumber
*/
+ (instancetype)numberWithUIntMax: (uintmax_t)uintmax;
/**
* \brief Creates a new OFNumber with the specified ptrdiff_t.
/*!
* @brief Creates a new OFNumber with the specified ptrdiff_t.
*
* \param ptrdiff A ptrdiff_t which the OFNumber should contain
* \return A new autoreleased OFNumber
* @param ptrdiff A ptrdiff_t which the OFNumber should contain
* @return A new autoreleased OFNumber
*/
+ (instancetype)numberWithPtrDiff: (ptrdiff_t)ptrdiff;
/**
* \brief Creates a new OFNumber with the specified intptr_t.
/*!
* @brief Creates a new OFNumber with the specified intptr_t.
*
* \param intptr An intptr_t which the OFNumber should contain
* \return A new autoreleased OFNumber
* @param intptr An intptr_t which the OFNumber should contain
* @return A new autoreleased OFNumber
*/
+ (instancetype)numberWithIntPtr: (intptr_t)intptr;
/**
* \brief Creates a new OFNumber with the specified uintptr_t.
/*!
* @brief Creates a new OFNumber with the specified uintptr_t.
*
* \param uintptr A uintptr_t which the OFNumber should contain
* \return A new autoreleased OFNumber
* @param uintptr A uintptr_t which the OFNumber should contain
* @return A new autoreleased OFNumber
*/
+ (instancetype)numberWithUIntPtr: (uintptr_t)uintptr;
/**
* \brief Creates a new OFNumber with the specified float.
/*!
* @brief Creates a new OFNumber with the specified float.
*
* \param float_ A float which the OFNumber should contain
* \return A new autoreleased OFNumber
* @param float_ A float which the OFNumber should contain
* @return A new autoreleased OFNumber
*/
+ (instancetype)numberWithFloat: (float)float_;
/**
* \brief Creates a new OFNumber with the specified double.
/*!
* @brief Creates a new OFNumber with the specified double.
*
* \param double_ A double which the OFNumber should contain
* \return A new autoreleased OFNumber
* @param double_ A double which the OFNumber should contain
* @return A new autoreleased OFNumber
*/
+ (instancetype)numberWithDouble: (double)double_;
/**
* \brief Initializes an already allocated OFNumber with the specified BOOL.
/*!
* @brief Initializes an already allocated OFNumber with the specified BOOL.
*
* \param bool_ A BOOL which the OFNumber should contain
* \return An initialized OFNumber
* @param bool_ A BOOL which the OFNumber should contain
* @return An initialized OFNumber
*/
- initWithBool: (BOOL)bool_;
/**
* \brief Initializes an already allocated OFNumber with the specified signed
/*!
* @brief Initializes an already allocated OFNumber with the specified signed
* char.
*
* \param char_ A signed char which the OFNumber should contain
* \return An initialized OFNumber
* @param char_ A signed char which the OFNumber should contain
* @return An initialized OFNumber
*/
- initWithChar: (signed char)char_;
/**
* \brief Initializes an already allocated OFNumber with the specified signed
/*!
* @brief Initializes an already allocated OFNumber with the specified signed
* short.
*
* \param short_ A signed short which the OFNumber should contain
* \return An initialized OFNumber
* @param short_ A signed short which the OFNumber should contain
* @return An initialized OFNumber
*/
- initWithShort: (signed short)short_;
/**
* \brief Initializes an already allocated OFNumber with the specified signed
/*!
* @brief Initializes an already allocated OFNumber with the specified signed
* int.
*
* \param int_ A signed int which the OFNumber should contain
* \return An initialized OFNumber
* @param int_ A signed int which the OFNumber should contain
* @return An initialized OFNumber
*/
- initWithInt: (signed int)int_;
/**
* \brief Initializes an already allocated OFNumber with the specified signed
/*!
* @brief Initializes an already allocated OFNumber with the specified signed
* long.
*
* \param long_ A signed long which the OFNumber should contain
* \return An initialized OFNumber
* @param long_ A signed long which the OFNumber should contain
* @return An initialized OFNumber
*/
- initWithLong: (signed long)long_;
/**
* \brief Initializes an already allocated OFNumber with the specified unsigned
/*!
* @brief Initializes an already allocated OFNumber with the specified unsigned
* char.
*
* \param uchar An unsigned char which the OFNumber should contain
* \return An initialized OFNumber
* @param uchar An unsigned char which the OFNumber should contain
* @return An initialized OFNumber
*/
- initWithUnsignedChar: (unsigned char)uchar;
/**
* \brief Initializes an already allocated OFNumber with the specified unsigned
/*!
* @brief Initializes an already allocated OFNumber with the specified unsigned
* short.
*
* \param ushort An unsigned short which the OFNumber should contain
* \return An initialized OFNumber
* @param ushort An unsigned short which the OFNumber should contain
* @return An initialized OFNumber
*/
- initWithUnsignedShort: (unsigned short)ushort;
/**
* \brief Initializes an already allocated OFNumber with the specified unsigned
/*!
* @brief Initializes an already allocated OFNumber with the specified unsigned
* int.
*
* \param uint An unsigned int which the OFNumber should contain
* \return An initialized OFNumber
* @param uint An unsigned int which the OFNumber should contain
* @return An initialized OFNumber
*/
- initWithUnsignedInt: (unsigned int)uint;
/**
* \brief Initializes an already allocated OFNumber with the specified unsigned
/*!
* @brief Initializes an already allocated OFNumber with the specified unsigned
* long.
*
* \param ulong An unsigned long which the OFNumber should contain
* \return An initialized OFNumber
* @param ulong An unsigned long which the OFNumber should contain
* @return An initialized OFNumber
*/
- initWithUnsignedLong: (unsigned long)ulong;
/**
* \brief Initializes an already allocated OFNumber with the specified int8_t.
/*!
* @brief Initializes an already allocated OFNumber with the specified int8_t.
*
* \param int8 An int8_t which the OFNumber should contain
* \return An initialized OFNumber
* @param int8 An int8_t which the OFNumber should contain
* @return An initialized OFNumber
*/
- initWithInt8: (int8_t)int8;
/**
* \brief Initializes an already allocated OFNumber with the specified int16_t.
/*!
* @brief Initializes an already allocated OFNumber with the specified int16_t.
*
* \param int16 An int16_t which the OFNumber should contain
* \return An initialized OFNumber
* @param int16 An int16_t which the OFNumber should contain
* @return An initialized OFNumber
*/
- initWithInt16: (int16_t)int16;
/**
* \brief Initializes an already allocated OFNumber with the specified int32_t.
/*!
* @brief Initializes an already allocated OFNumber with the specified int32_t.
*
* \param int32 An int32_t which the OFNumber should contain
* \return An initialized OFNumber
* @param int32 An int32_t which the OFNumber should contain
* @return An initialized OFNumber
*/
- initWithInt32: (int32_t)int32;
/**
* \brief Initializes an already allocated OFNumber with the specified int64_t.
/*!
* @brief Initializes an already allocated OFNumber with the specified int64_t.
*
* \param int64 An int64_t which the OFNumber should contain
* \return An initialized OFNumber
* @param int64 An int64_t which the OFNumber should contain
* @return An initialized OFNumber
*/
- initWithInt64: (int64_t)int64;
/**
* \brief Initializes an already allocated OFNumber with the specified uint8_t.
/*!
* @brief Initializes an already allocated OFNumber with the specified uint8_t.
*
* \param uint8 A uint8_t which the OFNumber should contain
* \return An initialized OFNumber
* @param uint8 A uint8_t which the OFNumber should contain
* @return An initialized OFNumber
*/
- initWithUInt8: (uint8_t)uint8;
/**
* \brief Initializes an already allocated OFNumber with the specified uint16_t.
/*!
* @brief Initializes an already allocated OFNumber with the specified uint16_t.
*
* \param uint16 A uint16_t which the OFNumber should contain
* \return An initialized OFNumber
* @param uint16 A uint16_t which the OFNumber should contain
* @return An initialized OFNumber
*/
- initWithUInt16: (uint16_t)uint16;
/**
* \brief Initializes an already allocated OFNumber with the specified uint32_t.
/*!
* @brief Initializes an already allocated OFNumber with the specified uint32_t.
*
* \param uint32 A uint32_t which the OFNumber should contain
* \return An initialized OFNumber
* @param uint32 A uint32_t which the OFNumber should contain
* @return An initialized OFNumber
*/
- initWithUInt32: (uint32_t)uint32;
/**
* \brief Initializes an already allocated OFNumber with the specified uint64_t.
/*!
* @brief Initializes an already allocated OFNumber with the specified uint64_t.
*
* \param uint64 A uint64_t which the OFNumber should contain
* \return An initialized OFNumber
* @param uint64 A uint64_t which the OFNumber should contain
* @return An initialized OFNumber
*/
- initWithUInt64: (uint64_t)uint64;
/**
* \brief Initializes an already allocated OFNumber with the specified size_t.
/*!
* @brief Initializes an already allocated OFNumber with the specified size_t.
*
* \param size A size_t which the OFNumber should contain
* \return An initialized OFNumber
* @param size A size_t which the OFNumber should contain
* @return An initialized OFNumber
*/
- initWithSize: (size_t)size;
/**
* \brief Initializes an already allocated OFNumber with the specified ssize_t.
/*!
* @brief Initializes an already allocated OFNumber with the specified ssize_t.
*
* \param ssize An ssize_t which the OFNumber should contain
* \return An initialized OFNumber
* @param ssize An ssize_t which the OFNumber should contain
* @return An initialized OFNumber
*/
- initWithSSize: (ssize_t)ssize;
/**
* \brief Initializes an already allocated OFNumber with the specified intmax_t.
/*!
* @brief Initializes an already allocated OFNumber with the specified intmax_t.
*
* \param intmax An intmax_t which the OFNumber should contain
* \return An initialized OFNumber
* @param intmax An intmax_t which the OFNumber should contain
* @return An initialized OFNumber
*/
- initWithIntMax: (intmax_t)intmax;
/**
* \brief Initializes an already allocated OFNumber with the specified
/*!
* @brief Initializes an already allocated OFNumber with the specified
* uintmax_t.
*
* \param uintmax A uintmax_t which the OFNumber should contain
* \return An initialized OFNumber
* @param uintmax A uintmax_t which the OFNumber should contain
* @return An initialized OFNumber
*/
- initWithUIntMax: (uintmax_t)uintmax;
/**
* \brief Initializes an already allocated OFNumber with the specified
/*!
* @brief Initializes an already allocated OFNumber with the specified
* ptrdiff_t.
*
* \param ptrdiff A ptrdiff_t which the OFNumber should contain
* \return An initialized OFNumber
* @param ptrdiff A ptrdiff_t which the OFNumber should contain
* @return An initialized OFNumber
*/
- initWithPtrDiff: (ptrdiff_t)ptrdiff;
/**
* \brief Initializes an already allocated OFNumber with the specified intptr_t.
/*!
* @brief Initializes an already allocated OFNumber with the specified intptr_t.
*
* \param intptr An intptr_t which the OFNumber should contain
* \return An initialized OFNumber
* @param intptr An intptr_t which the OFNumber should contain
* @return An initialized OFNumber
*/
- initWithIntPtr: (intptr_t)intptr;
/**
* \brief Initializes an already allocated OFNumber with the specified
/*!
* @brief Initializes an already allocated OFNumber with the specified
* uintptr_t.
*
* \param uintptr A uintptr_t which the OFNumber should contain
* \return An initialized OFNumber
* @param uintptr A uintptr_t which the OFNumber should contain
* @return An initialized OFNumber
*/
- initWithUIntPtr: (uintptr_t)uintptr;
/**
* \brief Initializes an already allocated OFNumber with the specified float.
/*!
* @brief Initializes an already allocated OFNumber with the specified float.
*
* \param float_ A float which the OFNumber should contain
* \return An initialized OFNumber
* @param float_ A float which the OFNumber should contain
* @return An initialized OFNumber
*/
- initWithFloat: (float)float_;
/**
* \brief Initializes an already allocated OFNumber with the specified double.
/*!
* @brief Initializes an already allocated OFNumber with the specified double.
*
* \param double_ A double which the OFNumber should contain
* \return An initialized OFNumber
* @param double_ A double which the OFNumber should contain
* @return An initialized OFNumber
*/
- initWithDouble: (double)double_;
/**
* \brief Returns the type of the number.
/*!
* @brief Returns the type of the number.
*
* \return An of_number_type_t indicating the type of the number
* @return An of_number_type_t indicating the type of the number
*/
- (of_number_type_t)type;
/**
* \brief Returns the OFNumber as a BOOL.
/*!
* @brief Returns the OFNumber as a BOOL.
*
* \return The OFNumber as a BOOL
* @return The OFNumber as a BOOL
*/
- (BOOL)boolValue;
/**
* \brief Returns the OFNumber as a signed char.
/*!
* @brief Returns the OFNumber as a signed char.
*
* \return The OFNumber as a signed char
* @return The OFNumber as a signed char
*/
- (signed char)charValue;
/**
* \brief Returns the OFNumber as a signed short.
/*!
* @brief Returns the OFNumber as a signed short.
*
* \return The OFNumber as a short
* @return The OFNumber as a short
*/
- (signed short)shortValue;
/**
* \brief Returns the OFNumber as a signed int.
/*!
* @brief Returns the OFNumber as a signed int.
*
* \return The OFNumber as an int
* @return The OFNumber as an int
*/
- (signed int)intValue;
/**
* \brief Returns the OFNumber as a signed long.
/*!
* @brief Returns the OFNumber as a signed long.
*
* \return The OFNumber as a long
* @return The OFNumber as a long
*/
- (signed long)longValue;
/**
* \brief Returns the OFNumber as an unsigned char.
/*!
* @brief Returns the OFNumber as an unsigned char.
*
* \return The OFNumber as an unsigned char
* @return The OFNumber as an unsigned char
*/
- (unsigned char)unsignedCharValue;
/**
* \brief Returns the OFNumber as an unsigned short.
/*!
* @brief Returns the OFNumber as an unsigned short.
*
* \return The OFNumber as an unsigned short
* @return The OFNumber as an unsigned short
*/
- (unsigned short)unsignedShortValue;
/**
* \brief Returns the OFNumber as an unsigned int.
/*!
* @brief Returns the OFNumber as an unsigned int.
*
* \return The OFNumber as an unsigned int
* @return The OFNumber as an unsigned int
*/
- (unsigned int)unsignedIntValue;
/**
* \brief Returns the OFNumber as an unsigned long.
/*!
* @brief Returns the OFNumber as an unsigned long.
*
* \return The OFNumber as an unsigned long
* @return The OFNumber as an unsigned long
*/
- (unsigned long)unsignedLongValue;
/**
* \brief Returns the OFNumber as an int8_t.
/*!
* @brief Returns the OFNumber as an int8_t.
*
* \return The OFNumber as an int8_t
* @return The OFNumber as an int8_t
*/
- (int8_t)int8Value;
/**
* \brief Returns the OFNumber as an int16_t.
/*!
* @brief Returns the OFNumber as an int16_t.
*
* \return The OFNumber as an int16_t
* @return The OFNumber as an int16_t
*/
- (int16_t)int16Value;
/**
* \brief Returns the OFNumber as an int32_t.
/*!
* @brief Returns the OFNumber as an int32_t.
*
* \return The OFNumber as an int32_t
* @return The OFNumber as an int32_t
*/
- (int32_t)int32Value;
/**
* \brief Returns the OFNumber as an int64_t.
/*!
* @brief Returns the OFNumber as an int64_t.
*
* \return The OFNumber as an int64_t
* @return The OFNumber as an int64_t
*/
- (int64_t)int64Value;
/**
* \brief Returns the OFNumber as a uint8_t.
/*!
* @brief Returns the OFNumber as a uint8_t.
*
* \return The OFNumber as a uint8_t
* @return The OFNumber as a uint8_t
*/
- (uint8_t)uInt8Value;
/**
* \brief Returns the OFNumber as a uint16_t.
/*!
* @brief Returns the OFNumber as a uint16_t.
*
* \return The OFNumber as a uint16_t
* @return The OFNumber as a uint16_t
*/
- (uint16_t)uInt16Value;
/**
* \brief Returns the OFNumber as a uint32_t.
/*!
* @brief Returns the OFNumber as a uint32_t.
*
* \return The OFNumber as a uint32_t
* @return The OFNumber as a uint32_t
*/
- (uint32_t)uInt32Value;
/**
* \brief Returns the OFNumber as a uint64_t.
/*!
* @brief Returns the OFNumber as a uint64_t.
*
* \return The OFNumber as a uint64_t
* @return The OFNumber as a uint64_t
*/
- (uint64_t)uInt64Value;
/**
* \brief Returns the OFNumber as a size_t.
/*!
* @brief Returns the OFNumber as a size_t.
*
* \return The OFNumber as a size_t
* @return The OFNumber as a size_t
*/
- (size_t)sizeValue;
/**
* \brief Returns the OFNumber as an ssize_t.
/*!
* @brief Returns the OFNumber as an ssize_t.
*
* \return The OFNumber as an ssize_t
* @return The OFNumber as an ssize_t
*/
- (ssize_t)sSizeValue;
/**
* \brief Returns the OFNumber as an intmax_t.
/*!
* @brief Returns the OFNumber as an intmax_t.
*
* \return The OFNumber as an intmax_t
* @return The OFNumber as an intmax_t
*/
- (intmax_t)intMaxValue;
/**
* \brief Returns the OFNumber as a uintmax_t.
/*!
* @brief Returns the OFNumber as a uintmax_t.
*
* \return The OFNumber as a uintmax_t
* @return The OFNumber as a uintmax_t
*/
- (uintmax_t)uIntMaxValue;
/**
* \brief Returns the OFNumber as a ptrdiff_t.
/*!
* @brief Returns the OFNumber as a ptrdiff_t.
*
* \return The OFNumber as a ptrdiff_t
* @return The OFNumber as a ptrdiff_t
*/
- (ptrdiff_t)ptrDiffValue;
/**
* \brief Returns the OFNumber as an intptr_t.
/*!
* @brief Returns the OFNumber as an intptr_t.
*
* \return The OFNumber as an intptr_t
* @return The OFNumber as an intptr_t
*/
- (intptr_t)intPtrValue;
/**
* \brief Returns the OFNumber as a uintptr_t.
/*!
* @brief Returns the OFNumber as a uintptr_t.
*
* \return The OFNumber as a uintptr_t
* @return The OFNumber as a uintptr_t
*/
- (uintptr_t)uIntPtrValue;
/**
* \brief Returns the OFNumber as a float.
/*!
* @brief Returns the OFNumber as a float.
*
* \return The OFNumber as a float
* @return The OFNumber as a float
*/
- (float)floatValue;
/**
* \brief Returns the OFNumber as a double.
/*!
* @brief Returns the OFNumber as a double.
*
* \return The OFNumber as a double
* @return The OFNumber as a double
*/
- (double)doubleValue;
/**
* \brief Creates a new OFNumber by adding the specified number.
/*!
* @brief Creates a new OFNumber by adding the specified number.
*
* \param num The OFNumber to add
* \return A new autoreleased OFNumber added with the specified OFNumber
* @param num The OFNumber to add
* @return A new autoreleased OFNumber added with the specified OFNumber
*/
- (OFNumber*)numberByAddingNumber: (OFNumber*)num;
/**
* \brief Creates a new OFNumber by subtracting the specified number.
/*!
* @brief Creates a new OFNumber by subtracting the specified number.
*
* \param num The OFNumber to substract
* \return A new autoreleased OFNumber subtracted by the specified OFNumber
* @param num The OFNumber to substract
* @return A new autoreleased OFNumber subtracted by the specified OFNumber
*/
- (OFNumber*)numberBySubtractingNumber: (OFNumber*)num;
/**
* \brief Creates a new OFNumber by multiplying with the specified number.
/*!
* @brief Creates a new OFNumber by multiplying with the specified number.
*
* \param num The OFNumber to multiply with
* \return A new autoreleased OFNumber multiplied with the specified OFNumber
* @param num The OFNumber to multiply with
* @return A new autoreleased OFNumber multiplied with the specified OFNumber
*/
- (OFNumber*)numberByMultiplyingWithNumber: (OFNumber*)num;
/**
* \brief Creates a new OFNumber by dividing with with the specified number.
/*!
* @brief Creates a new OFNumber by dividing with with the specified number.
*
* \param num The OFNumber to divide by
* \return A new autoreleased OFNumber devided by the specified OFNumber
* @param num The OFNumber to divide by
* @return A new autoreleased OFNumber devided by the specified OFNumber
*/
- (OFNumber*)numberByDividingWithNumber: (OFNumber*)num;
/**
* \brief Creates a new OFNumber by ANDing with the specified number.
/*!
* @brief Creates a new OFNumber by ANDing with the specified number.
*
* Does not work with floating point types!
*
* \param num The number to AND with.
* \return A new autoreleased OFNumber ANDed with the specified OFNumber
* @param num The number to AND with.
* @return A new autoreleased OFNumber ANDed with the specified OFNumber
*/
- (OFNumber*)numberByANDingWithNumber: (OFNumber*)num;
/**
* \brief Creates a new OFNumber by ORing with the specified number.
/*!
* @brief Creates a new OFNumber by ORing with the specified number.
*
* Does not work with floating point types!
*
* \param num The number to OR with.
* \return A new autoreleased OFNumber ORed with the specified OFNumber
* @param num The number to OR with.
* @return A new autoreleased OFNumber ORed with the specified OFNumber
*/
- (OFNumber*)numberByORingWithNumber: (OFNumber*)num;
/**
* \brief Creates a new OFNumber by XORing with the specified number.
/*!
* @brief Creates a new OFNumber by XORing with the specified number.
*
* Does not work with floating point types!
*
* \param num The number to XOR with.
* \return A new autoreleased OFNumber XORed with the specified OFNumber
* @param num The number to XOR with.
* @return A new autoreleased OFNumber XORed with the specified OFNumber
*/
- (OFNumber*)numberByXORingWithNumber: (OFNumber*)num;
/**
* \brief Creates a new OFNumber by shifting to the left by the specified number
/*!
* @brief Creates a new OFNumber by shifting to the left by the specified number
* of bits.
*
* Does not work with floating point types!
*
* \param num The number of bits to shift to the left
* \return A new autoreleased OFNumber bitshifted to the left with the
* @param num The number of bits to shift to the left
* @return A new autoreleased OFNumber bitshifted to the left with the
* specified OFNumber
*/
- (OFNumber*)numberByShiftingLeftWithNumber: (OFNumber*)num;
/**
* \brief Creates a new OFNumber by shifting to the right by the specified
/*!
* @brief Creates a new OFNumber by shifting to the right by the specified
* number of bits.
*
* Does not work with floating point types!
*
* \param num The number of bits to shift to the right
* \return A new autoreleased OFNumber bitshifted to the right with the
* @param num The number of bits to shift to the right
* @return A new autoreleased OFNumber bitshifted to the right with the
* specified OFNumber
*/
- (OFNumber*)numberByShiftingRightWithNumber: (OFNumber*)num;
/**
* \brief Creates a new OFNumber by with the same value increased by one.
/*!
* @brief Creates a new OFNumber by with the same value increased by one.
*
* \return A new autoreleased OFNumber with the value increased by one.
* @return A new autoreleased OFNumber with the value increased by one.
*/
- (OFNumber*)numberByIncreasing;
/**
* \brief Creates a new OFNumber by with the same value decreased by one.
/*!
* @brief Creates a new OFNumber by with the same value decreased by one.
*
* \return A new autoreleased OFNumber with the value decreased by one.
* @return A new autoreleased OFNumber with the value decreased by one.
*/
- (OFNumber*)numberByDecreasing;
/**
* \brief Creates a new OFNumber with the remainder of a division with the
/*!
* @brief Creates a new OFNumber with the remainder of a division with the
* specified number.
*
* \param num The number to divide by
* \return The remainder of a division by the specified number
* @param num The number to divide by
* @return The remainder of a division by the specified number
*/
- (OFNumber*)remainderOfDivisionWithNumber: (OFNumber*)num;
@end
#ifndef NSINTEGER_DEFINED
/* Required for number literals to work */
@compatibility_alias NSNumber OFNumber;
#endif
|
Modified src/OFObject+Serialization.h
from [57a9644204]
to [165383aa87].
︙ | | |
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
-
-
+
+
-
-
+
+
-
+
|
extern "C" {
#endif
extern int _OFObject_Serialization_reference;
#ifdef __cplusplus
}
#endif
/**
* \brief A category that provides methods for serializing objects.
/*!
* @brief A category that provides methods for serializing objects.
*/
@interface OFObject (OFSerialization)
/**
* \brief Creates a string by serializing the receiver.
/*!
* @brief Creates a string by serializing the receiver.
*
* \return The object serialized as a string
* @return The object serialized as a string
*/
- (OFString*)stringBySerializing;
@end
|
Modified src/OFObject.h
from [de75aa3e70]
to [496d3ca31d].
︙ | | |
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
|
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
|
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
-
+
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
+
-
-
+
+
-
-
-
+
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
+
-
-
+
+
-
-
-
+
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
|
# define __bridge
# define __autoreleasing
#endif
#define OF_RETAIN_COUNT_MAX UINT_MAX
#define OF_NOT_FOUND SIZE_MAX
/**
* \brief A result of a comparison.
/*!
* @brief A result of a comparison.
*/
typedef enum of_comparison_result_t {
/// The left object is smaller than the right
OF_ORDERED_ASCENDING = -1,
/// Both objects are equal
OF_ORDERED_SAME = 0,
/// The left object is bigger than the right
OF_ORDERED_DESCENDING = 1
} of_comparison_result_t;
/**
* \brief An enum for storing endianess.
/*!
* @brief An enum for storing endianess.
*/
typedef enum of_byte_order_t {
OF_BYTE_ORDER_BIG_ENDIAN,
OF_BYTE_ORDER_LITTLE_ENDIAN
} of_byte_order_t;
/**
* \brief A range.
/*!
* @brief A range.
*/
typedef struct of_range_t {
/// The start of the range
size_t location;
/// The length of the range
size_t length;
} of_range_t;
/**
* \brief A point.
/*!
* @brief A point.
*/
typedef struct of_point_t {
float x;
float y;
} of_point_t;
/**
* \brief A dimension.
/*!
* @brief A dimension.
*/
typedef struct of_dimension_t {
float width;
float height;
} of_dimension_t;
/**
* \brief A rectangle.
/*!
* @brief A rectangle.
*/
typedef struct of_rectangle_t
{
of_point_t origin;
of_dimension_t size;
} of_rectangle_t;
@class OFString;
@class OFThread;
/**
* \brief The protocol which all root classes implement.
/*!
* @brief The protocol which all root classes implement.
*/
@protocol OFObject
/**
* \brief Returns the class of the object.
/*!
* @brief Returns the class of the object.
*
* \return The class of the object
* @return The class of the object
*/
- (Class)class;
/**
* \brief Returns a boolean whether the object of the specified kind.
/*!
* @brief Returns a boolean whether the object of the specified kind.
*
* \param class_ The class whose kind is checked
* \return A boolean whether the object is of the specified kind
* @param class_ The class whose kind is checked
* @return A boolean whether the object is of the specified kind
*/
- (BOOL)isKindOfClass: (Class)class_;
/**
* \brief Returns a boolean whether the object is a member of the specified
/*!
* @brief Returns a boolean whether the object is a member of the specified
* class.
*
* \param class_ The class for which the receiver is checked
* \return A boolean whether the object is a member of the specified class
* @param class_ The class for which the receiver is checked
* @return A boolean whether the object is a member of the specified class
*/
- (BOOL)isMemberOfClass: (Class)class_;
/**
* \brief Returns a boolean whether the object responds to the specified
/*!
* @brief Returns a boolean whether the object responds to the specified
* selector.
*
* \param selector The selector which should be checked for respondance
* \return A boolean whether the objects responds to the specified selector
* @param selector The selector which should be checked for respondance
* @return A boolean whether the objects responds to the specified selector
*/
- (BOOL)respondsToSelector: (SEL)selector;
/**
* \brief Checks whether the object conforms to the specified protocol.
/*!
* @brief Checks whether the object conforms to the specified protocol.
*
* \param protocol The protocol which should be checked for conformance
* \return A boolean whether the object conforms to the specified protocol
* @param protocol The protocol which should be checked for conformance
* @return A boolean whether the object conforms to the specified protocol
*/
- (BOOL)conformsToProtocol: (Protocol*)protocol;
/**
* \brief Returns the implementation for the specified selector.
/*!
* @brief Returns the implementation for the specified selector.
*
* \param selector The selector for which the method should be returned
* \return The implementation for the specified selector
* @param selector The selector for which the method should be returned
* @return The implementation for the specified selector
*/
- (IMP)methodForSelector: (SEL)selector;
/**
* \brief Returns the type encoding for the specified selector.
/*!
* @brief Returns the type encoding for the specified selector.
*
* \param selector The selector for which the type encoding should be returned
* \return The type encoding for the specified selector
* @param selector The selector for which the type encoding should be returned
* @return The type encoding for the specified selector
*/
- (const char*)typeEncodingForSelector: (SEL)selector;
/**
* \brief Performs the specified selector.
/*!
* @brief Performs the specified selector.
*
* \param selector The selector to perform
* \return The object returned by the method specified by the selector
* @param selector The selector to perform
* @return The object returned by the method specified by the selector
*/
- (id)performSelector: (SEL)selector;
/**
* \brief Performs the specified selector with the specified object.
/*!
* @brief Performs the specified selector with the specified object.
*
* \param selector The selector to perform
* \param object The object that is passed to the method specified by the
* @param selector The selector to perform
* @param object The object that is passed to the method specified by the
* selector
* \return The object returned by the method specified by the selector
* @return The object returned by the method specified by the selector
*/
- (id)performSelector: (SEL)selector
withObject: (id)object;
/**
* \brief Performs the specified selector with the specified objects.
/*!
* @brief Performs the specified selector with the specified objects.
*
* \param selector The selector to perform
* \param object1 The first object that is passed to the method specified by the
* @param selector The selector to perform
* @param object1 The first object that is passed to the method specified by the
* selector
* \param object2 The second object that is passed to the method specified by
* @param object2 The second object that is passed to the method specified by
* the selector
* \return The object returned by the method specified by the selector
* @return The object returned by the method specified by the selector
*/
- (id)performSelector: (SEL)selector
withObject: (id)object1
withObject: (id)object2;
/**
* \brief Checks two objects for equality.
/*!
* @brief Checks two objects for equality.
*
* Classes containing data (like strings, arrays, lists etc.) should reimplement
* this!
*
* \param object The object which should be tested for equality
* \return A boolean whether the object is equal to the specified object
* @param object The object which should be tested for equality
* @return A boolean whether the object is equal to the specified object
*/
- (BOOL)isEqual: (id)object;
/**
* \brief Calculates a hash for the object.
/*!
* @brief Calculates a hash for the object.
*
* Classes containing data (like strings, arrays, lists etc.) should reimplement
* this!
*
* \return A 32 bit hash for the object
* @return A 32 bit hash for the object
*/
- (uint32_t)hash;
/**
* \brief Increases the retain count.
/*!
* @brief Increases the retain count.
*
* Each time an object is released, the retain count gets decreased and the
* object deallocated if it reaches 0.
*/
- retain;
/**
* \brief Returns the retain count.
/*!
* @brief Returns the retain count.
*
* \return The retain count
* @return The retain count
*/
- (unsigned int)retainCount;
/**
* \brief Decreases the retain count.
/*!
* @brief Decreases the retain count.
*
* Each time an object is released, the retain count gets decreased and the
* object deallocated if it reaches 0.
*/
- (void)release;
/**
* \brief Adds the object to the topmost OFAutoreleasePool of the thread's
/*!
* @brief Adds the object to the topmost OFAutoreleasePool of the thread's
* autorelease pool stack.
*
* \return The object
* @return The object
*/
- autorelease;
/**
* \brief Returns the receiver.
/*!
* @brief Returns the receiver.
*
* \return The receiver
* @return The receiver
*/
- self;
/**
* \brief Returns whether the object is a proxy object.
/*!
* @brief Returns whether the object is a proxy object.
*
* \return A boolean whether the object is a proxy object
* @return A boolean whether the object is a proxy object
*/
- (BOOL)isProxy;
@end
/**
* \brief The root class for all other classes inside ObjFW.
/*!
* @brief The root class for all other classes inside ObjFW.
*/
@interface OFObject <OFObject>
{
@public
/// The class of the object
Class isa;
}
/**
* \brief A method which is called once when the class is loaded into the
/*!
* @brief A method which is called once when the class is loaded into the
* runtime.
*
* Derived classes can overide this to execute their own code when the class is
* loaded.
*/
+ (void)load;
/**
* \brief A method which is called the moment before the first call to the class
/*!
* @brief A method which is called the moment before the first call to the class
* is being made.
*
* Derived classes can override this to execute their own code on
* initialization. They should make sure to not execute any code if self is not
* the class itself, as it might happen that the method was called for a
* subclass which did not override this method.
*/
+ (void)initialize;
/**
* \brief Allocates memory for an instance of the class and sets up the memory
/*!
* @brief Allocates memory for an instance of the class and sets up the memory
* pool for the object.
*
* This method will never return nil, instead, it will throw an
* OFAllocFailedException.
*
* \return The allocated object
* @return The allocated object
*/
+ alloc;
/**
* \brief Allocates memory for a new instance and calls -[init] on it.
* \return An allocated and initialized object
/*!
* @brief Allocates memory for a new instance and calls -[init] on it.
* @return An allocated and initialized object
*/
+ new;
/**
* \brief Returns the class.
/*!
* @brief Returns the class.
*
* \return The class
* @return The class
*/
+ (Class)class;
/**
* \brief Returns the name of the class as a string.
/*!
* @brief Returns the name of the class as a string.
*
* \return The name of the class as a string
* @return The name of the class as a string
*/
+ (OFString*)className;
/**
* \brief Returns a boolean whether the class is a subclass of the specified
/*!
* @brief Returns a boolean whether the class is a subclass of the specified
* class.
*
* \param class_ The class which is checked for being a superclass
* \return A boolean whether the class is a subclass of the specified class
* @param class_ The class which is checked for being a superclass
* @return A boolean whether the class is a subclass of the specified class
*/
+ (BOOL)isSubclassOfClass: (Class)class_;
/**
* \brief Returns the superclass of the class.
/*!
* @brief Returns the superclass of the class.
*
* \return The superclass of the class
* @return The superclass of the class
*/
+ (Class)superclass;
/**
* \brief Checks whether instances of the class respond to a given selector.
/*!
* @brief Checks whether instances of the class respond to a given selector.
*
* \param selector The selector which should be checked for respondance
* \return A boolean whether instances of the class respond to the specified
* @param selector The selector which should be checked for respondance
* @return A boolean whether instances of the class respond to the specified
* selector
*/
+ (BOOL)instancesRespondToSelector: (SEL)selector;
/**
* \brief Checks whether the class conforms to a given protocol.
/*!
* @brief Checks whether the class conforms to a given protocol.
*
* \param protocol The protocol which should be checked for conformance
* \return A boolean whether the class conforms to the specified protocol
* @param protocol The protocol which should be checked for conformance
* @return A boolean whether the class conforms to the specified protocol
*/
+ (BOOL)conformsToProtocol: (Protocol*)protocol;
/**
* \brief Returns the implementation of the instance method for the specified
/*!
* @brief Returns the implementation of the instance method for the specified
* selector.
*
* \param selector The selector for which the method should be returned
* \return The implementation of the instance method for the specified selector
* @param selector The selector for which the method should be returned
* @return The implementation of the instance method for the specified selector
* or nil if it isn't implemented
*/
+ (IMP)instanceMethodForSelector: (SEL)selector;
/**
* \brief Returns the type encoding of the instance method for the specified
/*!
* @brief Returns the type encoding of the instance method for the specified
* selector.
*
* \param selector The selector for which the type encoding should be returned
* \return The type encoding of the instance method for the specified selector
* @param selector The selector for which the type encoding should be returned
* @return The type encoding of the instance method for the specified selector
*/
+ (const char*)typeEncodingForInstanceSelector: (SEL)selector;
/**
* \brief Returns a description for the class, which is usually the class name.
/*!
* @brief Returns a description for the class, which is usually the class name.
*
* This is mostly for debugging purposes.
*
* \return A description for the class, which is usually the class name
* @return A description for the class, which is usually the class name
*/
+ (OFString*)description;
/**
* \brief Replaces a class method with a class method from another class.
/*!
* @brief Replaces a class method with a class method from another class.
*
* \param selector The selector of the class method to replace
* \param class_ The class from which the new class method should be taken
* \return The old implementation
* @param selector The selector of the class method to replace
* @param class_ The class from which the new class method should be taken
* @return The old implementation
*/
+ (IMP)replaceClassMethod: (SEL)selector
withMethodFromClass: (Class)class_;
/**
* \brief Replaces an instance method with an instance method from another
/*!
* @brief Replaces an instance method with an instance method from another
* class.
*
* \param selector The selector of the instance method to replace
* \param class_ The class from which the new instance method should be taken
* \return The old implementation
* @param selector The selector of the instance method to replace
* @param class_ The class from which the new instance method should be taken
* @return The old implementation
*/
+ (IMP)replaceInstanceMethod: (SEL)selector
withMethodFromClass: (Class)class_;
/**
* \brief Replaces or adds a class method.
/*!
* @brief Replaces or adds a class method.
*
* If the method already exists, it is replaced and the old implementation
* returned. If the method does not exist, it is added with the specified type
* encoding.
*
* \param selector The selector for the new method
* \param implementation The implementation for the new method
* \param typeEncoding The type encoding for the new method
* \return The old implementation or nil if the method was added
* @param selector The selector for the new method
* @param implementation The implementation for the new method
* @param typeEncoding The type encoding for the new method
* @return The old implementation or nil if the method was added
*/
+ (IMP)replaceClassMethod: (SEL)selector
withImplementation: (IMP)implementation
typeEncoding: (const char*)typeEncoding;
/**
* \brief Replaces or adds an instance method.
/*!
* @brief Replaces or adds an instance method.
*
* If the method already exists, it is replaced and the old implementation
* returned. If the method does not exist, it is added with the specified type
* encoding.
*
* \param selector The selector for the new method
* \param implementation The implementation for the new method
* \param typeEncoding The type encoding for the new method
* \return The old implementation or nil if the method was added
* @param selector The selector for the new method
* @param implementation The implementation for the new method
* @param typeEncoding The type encoding for the new method
* @return The old implementation or nil if the method was added
*/
+ (IMP)replaceInstanceMethod: (SEL)selector
withImplementation: (IMP)implementation
typeEncoding: (const char*)typeEncoding;
/**
* \brief Adds all methods from the specified class to the class that is the
/*!
* @brief Adds all methods from the specified class to the class that is the
* receiver.
*
* Methods implemented by the receiving class itself will not be overridden,
* however methods implemented by its superclass will. Therefore it behaves
* similar as if the specified class is the superclass of the receiver.
*
* All methods from the superclasses of the specified class will also be added.
*
* If the specified class is a superclass of the receiving class, nothing is
* done.
*
* The methods which will be added from the specified class are not allowed to
* use super or access instance variables, instead they have to use accessors.
*
* \param class The class from which the instance methods should be inherited
* @param class The class from which the instance methods should be inherited
*/
+ (void)inheritMethodsFromClass: (Class)class_;
/**
* \brief Try to resolve the specified class method.
/*!
* @brief Try to resolve the specified class method.
*
* This method is called if a class method was not found, so that an
* implementation can be provided at runtime.
*
* \return Whether the method has been added to the class
* @return Whether the method has been added to the class
*/
+ (BOOL)resolveClassMethod: (SEL)selector;
/**
* \brief Try to resolve the specified instance method.
/*!
* @brief Try to resolve the specified instance method.
*
* This method is called if an instance method was not found, so that an
* implementation can be provided at runtime.
*
* \return Whether the method has been added to the class
* @return Whether the method has been added to the class
*/
+ (BOOL)resolveInstanceMethod: (SEL)selector;
/**
* \brief Initializes an already allocated object.
/*!
* @brief Initializes an already allocated object.
*
* Derived classes may override this, but need to do self = [super init] before
* they do any initialization themselves. init may never return nil, instead
* an exception (for example OFInitializationFailed) should be thrown.
*
* \return An initialized object
* @return An initialized object
*/
- init;
/**
* \brief Returns the name of the object's class.
/*!
* @brief Returns the name of the object's class.
*
* \return The name of the object's class
* @return The name of the object's class
*/
- (OFString*)className;
/**
* \brief Returns a description for the object.
/*!
* @brief Returns a description for the object.
*
* This is mostly for debugging purposes.
*
* \return A description for the object
* @return A description for the object
*/
- (OFString*)description;
/**
* \brief Allocates memory and stores it in the object's memory pool.
/*!
* @brief Allocates memory and stores it in the object's memory pool.
*
* It will be free'd automatically when the object is deallocated.
*
* \param size The size of the memory to allocate
* \return A pointer to the allocated memory
* @param size The size of the memory to allocate
* @return A pointer to the allocated memory
*/
- (void*)allocMemoryWithSize: (size_t)size;
/**
* \brief Allocates memory for the specified number of items and stores it in
/*!
* @brief Allocates memory for the specified number of items and stores it in
* the object's memory pool.
*
* It will be free'd automatically when the object is deallocated.
*
* \param size The size of each item to allocate
* \param count The number of items to allocate
* \return A pointer to the allocated memory
* @param size The size of each item to allocate
* @param count The number of items to allocate
* @return A pointer to the allocated memory
*/
- (void*)allocMemoryWithSize: (size_t)size
count: (size_t)count;
/**
* \brief Resizes memory in the object's memory pool to the specified size.
/*!
* @brief Resizes memory in the object's memory pool to the specified size.
*
* If the pointer is NULL, this is equivalent to allocating memory.
* If the size is 0, this is equivalent to freeing memory.
*
* \param pointer A pointer to the already allocated memory
* \param size The new size for the memory chunk
* \return A pointer to the resized memory chunk
* @param pointer A pointer to the already allocated memory
* @param size The new size for the memory chunk
* @return A pointer to the resized memory chunk
*/
- (void*)resizeMemory: (void*)pointer
size: (size_t)size;
/**
* \brief Resizes memory in the object's memory pool to the specific number of
/*!
* @brief Resizes memory in the object's memory pool to the specific number of
* items of the specified size.
*
* If the pointer is NULL, this is equivalent to allocating memory.
* If the size or number of items is 0, this is equivalent to freeing memory.
*
* \param pointer A pointer to the already allocated memory
* \param size The size of each item to resize to
* \param count The number of items to resize to
* \return A pointer to the resized memory chunk
* @param pointer A pointer to the already allocated memory
* @param size The size of each item to resize to
* @param count The number of items to resize to
* @return A pointer to the resized memory chunk
*/
- (void*)resizeMemory: (void*)pointer
size: (size_t)size
count: (size_t)count;
/**
* \brief Frees allocated memory and removes it from the object's memory pool.
/*!
* @brief Frees allocated memory and removes it from the object's memory pool.
*
* Does nothing if the pointer is NULL.
*
* \param pointer A pointer to the allocated memory
* @param pointer A pointer to the allocated memory
*/
- (void)freeMemory: (void*)pointer;
/**
* \brief Deallocates the object.
/*!
* @brief Deallocates the object.
*
* It is automatically called when the retain count reaches zero.
*
* This also frees all memory in its memory pool.
*/
- (void)dealloc;
/**
* \brief Performs the specified selector after the specified delay.
/*!
* @brief Performs the specified selector after the specified delay.
*
* \param selector The selector to perform
* \param delay The delay after which the selector will be performed
* @param selector The selector to perform
* @param delay The delay after which the selector will be performed
*/
- (void)performSelector: (SEL)selector
afterDelay: (double)delay;
/**
* \brief Performs the specified selector with the specified object after the
/*!
* @brief Performs the specified selector with the specified object after the
* specified delay.
*
* \param selector The selector to perform
* \param object The object that is passed to the method specified by the
* @param selector The selector to perform
* @param object The object that is passed to the method specified by the
* selector
* \param delay The delay after which the selector will be performed
* @param delay The delay after which the selector will be performed
*/
- (void)performSelector: (SEL)selector
withObject: (id)object
afterDelay: (double)delay;
/**
* \brief Performs the specified selector with the specified objects after the
/*!
* @brief Performs the specified selector with the specified objects after the
* specified delay.
*
* \param selector The selector to perform
* \param object1 The first object that is passed to the method specified by the
* @param selector The selector to perform
* @param object1 The first object that is passed to the method specified by the
* selector
* \param object2 The second object that is passed to the method specified by
* @param object2 The second object that is passed to the method specified by
* the selector
* \param delay The delay after which the selector will be performed
* @param delay The delay after which the selector will be performed
*/
- (void)performSelector: (SEL)selector
withObject: (id)object1
withObject: (id)object2
afterDelay: (double)delay;
/**
* \brief Performs the specified selector on the specified thread.
/*!
* @brief Performs the specified selector on the specified thread.
*
* \param selector The selector to perform
* \param thread The thread on which to perform the selector
* \param waitUntilDone Whether to wait until the perform finished
* @param selector The selector to perform
* @param thread The thread on which to perform the selector
* @param waitUntilDone Whether to wait until the perform finished
*/
- (void)performSelector: (SEL)selector
onThread: (OFThread*)thread
waitUntilDone: (BOOL)waitUntilDone;
/**
* \brief Performs the specified selector on the specified thread with the
/*!
* @brief Performs the specified selector on the specified thread with the
* specified object.
*
* \param selector The selector to perform
* \param thread The thread on which to perform the selector
* \param object The object that is passed to the method specified by the
* @param selector The selector to perform
* @param thread The thread on which to perform the selector
* @param object The object that is passed to the method specified by the
* selector
* \param waitUntilDone Whether to wait until the perform finished
* @param waitUntilDone Whether to wait until the perform finished
*/
- (void)performSelector: (SEL)selector
onThread: (OFThread*)thread
withObject: (id)object
waitUntilDone: (BOOL)waitUntilDone;
/**
* \brief Performs the specified selector on the specified thread with the
/*!
* @brief Performs the specified selector on the specified thread with the
* specified objects.
*
* \param selector The selector to perform
* \param thread The thread on which to perform the selector
* \param object1 The first object that is passed to the method specified by the
* @param selector The selector to perform
* @param thread The thread on which to perform the selector
* @param object1 The first object that is passed to the method specified by the
* selector
* \param object2 The second object that is passed to the method specified by
* @param object2 The second object that is passed to the method specified by
* the selector
* \param waitUntilDone Whether to wait until the perform finished
* @param waitUntilDone Whether to wait until the perform finished
*/
- (void)performSelector: (SEL)selector
onThread: (OFThread*)thread
withObject: (id)object1
withObject: (id)object2
waitUntilDone: (BOOL)waitUntilDone;
/**
* \brief Performs the specified selector on the main thread.
/*!
* @brief Performs the specified selector on the main thread.
*
* \param selector The selector to perform
* \param waitUntilDone Whether to wait until the perform finished
* @param selector The selector to perform
* @param waitUntilDone Whether to wait until the perform finished
*/
- (void)performSelectorOnMainThread: (SEL)selector
waitUntilDone: (BOOL)waitUntilDone;
/**
* \brief Performs the specified selector on the main thread with the specified
/*!
* @brief Performs the specified selector on the main thread with the specified
* object.
*
* \param selector The selector to perform
* \param object The object that is passed to the method specified by the
* @param selector The selector to perform
* @param object The object that is passed to the method specified by the
* selector
* \param waitUntilDone Whether to wait until the perform finished
* @param waitUntilDone Whether to wait until the perform finished
*/
- (void)performSelectorOnMainThread: (SEL)selector
withObject: (id)object
waitUntilDone: (BOOL)waitUntilDone;
/**
* \brief Performs the specified selector on the main thread with the specified
/*!
* @brief Performs the specified selector on the main thread with the specified
* objects.
*
* \param selector The selector to perform
* \param object1 The first object that is passed to the method specified by the
* @param selector The selector to perform
* @param object1 The first object that is passed to the method specified by the
* selector
* \param object2 The second object that is passed to the method specified by
* @param object2 The second object that is passed to the method specified by
* the selector
* \param waitUntilDone Whether to wait until the perform finished
* @param waitUntilDone Whether to wait until the perform finished
*/
- (void)performSelectorOnMainThread: (SEL)selector
withObject: (id)object1
withObject: (id)object2
waitUntilDone: (BOOL)waitUntilDone;
/**
* \brief Performs the specified selector on the specified thread after the
/*!
* @brief Performs the specified selector on the specified thread after the
* specified delay.
*
* \param selector The selector to perform
* \param thread The thread on which to perform the selector
* \param delay The delay after which the selector will be performed
* @param selector The selector to perform
* @param thread The thread on which to perform the selector
* @param delay The delay after which the selector will be performed
*/
- (void)performSelector: (SEL)selector
onThread: (OFThread*)thread
afterDelay: (double)delay;
/**
* \brief Performs the specified selector on the specified thread with the
/*!
* @brief Performs the specified selector on the specified thread with the
* specified object after the specified delay.
*
* \param selector The selector to perform
* \param thread The thread on which to perform the selector
* \param object The object that is passed to the method specified by the
* @param selector The selector to perform
* @param thread The thread on which to perform the selector
* @param object The object that is passed to the method specified by the
* selector
* \param delay The delay after which the selector will be performed
* @param delay The delay after which the selector will be performed
*/
- (void)performSelector: (SEL)selector
onThread: (OFThread*)thread
withObject: (id)object
afterDelay: (double)delay;
/**
* \brief Performs the specified selector on the specified thread with the
/*!
* @brief Performs the specified selector on the specified thread with the
* specified objects after the specified delay.
*
* \param selector The selector to perform
* \param thread The thread on which to perform the selector
* \param object1 The first object that is passed to the method specified by the
* @param selector The selector to perform
* @param thread The thread on which to perform the selector
* @param object1 The first object that is passed to the method specified by the
* selector
* \param object2 The second object that is passed to the method specified by
* @param object2 The second object that is passed to the method specified by
* the selector
* \param delay The delay after which the selector will be performed
* @param delay The delay after which the selector will be performed
*/
- (void)performSelector: (SEL)selector
onThread: (OFThread*)thread
withObject: (id)object1
withObject: (id)object2
afterDelay: (double)delay;
@end
/**
* \brief A protocol for the creation of copies.
/*!
* @brief A protocol for the creation of copies.
*/
@protocol OFCopying
/**
* \brief Copies the object.
/*!
* @brief Copies the object.
*
* For classes which can be immutable or mutable, this returns an immutable
* copy. If only a mutable version of the class exists, it creates a mutable
* copy.
*
* \return A copy of the object
* @return A copy of the object
*/
- copy;
@end
/**
* \brief A protocol for the creation of mutable copies.
/*!
* @brief A protocol for the creation of mutable copies.
*
* This protocol is implemented by objects that can be mutable and immutable
* and allows returning a mutable copy.
*/
@protocol OFMutableCopying
/**
* \brief Creates a mutable copy of the object.
/*!
* @brief Creates a mutable copy of the object.
*
* \return A mutable copy of the object
* @return A mutable copy of the object
*/
- mutableCopy;
@end
/**
* \brief A protocol for comparing objects.
/*!
* @brief A protocol for comparing objects.
*
* This protocol is implemented by objects that can be compared.
*/
@protocol OFComparing <OFObject>
/**
* \brief Compares the object with another object.
/*!
* @brief Compares the object with another object.
*
* \param object An object to compare the object to
* \return The result of the comparison
* @param object An object to compare the object to
* @return The result of the comparison
*/
- (of_comparison_result_t)compare: (id <OFComparing>)object;
@end
#import "OFObject+Serialization.h"
#ifdef __cplusplus
|
︙ | | |
Modified src/OFPlugin.h
from [5291cd6c54]
to [c5458c048c].
︙ | | |
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
-
-
+
+
-
-
+
+
-
-
+
+
|
#ifndef _WIN32
typedef void* of_plugin_handle_t;
#else
# include <windows.h>
typedef HMODULE of_plugin_handle_t;
#endif
/**
* \brief Provides a system for loading plugins at runtime.
/*!
* @brief Provides a system for loading plugins at runtime.
*/
@interface OFPlugin: OFObject
{
of_plugin_handle_t handle;
}
/**
* \brief Loads a plugin from a file.
/*!
* @brief Loads a plugin from a file.
*
* \param path Path to the plugin file. The suffix is appended automatically.
* \return The loaded plugin
* @param path Path to the plugin file. The suffix is appended automatically.
* @return The loaded plugin
*/
+ (id)pluginFromFile: (OFString*)path;
@end
|
Modified src/OFProcess.h
from [acd107a1ee]
to [7797d92ef6].
︙ | | |
25
26
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
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
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
|
25
26
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
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
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
|
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
|
#import "OFStream.h"
#ifdef _WIN32
# include <windows.h>
#endif
/**
* \brief A class for stream-like communication with a newly created process.
/*!
* @brief A class for stream-like communication with a newly created process.
*/
@interface OFProcess: OFStream
{
#ifndef _WIN32
pid_t pid;
int readPipe[2], writePipe[2];
#else
HANDLE readPipe[2], writePipe[2];
#endif
int status;
BOOL atEndOfStream;
}
/**
* \brief Creates a new OFProcess with the specified program and invokes the
/*!
* @brief Creates a new OFProcess with the specified program and invokes the
* program.
*
* \param program The program to execute. If it does not start with a slash, the
* @param program The program to execute. If it does not start with a slash, the
* search path specified in PATH is used.
* \return A new, autoreleased OFProcess.
* @return A new, autoreleased OFProcess.
*/
+ (instancetype)processWithProgram: (OFString*)program;
/**
* \brief Creates a new OFProcess with the specified program and arguments and
/*!
* @brief Creates a new OFProcess with the specified program and arguments and
* invokes the program.
*
* \param program The program to execute. If it does not start with a slash, the
* @param program The program to execute. If it does not start with a slash, the
* search path specified in PATH is used.
* \param arguments The arguments to pass to the program, or nil
* \return A new, autoreleased OFProcess.
* @param arguments The arguments to pass to the program, or nil
* @return A new, autoreleased OFProcess.
*/
+ (instancetype)processWithProgram: (OFString*)program
arguments: (OFArray*)arguments;
/**
* \brief Creates a new OFProcess with the specified program, program name and
/*!
* @brief Creates a new OFProcess with the specified program, program name and
* arguments and invokes the program.
*
* \param program The program to execute. If it does not start with a slash, the
* @param program The program to execute. If it does not start with a slash, the
* search path specified in PATH is used.
* \param programName The program name for the program to invoke (argv[0]).
* @param programName The program name for the program to invoke (argv[0]).
* Usually, this is equal to program.
* \param arguments The arguments to pass to the program, or nil
* \return A new, autoreleased OFProcess.
* @param arguments The arguments to pass to the program, or nil
* @return A new, autoreleased OFProcess.
*/
+ (instancetype)processWithProgram: (OFString*)program
programName: (OFString*)programName
arguments: (OFArray*)arguments;
/**
* \brief Initializes an already allocated OFProcess with the specified program
/*!
* @brief Initializes an already allocated OFProcess with the specified program
* and invokes the program.
*
* \param program The program to execute. If it does not start with a slash, the
* @param program The program to execute. If it does not start with a slash, the
* search path specified in PATH is used.
* \return An initialized OFProcess.
* @return An initialized OFProcess.
*/
- initWithProgram: (OFString*)program;
/**
* \brief Initializes an already allocated OFProcess with the specified program
/*!
* @brief Initializes an already allocated OFProcess with the specified program
* and arguments and invokes the program.
*
* \param program The program to execute. If it does not start with a slash, the
* @param program The program to execute. If it does not start with a slash, the
* search path specified in PATH is used.
* \param arguments The arguments to pass to the program, or nil
* \return An initialized OFProcess.
* @param arguments The arguments to pass to the program, or nil
* @return An initialized OFProcess.
*/
- initWithProgram: (OFString*)program
arguments: (OFArray*)arguments;
/**
* \brief Initializes an already allocated OFProcess with the specified program,
/*!
* @brief Initializes an already allocated OFProcess with the specified program,
* program name and arguments and invokes the program.
*
* \param program The program to execute. If it does not start with a slash, the
* @param program The program to execute. If it does not start with a slash, the
* search path specified in PATH is used.
* \param programName The program name for the program to invoke (argv[0]).
* @param programName The program name for the program to invoke (argv[0]).
* Usually, this is equal to program.
* \param arguments The arguments to pass to the program, or nil
* \return An initialized OFProcess.
* @param arguments The arguments to pass to the program, or nil
* @return An initialized OFProcess.
*/
- initWithProgram: (OFString*)program
programName: (OFString*)programName
arguments: (OFArray*)arguments;
/**
* \brief Closes the write direction of the process.
/*!
* @brief Closes the write direction of the process.
*
* This method needs to be called for some programs before data can be read,
* since some programs don't start processing before the write direction is
* closed.
*/
- (void)closeForWriting;
@end
|
Modified src/OFRecursiveMutex.h
from [6e1334c23c]
to [6d98d1fbf7].
︙ | | |
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
-
-
+
+
-
-
+
+
-
+
|
*/
#import "OFObject.h"
#import "OFLocking.h"
#import "threading.h"
/**
* \brief A class for creating mutual exclusions which can be entered
/*!
* @brief A class for creating mutual exclusions which can be entered
* recursively.
*/
@interface OFRecursiveMutex: OFObject <OFLocking>
{
of_rmutex_t rmutex;
BOOL initialized;
}
/**
* \brief Creates a new recursive mutex.
/*!
* @brief Creates a new recursive mutex.
*
* \return A new autoreleased recursive mutex.
* @return A new autoreleased recursive mutex.
*/
+ (instancetype)mutex;
@end
|
Modified src/OFRunLoop.h
from [50dd4708f7]
to [3854375363].
︙ | | |
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
47
48
49
50
51
52
53
|
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
47
48
49
50
51
52
53
|
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
|
#import "OFStreamObserver.h"
#import "OFTCPSocket.h"
@class OFSortedList;
@class OFTimer;
@class OFMutableDictionary;
/**
* \brief A class providing a run loop for the application and its processes.
/*!
* @brief A class providing a run loop for the application and its processes.
*/
@interface OFRunLoop: OFObject
{
OFSortedList *timersQueue;
OFStreamObserver *streamObserver;
OFMutableDictionary *readQueues;
}
/**
* \brief Returns the main run loop.
/*!
* @brief Returns the main run loop.
*
* \return The main run loop
* @return The main run loop
*/
+ (OFRunLoop*)mainRunLoop;
/**
* \brief Returns the run loop for the current thread.
/*!
* @brief Returns the run loop for the current thread.
*
* \return The run loop for the current thread
* @return The run loop for the current thread
*/
+ (OFRunLoop*)currentRunLoop;
+ (void)OF_setMainRunLoop;
+ (void)OF_addAsyncReadForStream: (OFStream*)stream
buffer: (void*)buffer
length: (size_t)length
|
︙ | | |
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
-
-
+
+
-
+
-
-
+
+
|
+ (void)OF_addAsyncReadLineForStream: (OFStream*)stream
encoding: (of_string_encoding_t)encoding
block: (of_stream_async_read_line_block_t)block;
+ (void)OF_addAsyncAcceptForTCPSocket: (OFTCPSocket*)socket
block: (of_tcpsocket_async_accept_block_t)block;
#endif
/**
* \brief Adds an OFTimer to the run loop.
/*!
* @brief Adds an OFTimer to the run loop.
*
* \param timer The timer to add
* @param timer The timer to add
*/
- (void)addTimer: (OFTimer*)timer;
/**
* \brief Starts the run loop.
/*!
* @brief Starts the run loop.
*/
- (void)run;
@end
|
Modified src/OFSHA1Hash.h
from [b512b356a3]
to [a8c4402420].
︙ | | |
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
-
-
+
+
|
* file.
*/
#import "OFHash.h"
#define OF_SHA1_DIGEST_SIZE 20
/**
* \brief A class which provides functions to create an SHA1 hash.
/*!
* @brief A class which provides functions to create an SHA1 hash.
*/
@interface OFSHA1Hash: OFHash
{
uint32_t state[5];
uint64_t count;
char buffer[64];
uint8_t digest[OF_SHA1_DIGEST_SIZE];
}
@end
|
Modified src/OFSeekableStream.h
from [38bd04ae73]
to [56eb0b9d36].
︙ | | |
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
91
92
93
94
95
96
97
98
|
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
91
92
93
94
95
96
97
98
|
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
|
# define __STDC_CONSTANT_MACROS
#endif
#include <sys/types.h>
#import "OFStream.h"
/**
* \brief A stream that supports seeking.
/*!
* @brief A stream that supports seeking.
*
* \note If you want to subclass this, override lowlevelSeekToOffset:,
* @note If you want to subclass this, override lowlevelSeekToOffset:,
* lowlevelSeekForwardWithOffset: and lowlevelSeekToOffsetRelativeToEnd:,
* but nothing else. Those are not defined in the headers, but do the
* actual work. OFSeekableStream uses those and makes them work together
* with the caching of OFStream. If you override these methods without
* the lowlevel prefix, you <i>will</i> break caching, get broken results
* and seek to the wrong position!
*/
@interface OFSeekableStream: OFStream
/**
* \brief Seeks to the specified absolute offset.
/*!
* @brief Seeks to the specified absolute offset.
*
* \param offset The offset in bytes
* @param offset The offset in bytes
*/
- (void)seekToOffset: (off_t)offset;
/**
* \brief Seeks to the specified offset, relative to the current location.
/*!
* @brief Seeks to the specified offset, relative to the current location.
*
* \param offset The offset relative to the current location
* \return The absolute offset
* @param offset The offset relative to the current location
* @return The absolute offset
*/
- (off_t)seekForwardWithOffset: (off_t)offset;
/**
* \brief Seeks to the specified offset, relative to the end of the stream.
/*!
* @brief Seeks to the specified offset, relative to the end of the stream.
*
* \param offset The offset relative to the end of the stream
* \return The absolute offset
* @param offset The offset relative to the end of the stream
* @return The absolute offset
*/
- (off_t)seekToOffsetRelativeToEnd: (off_t)offset;
/**
* \brief Seek the stream on the lowlevel.
/*!
* @brief Seek the stream on the lowlevel.
*
* \warning Do not call this directly!
* @warning Do not call this directly!
*
* Override this with this method with your actual seek implementation when
* subclassing!
*
* \param offset The offset to seek to
* @param offset The offset to seek to
*/
- (void)lowlevelSeekToOffset: (off_t)offset;
/**
* \brief Seek the stream on the lowlevel.
/*!
* @brief Seek the stream on the lowlevel.
*
* \warning Do not call this directly!
* @warning Do not call this directly!
*
* Override this with this method with your actual seek implementation when
* subclassing!
*
* \param offset The offset to seek forward to
* @param offset The offset to seek forward to
*/
- (off_t)lowlevelSeekForwardWithOffset: (off_t)offset;
/**
* \brief Seek the stream on the lowlevel.
/*!
* @brief Seek the stream on the lowlevel.
*
* \warning Do not call this directly!
* @warning Do not call this directly!
*
* Override this with this method with your actual seek implementation when
* subclassing!
*
* \param offset The offset to seek to, relative to the end
* @param offset The offset to seek to, relative to the end
*/
- (off_t)lowlevelSeekToOffsetRelativeToEnd: (off_t)offset;
@end
|
Modified src/OFSerialization.h
from [4ef5a34a02]
to [989b553d8c].
︙ | | |
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
|
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
|
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
|
#import "OFObject.h"
#define OF_SERIALIZATION_NS @"https://webkeks.org/objfw/serialization"
@class OFXMLElement;
/**
* \brief A protocol for serializing objects.
/*!
* @brief A protocol for serializing objects.
*/
@protocol OFSerialization
/**
* \brief Initializes the object with the specified XML element serialization.
/*!
* @brief Initializes the object with the specified XML element serialization.
*
* \param element An OFXMLElement with the serialized object
* \return An initialized object
* @param element An OFXMLElement with the serialized object
* @return An initialized object
*/
- initWithSerialization: (OFXMLElement*)element;
/**
* \brief Serializes the object into an XML element.
/*!
* @brief Serializes the object into an XML element.
*
* \return The object serialized into an XML element
* @return The object serialized into an XML element
*/
- (OFXMLElement*)XMLElementBySerializing;
@end
|
Modified src/OFSet.h
from [e720d47024]
to [45f4477f95].
︙ | | |
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
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
|
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
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
|
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
|
@class OFArray;
#ifdef OF_HAVE_BLOCKS
typedef void (^of_set_enumeration_block_t)(id object, BOOL *stop);
typedef BOOL (^of_set_filter_block_t)(id object);
#endif
/**
* \brief An abstract class for an unordered set of unique objects.
/*!
* @brief An abstract class for an unordered set of unique objects.
*/
@interface OFSet: OFObject <OFCollection, OFCopying, OFMutableCopying,
OFSerialization>
/**
* \brief Creates a new set.
/*!
* @brief Creates a new set.
*
* \return A new, autoreleased set
* @return A new, autoreleased set
*/
+ (instancetype)set;
/**
* \brief Creates a new set with the specified set.
/*!
* @brief Creates a new set with the specified set.
*
* \param set The set to initialize the set with
* \return A new, autoreleased set with the specified set
* @param set The set to initialize the set with
* @return A new, autoreleased set with the specified set
*/
+ (instancetype)setWithSet: (OFSet*)set;
/**
* \brief Creates a new set with the specified array.
/*!
* @brief Creates a new set with the specified array.
*
* \param array The array to initialize the set with
* \return A new, autoreleased set with the specified array
* @param array The array to initialize the set with
* @return A new, autoreleased set with the specified array
*/
+ (instancetype)setWithArray: (OFArray*)array;
/**
* \brief Creates a new set with the specified objects.
/*!
* @brief Creates a new set with the specified objects.
*
* \param firstObject The first object for the set
* \return A new, autoreleased set with the specified objects
* @param firstObject The first object for the set
* @return A new, autoreleased set with the specified objects
*/
+ (instancetype)setWithObjects: (id)firstObject, ...;
/**
* \brief Creates a new set with the specified objects.
/*!
* @brief Creates a new set with the specified objects.
*
* \param objects An array of objects for the set
* \param count The number of objects in the specified array
* \return A new, autoreleased set with the specified objects
* @param objects An array of objects for the set
* @param count The number of objects in the specified array
* @return A new, autoreleased set with the specified objects
*/
+ (instancetype)setWithObjects: (id const*)objects
count: (size_t)count;
/**
* \brief Initializes an already allocated set with the specified set.
/*!
* @brief Initializes an already allocated set with the specified set.
*
* \param set The set to initialize the set with
* \return An initialized set with the specified set
* @param set The set to initialize the set with
* @return An initialized set with the specified set
*/
- initWithSet: (OFSet*)set;
/**
* \brief Initializes an already allocated set with the specified array.
/*!
* @brief Initializes an already allocated set with the specified array.
*
* \param array The array to initialize the set with
* \return An initialized set with the specified array
* @param array The array to initialize the set with
* @return An initialized set with the specified array
*/
- initWithArray: (OFArray*)array;
/**
* \brief Initializes an already allocated set with the specified objects.
/*!
* @brief Initializes an already allocated set with the specified objects.
*
* \param firstObject The first object for the set
* \return An initialized set with the specified objects
* @param firstObject The first object for the set
* @return An initialized set with the specified objects
*/
- initWithObjects: (id)firstObject, ...;
/**
* \brief Initializes an already allocated set with the specified objects.
/*!
* @brief Initializes an already allocated set with the specified objects.
*
* \param objects An array of objects for the set
* \param count The number of objects in the specified array
* \return An initialized set with the specified objects
* @param objects An array of objects for the set
* @param count The number of objects in the specified array
* @return An initialized set with the specified objects
*/
- initWithObjects: (id const*)objects
count: (size_t)count;
/**
* \brief Initializes an already allocated set with the specified object and
/*!
* @brief Initializes an already allocated set with the specified object and
* va_list.
*
* \param firstObject The first object for the set
* \param arguments A va_list with the other objects
* \return An initialized set with the specified object and va_list
* @param firstObject The first object for the set
* @param arguments A va_list with the other objects
* @return An initialized set with the specified object and va_list
*/
- initWithObject: (id)firstObject
arguments: (va_list)arguments;
/**
* \brief Returns whether the receiver is a subset of the specified set.
/*!
* @brief Returns whether the receiver is a subset of the specified set.
*
* \return Whether the receiver is a subset of the specified set
* @return Whether the receiver is a subset of the specified set
*/
- (BOOL)isSubsetOfSet: (OFSet*)set;
/**
* \brief Returns whether the receiver and the specified set have at least one
/*!
* @brief Returns whether the receiver and the specified set have at least one
* object in common.
*
* \return Whether the receiver and the specified set have at least one object
* @return Whether the receiver and the specified set have at least one object
* in common
*/
- (BOOL)intersectsSet: (OFSet*)set;
#ifdef OF_HAVE_BLOCKS
/**
* \brief Executes a block for each object in the set.
/*!
* @brief Executes a block for each object in the set.
*
* \param block The block to execute for each object in the set
* @param block The block to execute for each object in the set
*/
- (void)enumerateObjectsUsingBlock: (of_set_enumeration_block_t)block;
/**
* \brief Creates a new set, only containing the objects for which the block
/*!
* @brief Creates a new set, only containing the objects for which the block
* returns YES.
*
* \param block A block which determines if the object should be in the new set
* \return A new, autoreleased OFSet
* @param block A block which determines if the object should be in the new set
* @return A new, autoreleased OFSet
*/
- (OFSet*)filteredSetUsingBlock: (of_set_filter_block_t)block;
#endif
@end
#import "OFMutableSet.h"
|
Modified src/OFSortedList.h
from [9c74d441f5]
to [4d01ae293c].
︙ | | |
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
-
-
+
+
-
+
-
-
+
+
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFList.h"
/**
* \brief A class which provides easy to use sorted double-linked lists.
/*!
* @brief A class which provides easy to use sorted double-linked lists.
*
* \warning Because the list is sorted, all methods inserting an object at a
* @warning Because the list is sorted, all methods inserting an object at a
* specific place are unavailable, even though they exist in OFList!
*/
@interface OFSortedList: OFList
/**
* \brief Adds the object to the list while keeping the list sorted.
/*!
* @brief Adds the object to the list while keeping the list sorted.
*
* \param object The object to add
* \return The list object for the object just added
* @param object The object to add
* @return The list object for the object just added
*/
- (of_list_object_t*)addObject: (id <OFComparing>)object;
@end
|
Modified src/OFStream.h
from [6c1eafc699]
to [03e8d32455].
︙ | | |
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
|
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
|
-
-
+
+
-
+
-
+
|
#ifdef OF_HAVE_BLOCKS
typedef BOOL (^of_stream_async_read_block_t)(OFStream*, void*, size_t,
OFException*);
typedef BOOL (^of_stream_async_read_line_block_t)(OFStream*, OFString*,
OFException*);
#endif
/**
* \brief A base class for different types of streams.
/*!
* @brief A base class for different types of streams.
*
* \warning Even though the OFCopying protocol is implemented, it does
* @warning Even though the OFCopying protocol is implemented, it does
* <i>not</i> return an independent copy of the stream, but instead
* retains it. This is so that the stream can be used as a key for a
* dictionary, so context can be associated with a stream. Using a
* stream in more than one thread at the same time is not thread-safe,
* even if copy was called to create one "instance" for every thread!
*
* \note If you want to subclass this, override lowlevelReadIntoBuffer:length:,
* @note If you want to subclass this, override lowlevelReadIntoBuffer:length:,
* lowlevelWriteBuffer:length: and lowlevelIsAtEndOfStream, but nothing
* else, as those are are the methods that do the actual work. OFStream
* uses those for all other methods and does all the caching and other
* stuff for you. If you override these methods without the lowlevel
* prefix, you <i>will</i> break caching and get broken results!
*/
@interface OFStream: OFObject <OFCopying>
|
︙ | | |
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
|
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
|
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
-
+
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
-
+
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
-
+
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
|
}
#ifdef OF_HAVE_PROPERTIES
@property (getter=isBlocking) BOOL blocking;
@property (readonly, getter=isAtEndOfStream) BOOL atEndOfStream;
#endif
/**
* \brief Returns a boolean whether the end of the stream has been reached.
/*!
* @brief Returns a boolean whether the end of the stream has been reached.
*
* \return A boolean whether the end of the stream has been reached
* @return A boolean whether the end of the stream has been reached
*/
- (BOOL)isAtEndOfStream;
/**
* \brief Reads <i>at most</i> size bytes from the stream into a buffer.
/*!
* @brief Reads <i>at most</i> size bytes from the stream into a buffer.
*
* On network streams, this might read less than the specified number of bytes.
* If you want to read exactly the specified number of bytes, use
* -readIntoBuffer:exactLength:. Note that a read can even return 0 bytes -
* this does not necessarily mean that the stream ended, so you still need to
* check isAtEndOfStream.
*
* \param buffer The buffer into which the data is read
* \param length The length of the data that should be read at most.
* @param buffer The buffer into which the data is read
* @param length The length of the data that should be read at most.
* The buffer <i>must</i> be at least this big!
* \return The number of bytes read
* @return The number of bytes read
*/
- (size_t)readIntoBuffer: (void*)buffer
length: (size_t)size;
/**
* \brief Reads exactly the specified length bytes from the stream into a
/*!
* @brief Reads exactly the specified length bytes from the stream into a
* buffer.
*
* Unlike readIntoBuffer:length:, this method does not return when less than the
* specified length has been read - instead, it waits until it got exactly the
* specified length.
*
* \warning Only call this when you know that specified amount of data is
* @warning Only call this when you know that specified amount of data is
* available! Otherwise you will get an exception!
*
* \param buffer The buffer into which the data is read
* \param length The length of the data that should be read.
* @param buffer The buffer into which the data is read
* @param length The length of the data that should be read.
* The buffer <i>must</i> be <i>exactly</i> this big!
*/
- (void)readIntoBuffer: (void*)buffer
exactLength: (size_t)length;
/**
* \brief Asyncronously reads <i>at most</i> size bytes from the stream into a
/*!
* @brief Asyncronously reads <i>at most</i> size bytes from the stream into a
* buffer.
*
* On network streams, this might read less than the specified number of bytes.
* If you want to read exactly the specified number of bytes, use
* asyncReadIntoBuffer:exactLength:block:. Note that a read can even return 0
* bytes - this does not necessarily mean that the stream ended, so you still
* need to check isAtEndOfStream.
*
* \param buffer The buffer into which the data is read.
* @param buffer The buffer into which the data is read.
* The buffer must not be free'd before the async read completed!
* \param length The length of the data that should be read at most.
* @param length The length of the data that should be read at most.
* The buffer <i>must</i> be at least this big!
* \param target The target on which the selector should be called when the
* @param target The target on which the selector should be called when the
* data has been received. If the method returns YES, it will be
* called again with the same buffer and maximum length when more
* data has been received. If you want the next method in the
* queue to handle the data received next, you need to return NO
* from the method.
* \param selector The selector to call on the target. The signature must be
* @param selector The selector to call on the target. The signature must be
* BOOL (OFStream *stream, void *buffer, size_t size,
* OFException *exception).
*/
- (void)asyncReadIntoBuffer: (void*)buffer
length: (size_t)length
target: (id)target
selector: (SEL)selector;
/**
* \brief Asyncronously reads exactly the specified length bytes from the
/*!
* @brief Asyncronously reads exactly the specified length bytes from the
* stream into a buffer.
*
* Unlike asyncReadIntoBuffer:length:block, this method does not call the
* method when less than the specified length has been read - instead, it waits
* until it got exactly the specified length, the stream has ended or an
* exception occurred.
*
* \param buffer The buffer into which the data is read
* \param length The length of the data that should be read.
* @param buffer The buffer into which the data is read
* @param length The length of the data that should be read.
* The buffer <i>must</i> be <i>exactly</i> this big!
* \param target The target on which the selector should be called when the
* @param target The target on which the selector should be called when the
* data has been received. If the method returns YES, it will be
* called again with the same buffer and exact length when more
* data has been received. If you want the next method in the
* queue to handle the data received next, you need to return NO
* from the method.
* \param selector The selector to call on the target. The signature must be
* @param selector The selector to call on the target. The signature must be
* BOOL (OFStream *stream, void *buffer, size_t size,
* OFException *exception).
*/
- (void)asyncReadIntoBuffer: (void*)buffer
exactLength: (size_t)length
target: (id)target
selector: (SEL)selector;
#ifdef OF_HAVE_BLOCKS
/**
* \brief Asyncronously reads <i>at most</i> size bytes from the stream into a
/*!
* @brief Asyncronously reads <i>at most</i> size bytes from the stream into a
* buffer.
*
* On network streams, this might read less than the specified number of bytes.
* If you want to read exactly the specified number of bytes, use
* asyncReadIntoBuffer:exactLength:block:. Note that a read can even return 0
* bytes - this does not necessarily mean that the stream ended, so you still
* need to check isAtEndOfStream.
*
* \param buffer The buffer into which the data is read.
* @param buffer The buffer into which the data is read.
* The buffer must not be free'd before the async read completed!
* \param length The length of the data that should be read at most.
* @param length The length of the data that should be read at most.
* The buffer <i>must</i> be at least this big!
* \param block The block to call when the data has been received.
* @param block The block to call when the data has been received.
* If the block returns YES, it will be called again with the same
* buffer and maximum length when more data has been received. If
* you want the next block in the queue to handle the data
* received next, you need to return NO from the block.
*/
- (void)asyncReadIntoBuffer: (void*)buffer
length: (size_t)length
block: (of_stream_async_read_block_t)block;
/**
* \brief Asyncronously reads exactly the specified length bytes from the
/*!
* @brief Asyncronously reads exactly the specified length bytes from the
* stream into a buffer.
*
* Unlike asyncReadIntoBuffer:length:block, this method does not invoke the
* block when less than the specified length has been read - instead, it waits
* until it got exactly the specified length, the stream has ended or an
* exception occurred.
*
* \param buffer The buffer into which the data is read
* \param length The length of the data that should be read.
* @param buffer The buffer into which the data is read
* @param length The length of the data that should be read.
* The buffer <i>must</i> be <i>exactly</i> this big!
* \param block The block to call when the data has been received.
* @param block The block to call when the data has been received.
* If the block returns YES, it will be called again with the same
* buffer and exact length when more data has been received. If
* you want the next block in the queue to handle the data
* received next, you need to return NO from the block.
*/
- (void)asyncReadIntoBuffer: (void*)buffer
exactLength: (size_t)length
block: (of_stream_async_read_block_t)block;
#endif
/**
* \brief Reads a uint8_t from the stream.
/*!
* @brief Reads a uint8_t from the stream.
*
* \warning Only call this when you know that enough data is available!
* @warning Only call this when you know that enough data is available!
* Otherwise you will get an exception!
*
* \return A uint8_t from the stream
* @return A uint8_t from the stream
*/
- (uint8_t)readInt8;
/**
* \brief Reads a uint16_t from the stream which is encoded in big endian.
/*!
* @brief Reads a uint16_t from the stream which is encoded in big endian.
*
* \warning Only call this when you know that enough data is available!
* @warning Only call this when you know that enough data is available!
* Otherwise you will get an exception!
*
* \return A uint16_t from the stream in native endianess
* @return A uint16_t from the stream in native endianess
*/
- (uint16_t)readBigEndianInt16;
/**
* \brief Reads a uint32_t from the stream which is encoded in big endian.
/*!
* @brief Reads a uint32_t from the stream which is encoded in big endian.
*
* \warning Only call this when you know that enough data is available!
* @warning Only call this when you know that enough data is available!
* Otherwise you will get an exception!
*
* \return A uint32_t from the stream in the native endianess
* @return A uint32_t from the stream in the native endianess
*/
- (uint32_t)readBigEndianInt32;
/**
* \brief Reads a uint64_t from the stream which is encoded in big endian.
/*!
* @brief Reads a uint64_t from the stream which is encoded in big endian.
*
* \warning Only call this when you know that enough data is available!
* @warning Only call this when you know that enough data is available!
* Otherwise you will get an exception!
*
* \return A uint64_t from the stream in the native endianess
* @return A uint64_t from the stream in the native endianess
*/
- (uint64_t)readBigEndianInt64;
/**
* \brief Reads a float from the stream which is encoded in big endian.
/*!
* @brief Reads a float from the stream which is encoded in big endian.
*
* \warning Only call this when you know that enough data is available!
* @warning Only call this when you know that enough data is available!
* Otherwise you will get an exception!
*
* \return A float from the stream in the native endianess
* @return A float from the stream in the native endianess
*/
- (float)readBigEndianFloat;
/**
* \brief Reads a double from the stream which is encoded in big endian.
/*!
* @brief Reads a double from the stream which is encoded in big endian.
*
* \warning Only call this when you know that enough data is available!
* @warning Only call this when you know that enough data is available!
* Otherwise you will get an exception!
*
* \return A double from the stream in the native endianess
* @return A double from the stream in the native endianess
*/
- (double)readBigEndianDouble;
/**
* \brief Reads the specified number of uint16_ts from the stream which are
/*!
* @brief Reads the specified number of uint16_ts from the stream which are
* encoded in big endian.
*
* \warning Only call this when you know that enough data is available!
* @warning Only call this when you know that enough data is available!
* Otherwise you will get an exception!
*
* \param nInt16s The number of uint16_ts to read
* \param buffer A buffer of sufficient size to store the specified number of
* @param nInt16s The number of uint16_ts to read
* @param buffer A buffer of sufficient size to store the specified number of
* uint16_ts
* \return The number of bytes read
* @return The number of bytes read
*/
- (size_t)readBigEndianInt16sIntoBuffer: (uint16_t*)buffer
count: (size_t)nInt16s;
/**
* \brief Reads the specified number of uint32_ts from the stream which are
/*!
* @brief Reads the specified number of uint32_ts from the stream which are
* encoded in big endian.
*
* \warning Only call this when you know that enough data is available!
* @warning Only call this when you know that enough data is available!
* Otherwise you will get an exception!
*
* \param nInt32s The number of uint32_ts to read
* \param buffer A buffer of sufficient size to store the specified number of
* @param nInt32s The number of uint32_ts to read
* @param buffer A buffer of sufficient size to store the specified number of
* uint32_ts
* \return The number of bytes read
* @return The number of bytes read
*/
- (size_t)readBigEndianInt32sIntoBuffer: (uint32_t*)buffer
count: (size_t)nInt32s;
/**
* \brief Reads the specified number of uint64_ts from the stream which are
/*!
* @brief Reads the specified number of uint64_ts from the stream which are
* encoded in big endian.
*
* \warning Only call this when you know that enough data is available!
* @warning Only call this when you know that enough data is available!
* Otherwise you will get an exception!
*
* \param nInt64s The number of uint64_ts to read
* \param buffer A buffer of sufficient size to store the specified number of
* @param nInt64s The number of uint64_ts to read
* @param buffer A buffer of sufficient size to store the specified number of
* uint64_ts
* \return The number of bytes read
* @return The number of bytes read
*/
- (size_t)readBigEndianInt64sIntoBuffer: (uint64_t*)buffer
count: (size_t)nInt64s;
/**
* \brief Reads the specified number of floats from the stream which are encoded
/*!
* @brief Reads the specified number of floats from the stream which are encoded
* in big endian.
*
* \warning Only call this when you know that enough data is available!
* @warning Only call this when you know that enough data is available!
* Otherwise you will get an exception!
*
* \param nFloatss The number of floats to read
* \param buffer A buffer of sufficient size to store the specified number of
* @param nFloatss The number of floats to read
* @param buffer A buffer of sufficient size to store the specified number of
* floats
* \return The number of bytes read
* @return The number of bytes read
*/
- (size_t)readBigEndianFloatsIntoBuffer: (float*)buffer
count: (size_t)nFloats;
/**
* \brief Reads the specified number of doubles from the stream which are
/*!
* @brief Reads the specified number of doubles from the stream which are
* encoded in big endian.
*
* \warning Only call this when you know that enough data is available!
* @warning Only call this when you know that enough data is available!
* Otherwise you will get an exception!
*
* \param nDoubles The number of doubles to read
* \param buffer A buffer of sufficient size to store the specified number of
* @param nDoubles The number of doubles to read
* @param buffer A buffer of sufficient size to store the specified number of
* doubles
* \return The number of bytes read
* @return The number of bytes read
*/
- (size_t)readBigEndianDoublesIntoBuffer: (double*)buffer
count: (size_t)nDoubles;
/**
* \brief Reads a uint16_t from the stream which is encoded in little endian.
/*!
* @brief Reads a uint16_t from the stream which is encoded in little endian.
*
* \warning Only call this when you know that enough data is available!
* @warning Only call this when you know that enough data is available!
* Otherwise you will get an exception!
*
* \return A uint16_t from the stream in native endianess
* @return A uint16_t from the stream in native endianess
*/
- (uint16_t)readLittleEndianInt16;
/**
* \brief Reads a uint32_t from the stream which is encoded in little endian.
/*!
* @brief Reads a uint32_t from the stream which is encoded in little endian.
*
* \warning Only call this when you know that enough data is available!
* @warning Only call this when you know that enough data is available!
* Otherwise you will get an exception!
*
* \return A uint32_t from the stream in the native endianess
* @return A uint32_t from the stream in the native endianess
*/
- (uint32_t)readLittleEndianInt32;
/**
* \brief Reads a uint64_t from the stream which is encoded in little endian.
/*!
* @brief Reads a uint64_t from the stream which is encoded in little endian.
*
* \warning Only call this when you know that enough data is available!
* @warning Only call this when you know that enough data is available!
* Otherwise you will get an exception!
*
* \return A uint64_t from the stream in the native endianess
* @return A uint64_t from the stream in the native endianess
*/
- (uint64_t)readLittleEndianInt64;
/**
* \brief Reads a float from the stream which is encoded in little endian.
/*!
* @brief Reads a float from the stream which is encoded in little endian.
*
* \warning Only call this when you know that enough data is available!
* @warning Only call this when you know that enough data is available!
* Otherwise you will get an exception!
*
* \return A float from the stream in the native endianess
* @return A float from the stream in the native endianess
*/
- (float)readLittleEndianFloat;
/**
* \brief Reads a double from the stream which is encoded in little endian.
/*!
* @brief Reads a double from the stream which is encoded in little endian.
*
* \warning Only call this when you know that enough data is available!
* @warning Only call this when you know that enough data is available!
* Otherwise you will get an exception!
*
* \return A double from the stream in the native endianess
* @return A double from the stream in the native endianess
*/
- (double)readLittleEndianDouble;
/**
* \brief Reads the specified number of uint16_ts from the stream which are
/*!
* @brief Reads the specified number of uint16_ts from the stream which are
* encoded in little endian.
*
* \warning Only call this when you know that enough data is available!
* @warning Only call this when you know that enough data is available!
* Otherwise you will get an exception!
*
* \param nInt16s The number of uint16_ts to read
* \param buffer A buffer of sufficient size to store the specified number of
* @param nInt16s The number of uint16_ts to read
* @param buffer A buffer of sufficient size to store the specified number of
* uint16_ts
* \return The number of bytes read
* @return The number of bytes read
*/
- (size_t)readLittleEndianInt16sIntoBuffer: (uint16_t*)buffer
count: (size_t)nInt16s;
/**
* \brief Reads the specified number of uint32_ts from the stream which are
/*!
* @brief Reads the specified number of uint32_ts from the stream which are
* encoded in little endian.
*
* \warning Only call this when you know that enough data is available!
* @warning Only call this when you know that enough data is available!
* Otherwise you will get an exception!
*
* \param nInt32s The number of uint32_ts to read
* \param buffer A buffer of sufficient size to store the specified number of
* @param nInt32s The number of uint32_ts to read
* @param buffer A buffer of sufficient size to store the specified number of
* uint32_ts
* \return The number of bytes read
* @return The number of bytes read
*/
- (size_t)readLittleEndianInt32sIntoBuffer: (uint32_t*)buffer
count: (size_t)nInt32s;
/**
* \brief Reads the specified number of uint64_ts from the stream which are
/*!
* @brief Reads the specified number of uint64_ts from the stream which are
* encoded in little endian.
*
* \warning Only call this when you know that enough data is available!
* @warning Only call this when you know that enough data is available!
* Otherwise you will get an exception!
*
* \param nInt64s The number of uint64_ts to read
* \param buffer A buffer of sufficient size to store the specified number of
* @param nInt64s The number of uint64_ts to read
* @param buffer A buffer of sufficient size to store the specified number of
* uint64_ts
* \return The number of bytes read
* @return The number of bytes read
*/
- (size_t)readLittleEndianInt64sIntoBuffer: (uint64_t*)buffer
count: (size_t)nInt64s;
/**
* \brief Reads the specified number of floats from the stream which are
/*!
* @brief Reads the specified number of floats from the stream which are
* encoded in little endian.
*
* \warning Only call this when you know that enough data is available!
* @warning Only call this when you know that enough data is available!
* Otherwise you will get an exception!
*
* \param nFloats The number of floats to read
* \param buffer A buffer of sufficient size to store the specified number of
* @param nFloats The number of floats to read
* @param buffer A buffer of sufficient size to store the specified number of
* floats
* \return The number of bytes read
* @return The number of bytes read
*/
- (size_t)readLittleEndianFloatsIntoBuffer: (float*)buffer
count: (size_t)nFloats;
/**
* \brief Reads the specified number of doubles from the stream which are
/*!
* @brief Reads the specified number of doubles from the stream which are
* encoded in little endian.
*
* \warning Only call this when you know that enough data is available!
* @warning Only call this when you know that enough data is available!
* Otherwise you will get an exception!
*
* \param nDoubles The number of doubles to read
* \param buffer A buffer of sufficient size to store the specified number of
* @param nDoubles The number of doubles to read
* @param buffer A buffer of sufficient size to store the specified number of
* doubles
* \return The number of bytes read
* @return The number of bytes read
*/
- (size_t)readLittleEndianDoublesIntoBuffer: (double*)buffer
count: (size_t)nDoubles;
/**
* \brief Reads the specified number of items with an item size of 1 from the
/*!
* @brief Reads the specified number of items with an item size of 1 from the
* stream and returns them in an OFDataArray.
*
* \warning Only call this when you know that enough data is available!
* @warning Only call this when you know that enough data is available!
* Otherwise you will get an exception!
*
* \param nItems The number of items to read
* \return An OFDataArray with at nItems items.
* @param nItems The number of items to read
* @return An OFDataArray with at nItems items.
*/
- (OFDataArray*)readDataArrayWithSize: (size_t)size;
/**
* \brief Reads the specified number of items with the specified item size from
/*!
* @brief Reads the specified number of items with the specified item size from
* the stream and returns them in an OFDataArray.
*
* \warning Only call this when you know that enough data is available!
* @warning Only call this when you know that enough data is available!
* Otherwise you will get an exception!
*
* \param itemSize The size of each item
* \param nItems The number of items to read
* \return An OFDataArray with at nItems items.
* @param itemSize The size of each item
* @param nItems The number of items to read
* @return An OFDataArray with at nItems items.
*/
- (OFDataArray*)readDataArrayWithItemSize: (size_t)itemSize
count: (size_t)nItems;
/**
* \brief Returns an OFDataArray with all the remaining data of the stream.
/*!
* @brief Returns an OFDataArray with all the remaining data of the stream.
*
* \return An OFDataArray with an item size of 1 with all the data of the
* @return An OFDataArray with an item size of 1 with all the data of the
* stream until the end of the stream is reached.
*/
- (OFDataArray*)readDataArrayTillEndOfStream;
/**
* \brief Reads a string with the specified length from the stream.
/*!
* @brief Reads a string with the specified length from the stream.
*
* If a \\0 appears in the stream, the string will be truncated at the \\0 and
* the rest of the bytes of the string will be lost. This way, reading from the
* stream will not break because of a \\0 because the specified number of bytes
* is still being read and only the string gets truncated.
*
* \warning Only call this when you know that enough data is available!
* @warning Only call this when you know that enough data is available!
* Otherwise you will get an exception!
*
* \param length The length (in bytes) of the string to read from the stream
* \return A string with the specified length
* @param length The length (in bytes) of the string to read from the stream
* @return A string with the specified length
*/
- (OFString*)readStringWithLength: (size_t)length;
/**
* \brief Reads a string with the specified encoding and length from the stream.
/*!
* @brief Reads a string with the specified encoding and length from the stream.
*
* If a \\0 appears in the stream, the string will be truncated at the \\0 and
* the rest of the bytes of the string will be lost. This way, reading from the
* stream will not break because of a \\0 because the specified number of bytes
* is still being read and only the string gets truncated.
*
* \warning Only call this when you know that enough data is available!
* @warning Only call this when you know that enough data is available!
* Otherwise you will get an exception!
*
* \param encoding The encoding of the string to read from the stream
* \param length The length (in bytes) of the string to read from the stream
* \return A string with the specified length
* @param encoding The encoding of the string to read from the stream
* @param length The length (in bytes) of the string to read from the stream
* @return A string with the specified length
*/
- (OFString*)readStringWithLength: (size_t)length
encoding: (of_string_encoding_t)encoding;
/**
* \brief Reads until a newline, \\0 or end of stream occurs.
/*!
* @brief Reads until a newline, \\0 or end of stream occurs.
*
* \return The line that was read, autoreleased, or nil if the end of the
* @return The line that was read, autoreleased, or nil if the end of the
* stream has been reached.
*/
- (OFString*)readLine;
/**
* \brief Reads with the specified encoding until a newline, \\0 or end of
/*!
* @brief Reads with the specified encoding until a newline, \\0 or end of
* stream occurs.
*
* \param encoding The encoding used by the stream
* \return The line that was read, autoreleased, or nil if the end of the
* @param encoding The encoding used by the stream
* @return The line that was read, autoreleased, or nil if the end of the
* stream has been reached.
*/
- (OFString*)readLineWithEncoding: (of_string_encoding_t)encoding;
/**
* \brief Asyncronously reads until a newline, \\0, end of stream or an
/*!
* @brief Asyncronously reads until a newline, \\0, end of stream or an
* exception occurs.
*
* \param target The target on which to call the selector when the data has
* @param target The target on which to call the selector when the data has
* been received. If the method returns YES, it will be called
* again when the next line has been received. If you want the
* next method in the queue to handle the next line, you need to
* return NO from the method
* \param selector The selector to call on the target. The signature must be
* @param selector The selector to call on the target. The signature must be
* BOOL (OFStream *stream, OFString *line,
* OFException *exception).
*/
- (void)asyncReadLineWithTarget: (id)target
selector: (SEL)selector;
/**
* \brief Asyncronously reads with the specified encoding until a newline, \\0,
/*!
* @brief Asyncronously reads with the specified encoding until a newline, \\0,
* end of stream or an exception occurs.
*
* \param encoding The encoding used by the stream
* \param target The target on which to call the selector when the data has
* @param encoding The encoding used by the stream
* @param target The target on which to call the selector when the data has
* been received. If the method returns YES, it will be called
* again when the next line has been received. If you want the
* next method in the queue to handle the next line, you need to
* return NO from the method
* \param selector The selector to call on the target. The signature must be
* @param selector The selector to call on the target. The signature must be
* BOOL (OFStream *stream, OFString *line,
* OFException *exception).
*/
- (void)asyncReadLineWithEncoding: (of_string_encoding_t)encoding
target: (id)target
selector: (SEL)selector;
#ifdef OF_HAVE_BLOCKS
/**
* \brief Asyncronously reads until a newline, \\0, end of stream or an
/*!
* @brief Asyncronously reads until a newline, \\0, end of stream or an
* exception occurs.
*
* \param block The block to call when the data has been received.
* @param block The block to call when the data has been received.
* If the block returns YES, it will be called again when the next
* line has been received. If you want the next block in the queue
* to handle the next line, you need to return NO from the block.
*/
- (void)asyncReadLineWithBlock: (of_stream_async_read_line_block_t)block;
/**
* \brief Asyncronously reads with the specified encoding until a newline, \\0,
/*!
* @brief Asyncronously reads with the specified encoding until a newline, \\0,
* end of stream or an exception occurs.
*
* \param encoding The encoding used by the stream
* \param block The block to call when the data has been received.
* @param encoding The encoding used by the stream
* @param block The block to call when the data has been received.
* If the block returns YES, it will be called again when the next
* line has been received. If you want the next block in the queue
* to handle the next line, you need to return NO from the block.
*/
- (void)asyncReadLineWithEncoding: (of_string_encoding_t)encoding
block: (of_stream_async_read_line_block_t)block;
#endif
/**
* \brief Tries to read a line from the stream (see readLine) and returns nil if
/*!
* @brief Tries to read a line from the stream (see readLine) and returns nil if
* no complete line has been received yet.
*
* \return The line that was read, autoreleased, or nil if the line is not
* @return The line that was read, autoreleased, or nil if the line is not
* complete yet
*/
- (OFString*)tryReadLine;
/**
* \brief Tries to read a line from the stream with the specified encoding (see
/*!
* @brief Tries to read a line from the stream with the specified encoding (see
* readLineWithEncoding:) and returns nil if no complete line has been
* received yet.
*
* \param encoding The encoding used by the stream
* \return The line that was read, autoreleased, or nil if the line is not
* @param encoding The encoding used by the stream
* @return The line that was read, autoreleased, or nil if the line is not
* complete yet
*/
- (OFString*)tryReadLineWithEncoding: (of_string_encoding_t)encoding;
/**
* \brief Reads until the specified string or \\0 is found or the end of stream
/*!
* @brief Reads until the specified string or \\0 is found or the end of stream
* occurs.
*
* \param delimiter The delimiter
* \return The line that was read, autoreleased, or nil if the end of the
* @param delimiter The delimiter
* @return The line that was read, autoreleased, or nil if the end of the
* stream has been reached.
*/
- (OFString*)readTillDelimiter: (OFString*)delimiter;
/**
* \brief Reads until the specified string or \\0 is found or the end of stream
/*!
* @brief Reads until the specified string or \\0 is found or the end of stream
* occurs.
*
* \param delimiter The delimiter
* \param encoding The encoding used by the stream
* \return The line that was read, autoreleased, or nil if the end of the
* @param delimiter The delimiter
* @param encoding The encoding used by the stream
* @return The line that was read, autoreleased, or nil if the end of the
* stream has been reached.
*/
- (OFString*)readTillDelimiter: (OFString*)delimiter
encoding: (of_string_encoding_t)encoding;
/**
* \brief Tries to reads until the specified string or \\0 is found or the end
/*!
* @brief Tries to reads until the specified string or \\0 is found or the end
* of stream (see readTillDelimiter:) and returns nil if not enough data
* has been received yet.
*
* \param delimiter The delimiter
* \return The line that was read, autoreleased, or nil if the end of the
* @param delimiter The delimiter
* @return The line that was read, autoreleased, or nil if the end of the
* stream has been reached.
*/
- (OFString*)tryReadTillDelimiter: (OFString*)delimiter;
/**
* \brief Tries to read until the specified string or \\0 is found or the end
/*!
* @brief Tries to read until the specified string or \\0 is found or the end
* of stream occurs (see readTIllDelimiterWithEncoding:) and returns nil
* if not enough data has been received yet.
*
* \param delimiter The delimiter
* \param encoding The encoding used by the stream
* \return The line that was read, autoreleased, or nil if the end of the
* @param delimiter The delimiter
* @param encoding The encoding used by the stream
* @return The line that was read, autoreleased, or nil if the end of the
* stream has been reached.
*/
- (OFString*)tryReadTillDelimiter: (OFString*)delimiter
encoding: (of_string_encoding_t)encoding;
/**
* \brief Returns a boolen whether writes are buffered.
/*!
* @brief Returns a boolen whether writes are buffered.
*
* \return A boolean whether writes are buffered
* @return A boolean whether writes are buffered
*/
- (BOOL)writeBufferEnabled;
/**
* \brief Enables or disables the write buffer.
/*!
* @brief Enables or disables the write buffer.
*
* \param enable Whether the write buffer should be enabled or disabled
* @param enable Whether the write buffer should be enabled or disabled
*/
- (void)setWriteBufferEnabled: (BOOL)enable;
/**
* \brief Writes everythig in the write buffer to the stream.
/*!
* @brief Writes everythig in the write buffer to the stream.
*/
- (void)flushWriteBuffer;
/**
* \brief Writes from a buffer into the stream.
/*!
* @brief Writes from a buffer into the stream.
*
* \param buffer The buffer from which the data is written to the stream
* \param length The length of the data that should be written
* @param buffer The buffer from which the data is written to the stream
* @param length The length of the data that should be written
*/
- (void)writeBuffer: (const void*)buffer
length: (size_t)length;
/**
* \brief Writes a uint8_t into the stream.
/*!
* @brief Writes a uint8_t into the stream.
*
* \param int8 A uint8_t
* @param int8 A uint8_t
*/
- (void)writeInt8: (uint8_t)int8;
/**
* \brief Writes a uint16_t into the stream, encoded in big endian.
/*!
* @brief Writes a uint16_t into the stream, encoded in big endian.
*
* \param int16 A uint16_t
* @param int16 A uint16_t
*/
- (void)writeBigEndianInt16: (uint16_t)int16;
/**
* \brief Writes a uint32_t into the stream, encoded in big endian.
/*!
* @brief Writes a uint32_t into the stream, encoded in big endian.
*
* \param int32 A uint32_t
* @param int32 A uint32_t
*/
- (void)writeBigEndianInt32: (uint32_t)int32;
/**
* \brief Writes a uint64_t into the stream, encoded in big endian.
/*!
* @brief Writes a uint64_t into the stream, encoded in big endian.
*
* \param int64 A uint64_t
* @param int64 A uint64_t
*/
- (void)writeBigEndianInt64: (uint64_t)int64;
/**
* \brief Writes a float into the stream, encoded in big endian.
/*!
* @brief Writes a float into the stream, encoded in big endian.
*
* \param float_ A float
* @param float_ A float
*/
- (void)writeBigEndianFloat: (float)float_;
/**
* \brief Writes a double into the stream, encoded in big endian.
/*!
* @brief Writes a double into the stream, encoded in big endian.
*
* \param double_ A double
* @param double_ A double
*/
- (void)writeBigEndianDouble: (double)double_;
/**
* \brief Writes the specified number of uint16_ts into the stream, encoded in
/*!
* @brief Writes the specified number of uint16_ts into the stream, encoded in
* big endian.
*
* \param nInt16 The number of uint16_ts to write
* \param buffer The buffer from which the data is written to the stream after
* @param nInt16 The number of uint16_ts to write
* @param buffer The buffer from which the data is written to the stream after
* it has been byte swapped if necessary
* \return The number of bytes written to the stream
* @return The number of bytes written to the stream
*/
- (size_t)writeBigEndianInt16s: (const uint16_t*)buffer
count: (size_t)nInt16s;
/**
* \brief Writes the specified number of uint32_ts into the stream, encoded in
/*!
* @brief Writes the specified number of uint32_ts into the stream, encoded in
* big endian.
*
* \param nInt32 The number of uint32_ts to write
* \param buffer The buffer from which the data is written to the stream after
* @param nInt32 The number of uint32_ts to write
* @param buffer The buffer from which the data is written to the stream after
* it has been byte swapped if necessary
* \return The number of bytes written to the stream
* @return The number of bytes written to the stream
*/
- (size_t)writeBigEndianInt32s: (const uint32_t*)buffer
count: (size_t)nInt32s;
/**
* \brief Writes the specified number of uint64_ts into the stream, encoded in
/*!
* @brief Writes the specified number of uint64_ts into the stream, encoded in
* big endian.
*
* \param nInt64 The number of uint64_ts to write
* \param buffer The buffer from which the data is written to the stream after
* @param nInt64 The number of uint64_ts to write
* @param buffer The buffer from which the data is written to the stream after
* it has been byte swapped if necessary
* \return The number of bytes written to the stream
* @return The number of bytes written to the stream
*/
- (size_t)writeBigEndianInt64s: (const uint64_t*)buffer
count: (size_t)nInt64s;
/**
* \brief Writes the specified number of floats into the stream, encoded in big
/*!
* @brief Writes the specified number of floats into the stream, encoded in big
* endian.
*
* \param nFloats The number of floats to write
* \param buffer The buffer from which the data is written to the stream after
* @param nFloats The number of floats to write
* @param buffer The buffer from which the data is written to the stream after
* it has been byte swapped if necessary
* \return The number of bytes written to the stream
* @return The number of bytes written to the stream
*/
- (size_t)writeBigEndianFloats: (const float*)buffer
count: (size_t)nFloats;
/**
* \brief Writes the specified number of doubles into the stream, encoded in
/*!
* @brief Writes the specified number of doubles into the stream, encoded in
* big endian.
*
* \param nDoubles The number of doubles to write
* \param buffer The buffer from which the data is written to the stream after
* @param nDoubles The number of doubles to write
* @param buffer The buffer from which the data is written to the stream after
* it has been byte swapped if necessary
* \return The number of bytes written to the stream
* @return The number of bytes written to the stream
*/
- (size_t)writeBigEndianDoubles: (const double*)buffer
count: (size_t)nDoubles;
/**
* \brief Writes a uint16_t into the stream, encoded in little endian.
/*!
* @brief Writes a uint16_t into the stream, encoded in little endian.
*
* \param int16 A uint16_t
* @param int16 A uint16_t
*/
- (void)writeLittleEndianInt16: (uint16_t)int16;
/**
* \brief Writes a uint32_t into the stream, encoded in little endian.
/*!
* @brief Writes a uint32_t into the stream, encoded in little endian.
*
* \param int32 A uint32_t
* @param int32 A uint32_t
*/
- (void)writeLittleEndianInt32: (uint32_t)int32;
/**
* \brief Writes a uint64_t into the stream, encoded in little endian.
/*!
* @brief Writes a uint64_t into the stream, encoded in little endian.
*
* \param int64 A uint64_t
* @param int64 A uint64_t
*/
- (void)writeLittleEndianInt64: (uint64_t)int64;
/**
* \brief Writes a float into the stream, encoded in little endian.
/*!
* @brief Writes a float into the stream, encoded in little endian.
*
* \param float_ A float
* @param float_ A float
*/
- (void)writeLittleEndianFloat: (float)float_;
/**
* \brief Writes a double into the stream, encoded in little endian.
/*!
* @brief Writes a double into the stream, encoded in little endian.
*
* \param double_ A double
* @param double_ A double
*/
- (void)writeLittleEndianDouble: (double)double_;
/**
* \brief Writes the specified number of uint16_ts into the stream, encoded in
/*!
* @brief Writes the specified number of uint16_ts into the stream, encoded in
* little endian.
*
* \param nInt16 The number of uint16_ts to write
* \param buffer The buffer from which the data is written to the stream after
* @param nInt16 The number of uint16_ts to write
* @param buffer The buffer from which the data is written to the stream after
* it has been byte swapped if necessary
* \return The number of bytes written to the stream
* @return The number of bytes written to the stream
*/
- (size_t)writeLittleEndianInt16s: (const uint16_t*)buffer
count: (size_t)nInt16s;
/**
* \brief Writes the specified number of uint32_ts into the stream, encoded in
/*!
* @brief Writes the specified number of uint32_ts into the stream, encoded in
* little endian.
*
* \param nInt32 The number of uint32_ts to write
* \param buffer The buffer from which the data is written to the stream after
* @param nInt32 The number of uint32_ts to write
* @param buffer The buffer from which the data is written to the stream after
* it has been byte swapped if necessary
* \return The number of bytes written to the stream
* @return The number of bytes written to the stream
*/
- (size_t)writeLittleEndianInt32s: (const uint32_t*)buffer
count: (size_t)nInt32s;
/**
* \brief Writes the specified number of uint64_ts into the stream, encoded in
/*!
* @brief Writes the specified number of uint64_ts into the stream, encoded in
* little endian.
*
* \param nInt64 The number of uint64_ts to write
* \param buffer The buffer from which the data is written to the stream after
* @param nInt64 The number of uint64_ts to write
* @param buffer The buffer from which the data is written to the stream after
* it has been byte swapped if necessary
* \return The number of bytes written to the stream
* @return The number of bytes written to the stream
*/
- (size_t)writeLittleEndianInt64s: (const uint64_t*)buffer
count: (size_t)nInt64s;
/**
* \brief Writes the specified number of floats into the stream, encoded in
/*!
* @brief Writes the specified number of floats into the stream, encoded in
* little endian.
*
* \param nFloats The number of floats to write
* \param buffer The buffer from which the data is written to the stream after
* @param nFloats The number of floats to write
* @param buffer The buffer from which the data is written to the stream after
* it has been byte swapped if necessary
* \return The number of bytes written to the stream
* @return The number of bytes written to the stream
*/
- (size_t)writeLittleEndianFloats: (const float*)buffer
count: (size_t)nFloats;
/**
* \brief Writes the specified number of doubles into the stream, encoded in
/*!
* @brief Writes the specified number of doubles into the stream, encoded in
* little endian.
*
* \param nDoubles The number of doubles to write
* \param buffer The buffer from which the data is written to the stream after
* @param nDoubles The number of doubles to write
* @param buffer The buffer from which the data is written to the stream after
* it has been byte swapped if necessary
* \return The number of bytes written to the stream
* @return The number of bytes written to the stream
*/
- (size_t)writeLittleEndianDoubles: (const double*)buffer
count: (size_t)nDoubles;
/**
* \brief Writes from an OFDataArray into the stream.
/*!
* @brief Writes from an OFDataArray into the stream.
*
* \param dataArray The OFDataArray to write into the stream
* \return The number of bytes written
* @param dataArray The OFDataArray to write into the stream
* @return The number of bytes written
*/
- (size_t)writeDataArray: (OFDataArray*)dataArray;
/**
* \brief Writes a string into the stream, without the trailing zero.
/*!
* @brief Writes a string into the stream, without the trailing zero.
*
* \param string The string from which the data is written to the stream
* \return The number of bytes written
* @param string The string from which the data is written to the stream
* @return The number of bytes written
*/
- (size_t)writeString: (OFString*)string;
/**
* \brief Writes a string into the stream with a trailing newline.
/*!
* @brief Writes a string into the stream with a trailing newline.
*
* \param string The string from which the data is written to the stream
* \return The number of bytes written
* @param string The string from which the data is written to the stream
* @return The number of bytes written
*/
- (size_t)writeLine: (OFString*)string;
/**
* \brief Writes a formatted string into the stream.
/*!
* @brief Writes a formatted string into the stream.
*
* See printf for the format syntax. As an addition, %@ is available as format
* specifier for objects.
*
* \param format A string used as format
* \return The number of bytes written
* @param format A string used as format
* @return The number of bytes written
*/
- (size_t)writeFormat: (OFConstantString*)format, ...;
/**
* \brief Writes a formatted string into the stream.
/*!
* @brief Writes a formatted string into the stream.
*
* See printf for the format syntax. As an addition, %@ is available as format
* specifier for objects.
*
* \param format A string used as format
* \param arguments The arguments used in the format string
* \return The number of bytes written
* @param format A string used as format
* @param arguments The arguments used in the format string
* @return The number of bytes written
*/
- (size_t)writeFormat: (OFConstantString*)format
arguments: (va_list)arguments;
/**
* \brief Returns the number of bytes still present in the internal read cache.
/*!
* @brief Returns the number of bytes still present in the internal read cache.
*
* \return The number of bytes still present in the internal read cache.
* @return The number of bytes still present in the internal read cache.
*/
- (size_t)pendingBytes;
/**
* \brief Returns whether the stream is in blocking mode.
/*!
* @brief Returns whether the stream is in blocking mode.
*
* \return Whether the stream is in blocking mode
* @return Whether the stream is in blocking mode
*/
- (BOOL)isBlocking;
/**
* \brief Enables or disables non-blocking I/O.
/*!
* @brief Enables or disables non-blocking I/O.
*
* By default, a stream is in blocking mode.
* On Win32, this currently only works for sockets!
*
* \param enable Whether the stream should be blocking
* @param enable Whether the stream should be blocking
*/
- (void)setBlocking: (BOOL)enable;
/**
* \brief Returns the file descriptor for the read end of the stream.
/*!
* @brief Returns the file descriptor for the read end of the stream.
*
* \return The file descriptor for the read end of the stream
* @return The file descriptor for the read end of the stream
*/
- (int)fileDescriptorForReading;
/**
* \brief Returns the file descriptor for the write end of the stream.
/*!
* @brief Returns the file descriptor for the write end of the stream.
*
* \return The file descriptor for the write end of the stream
* @return The file descriptor for the write end of the stream
*/
- (int)fileDescriptorForWriting;
/**
* \brief Closes the stream.
/*!
* @brief Closes the stream.
*/
- (void)close;
/**
* \brief Performs a lowlevel read.
/*!
* @brief Performs a lowlevel read.
*
* \warning Do not call this directly!
* @warning Do not call this directly!
*
* Override this method with your actual read implementation when subclassing!
*
* \param buffer The buffer for the data to read
* \param length The length of the buffer
* \return The number of bytes read
* @param buffer The buffer for the data to read
* @param length The length of the buffer
* @return The number of bytes read
*/
- (size_t)lowlevelReadIntoBuffer: (void*)buffer
length: (size_t)length;
/**
* \brief Performs a lowlevel write.
/*!
* @brief Performs a lowlevel write.
*
* \warning Do not call this directly!
* @warning Do not call this directly!
*
* Override this method with your actual write implementation when subclassing!
*
* \param buffer The buffer with the data to write
* \param length The length of the data to write
* @param buffer The buffer with the data to write
* @param length The length of the data to write
*/
- (void)lowlevelWriteBuffer: (const void*)buffer
length: (size_t)length;
/**
* \brief Returns whether the lowlevel is at the end of the stream.
/*!
* @brief Returns whether the lowlevel is at the end of the stream.
*
* \warning Do not call this directly!
* @warning Do not call this directly!
*
* Override this method with your actual end of stream checking implementation
* when subclassing!
*
* \return Whether the lowlevel is at the end of the stream
* @return Whether the lowlevel is at the end of the stream
*/
- (BOOL)lowlevelIsAtEndOfStream;
- (BOOL)OF_isWaitingForDelimiter;
@end
|
Modified src/OFStreamObserver.h
from [85b360a246]
to [714bdc609e].
︙ | | |
26
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
26
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
|
@class OFStream;
@class OFMutableArray;
@class OFMutableDictionary;
@class OFDataArray;
@class OFMutex;
/**
* \brief A protocol that needs to be implemented by delegates for
/*!
* @brief A protocol that needs to be implemented by delegates for
* OFStreamObserver.
*/
#ifndef OF_STREAM_OBSERVER_M
@protocol OFStreamObserverDelegate <OFObject>
#else
@protocol OFStreamObserverDelegate
#endif
#ifdef OF_HAVE_OPTIONAL_PROTOCOLS
@optional
#endif
/**
* \brief This callback is called when a stream did get ready for reading.
/*!
* @brief This callback is called when a stream did get ready for reading.
*
* NOTE: When -[tryReadLine] or -[tryReadTillDelimiter:] has been called on the
* the stream, this callback will not be called again until new data has
* been received, even though there is still data in the cache. The reason
* for this is to prevent spinning in a loop when there is an incomplete
* string in the cache. Once the string is complete, the callback will be
* called again if there is data in the cache.
*
* \param stream The stream which did become ready for reading
* @param stream The stream which did become ready for reading
*/
- (void)streamIsReadyForReading: (OFStream*)stream;
/**
* \brief This callback is called when a stream did get ready for writing.
/*!
* @brief This callback is called when a stream did get ready for writing.
*
* \param stream The stream which did become ready for writing
* @param stream The stream which did become ready for writing
*/
- (void)streamIsReadyForWriting: (OFStream*)stream;
/**
* \brief This callback is called when an exception occurred on the stream.
/*!
* @brief This callback is called when an exception occurred on the stream.
*
* \param stream The stream on which an exception occurred
* @param stream The stream on which an exception occurred
*/
- (void)streamDidReceiveException: (OFStream*)stream;
@end
/**
* \brief A class that can observe multiple streams at once.
/*!
* @brief A class that can observe multiple streams at once.
*
* Note: Currently, Win32 can only observe sockets and not files!
*/
@interface OFStreamObserver: OFObject
{
OFMutableArray *readStreams;
OFMutableArray *writeStreams;
|
︙ | | |
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
|
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
|
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
|
OFMutex *mutex;
}
#ifdef OF_HAVE_PROPERTIES
@property (assign) id <OFStreamObserverDelegate> delegate;
#endif
/**
* \brief Creates a new OFStreamObserver.
/*!
* @brief Creates a new OFStreamObserver.
*
* \return A new, autoreleased OFStreamObserver
* @return A new, autoreleased OFStreamObserver
*/
+ (instancetype)observer;
/**
* \brief Returns the delegate for the OFStreamObserver.
/*!
* @brief Returns the delegate for the OFStreamObserver.
*
* \return The delegate for the OFStreamObserver
* @return The delegate for the OFStreamObserver
*/
- (id <OFStreamObserverDelegate>)delegate;
/**
* \brief Sets the delegate for the OFStreamObserver.
/*!
* @brief Sets the delegate for the OFStreamObserver.
*
* \param delegate The delegate for the OFStreamObserver
* @param delegate The delegate for the OFStreamObserver
*/
- (void)setDelegate: (id <OFStreamObserverDelegate>)delegate;
/**
* \brief Adds a stream to observe for reading.
/*!
* @brief Adds a stream to observe for reading.
*
* This is also used to observe a listening socket for incoming connections,
* which then triggers a read event for the observed stream.
*
* It is recommended that the stream you add is set to non-blocking mode.
*
* If there is an -[observe] call blocking, it will be canceled. The reason for
* this is to prevent blocking even though the new added stream is ready.
*
* \param stream The stream to observe for reading
* @param stream The stream to observe for reading
*/
- (void)addStreamForReading: (OFStream*)stream;
/**
* \brief Adds a stream to observe for writing.
/*!
* @brief Adds a stream to observe for writing.
*
* It is recommended that the stream you add is set to non-blocking mode.
*
* If there is an -[observe] call blocking, it will be canceled. The reason for
* this is to prevent blocking even though the new added stream is ready.
*
* \param stream The stream to observe for writing
* @param stream The stream to observe for writing
*/
- (void)addStreamForWriting: (OFStream*)stream;
/**
* \brief Removes a stream to observe for reading.
/*!
* @brief Removes a stream to observe for reading.
*
* If there is an -[observe] call blocking, it will be canceled. The reason for
* this is to prevent the removed stream from still being observed.
*
* \param stream The stream to remove from observing for reading
* @param stream The stream to remove from observing for reading
*/
- (void)removeStreamForReading: (OFStream*)stream;
/**
* \brief Removes a stream to observe for writing.
/*!
* @brief Removes a stream to observe for writing.
*
* If there is an -[observe] call blocking, it will be canceled. The reason for
* this is to prevent the removed stream from still being observed.
*
* \param stream The stream to remove from observing for writing
* @param stream The stream to remove from observing for writing
*/
- (void)removeStreamForWriting: (OFStream*)stream;
/**
* \brief Observes all streams and blocks until an event happens on a stream.
/*!
* @brief Observes all streams and blocks until an event happens on a stream.
*/
- (void)observe;
/**
* \brief Observes all streams until an event happens on a stream or the
/*!
* @brief Observes all streams until an event happens on a stream or the
* timeout is reached.
*
* \param timeout The time to wait for an event, in seconds
* \return A boolean whether events occurred during the timeinterval
* @param timeout The time to wait for an event, in seconds
* @return A boolean whether events occurred during the timeinterval
*/
- (BOOL)observeWithTimeout: (double)timeout;
/**
* \brief Cancels the currently blocking observe call.
/*!
* @brief Cancels the currently blocking observe call.
*
* This is automatically done when a new stream is added or removed by another
* thread, but in some circumstances, it might be desirable for a thread to
* manually stop the observe running in another thread.
*/
- (void)cancel;
|
︙ | | |
Modified src/OFStreamSocket.h
from [943ba253dc]
to [70d0ff65e2].
︙ | | |
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
-
-
+
+
-
-
+
+
-
+
|
#ifdef _WIN32
# ifndef _WIN32_WINNT
# define _WIN32_WINNT 0x0501
# endif
# include <winsock2.h>
#endif
/**
* \brief A class which provides functions to create and use stream sockets.
/*!
* @brief A class which provides functions to create and use stream sockets.
*/
@interface OFStreamSocket: OFStream
{
int sock;
BOOL atEndOfStream;
}
/**
* \brief Returns a new, autoreleased OFTCPSocket.
/*!
* @brief Returns a new, autoreleased OFTCPSocket.
*
* \return A new, autoreleased OFTCPSocket
* @return A new, autoreleased OFTCPSocket
*/
+ (instancetype)socket;
@end
|
Modified src/OFString+Hashing.h
from [626fd3c06c]
to [a3bf7e32c9].
︙ | | |
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
|
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
|
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
|
extern "C" {
#endif
extern int _OFString_Hashing_reference;
#ifdef __cplusplus
}
#endif
/**
* \brief The OFString (Hashing) category provides methods to calculate hashes
/*!
* @brief The OFString (Hashing) category provides methods to calculate hashes
* for strings.
*/
@interface OFString (Hashing)
/**
* \brief Returns the MD5 hash of the string as an autoreleased OFString.
/*!
* @brief Returns the MD5 hash of the string as an autoreleased OFString.
*
* \return The MD5 hash of the string as an autoreleased OFString
* @return The MD5 hash of the string as an autoreleased OFString
*/
- (OFString*)MD5Hash;
/**
* \brief Returns the SHA1 hash of the string as an autoreleased OFString.
/*!
* @brief Returns the SHA1 hash of the string as an autoreleased OFString.
*
* \return The SHA1 hash of the string as an autoreleased OFString
* @return The SHA1 hash of the string as an autoreleased OFString
*/
- (OFString*)SHA1Hash;
@end
|
Modified src/OFString+JSONValue.h
from [9180243d68]
to [90f09f4010].
︙ | | |
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
|
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
|
-
-
+
+
-
+
-
+
-
+
|
#endif
extern int _OFString_JSONValue_reference;
#ifdef __cplusplus
}
#endif
@interface OFString (JSONValue)
/**
* \brief Creates an object from the JSON value of the string.
/*!
* @brief Creates an object from the JSON value of the string.
*
* \note This also allows parsing JSON5, an extension of JSON. See
* @note This also allows parsing JSON5, an extension of JSON. See
* http://json5.org/ for more details.
*
* \warning Although not specified by the JSON specification, this can also
* @warning Although not specified by the JSON specification, this can also
* return primitives like strings and numbers. The rationale behind
* this is that most JSON parsers allow JSON data just consisting of a
* single primitive, leading to realworld JSON files sometimes only
* consisting of a single primitive. Therefore, you should not make any
* assumptions about the object returned by this method if you don't
* want your program to terminate due to a message not understood, but
* instead check the returned object using -[isKindOfClass:].
*
* \return An object
* @return An object
*/
- (id)JSONValue;
@end
|
Modified src/OFString+Serialization.h
from [d335c316a5]
to [3afcf0ccb3].
︙ | | |
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
-
-
+
+
-
-
+
+
-
+
|
extern "C" {
#endif
extern int _OFString_Serialization_reference;
#ifdef __cplusplus
}
#endif
/**
* \brief A category that provides methods for deserializing objects.
/*!
* @brief A category that provides methods for deserializing objects.
*/
@interface OFString (OFSerialization)
/**
* \brief Deserializes the receiver into an object.
/*!
* @brief Deserializes the receiver into an object.
*
* \return The deserialized object
* @return The deserialized object
*/
- (id)objectByDeserializing;
@end
|
Modified src/OFString+URLEncoding.h
from [989d18b1da]
to [cdcbb64a84].
︙ | | |
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
|
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
|
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
|
extern "C" {
#endif
extern int _OFString_URLEncoding_reference;
#ifdef __cplusplus
}
#endif
/**
* \brief A category which provides URL encoding and decoding.
/*!
* @brief A category which provides URL encoding and decoding.
*/
@interface OFString (URLEncoding)
/**
* \brief Encodes a string for use in a URL.
/*!
* @brief Encodes a string for use in a URL.
*
* \return A new autoreleased string
* @return A new autoreleased string
*/
- (OFString*)stringByURLEncoding;
/**
* \brief Decodes a string used in a URL.
/*!
* @brief Decodes a string used in a URL.
*
* \return A new autoreleased string
* @return A new autoreleased string
*/
- (OFString*)stringByURLDecoding;
@end
|
Modified src/OFString+XMLEscaping.h
from [e0a4db1205]
to [14f7f4c39a].
︙ | | |
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
-
-
+
+
-
-
+
+
-
+
|
extern "C" {
#endif
extern int _OFString_XMLEscaping_reference;
#ifdef __cplusplus
}
#endif
/**
* \brief A category to escape strings for use in an XML document.
/*!
* @brief A category to escape strings for use in an XML document.
*/
@interface OFString (XMLEscaping)
/**
* \brief Escapes a string for use in an XML document.
/*!
* @brief Escapes a string for use in an XML document.
*
* \return A new autoreleased string
* @return A new autoreleased string
*/
- (OFString*)stringByXMLEscaping;
@end
|
Modified src/OFString+XMLUnescaping.h
from [3d118891eb]
to [0af39e8a26].
︙ | | |
25
26
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
25
26
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
|
#endif
#ifdef OF_HAVE_BLOCKS
typedef OFString* (^of_string_xml_unescaping_block_t)(OFString *str,
OFString *entity);
#endif
/**
* \brief A protocol that needs to be implemented by delegates for
/*!
* @brief A protocol that needs to be implemented by delegates for
* -[stringByXMLUnescapingWithHandler:].
*/
@protocol OFStringXMLUnescapingDelegate <OFObject>
/**
* \brief This callback is called when an unknown entity was found while trying
/*!
* @brief This callback is called when an unknown entity was found while trying
* to unescape XML.
*
* The callback is supposed to return a substitution for the entity or nil if
* it is unknown to the callback as well, in which case an exception will be
* thrown.
*
* \param str The string which contains the unknown entity
* \param entity The name of the entity that is unknown
* \return A substitution for the entity or nil
* @param str The string which contains the unknown entity
* @param entity The name of the entity that is unknown
* @return A substitution for the entity or nil
*/
- (OFString*)string: (OFString*)str
containsUnknownEntityNamed: (OFString*)entity;
@end
/**
* \brief A category for unescaping XML in strings.
/*!
* @brief A category for unescaping XML in strings.
*/
@interface OFString (XMLUnescaping)
/**
* \brief Unescapes XML in the string.
/*!
* @brief Unescapes XML in the string.
*/
- (OFString*)stringByXMLUnescaping;
/**
* \brief Unescapes XML in the string and uses the specified delegate for
/*!
* @brief Unescapes XML in the string and uses the specified delegate for
* unknown entities.
*
* \param delegate An OFXMLUnescapingDelegate as a handler for unknown entities
* @param delegate An OFXMLUnescapingDelegate as a handler for unknown entities
*/
- (OFString*)stringByXMLUnescapingWithDelegate:
(id <OFStringXMLUnescapingDelegate>)delegate;
#ifdef OF_HAVE_BLOCKS
/**
* \brief Unescapes XML in the string and uses the specified block for unknown
/*!
* @brief Unescapes XML in the string and uses the specified block for unknown
* entities.
*
* \param block A block which handles unknown entities
* @param block A block which handles unknown entities
*/
- (OFString*)stringByXMLUnescapingWithBlock:
(of_string_xml_unescaping_block_t)block;
#endif
@end
|
Modified src/OFString.h
from [1cf435b925]
to [3cea6d45eb].
︙ | | |
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
-
-
+
+
|
#import "OFSerialization.h"
#import "OFJSONRepresentation.h"
@class OFConstantString;
typedef uint32_t of_unichar_t;
/**
* \brief The encoding of a string.
/*!
* @brief The encoding of a string.
*/
typedef enum of_string_encoding_t {
OF_STRING_ENCODING_UTF_8,
OF_STRING_ENCODING_ASCII,
OF_STRING_ENCODING_ISO_8859_1,
OF_STRING_ENCODING_ISO_8859_15,
OF_STRING_ENCODING_WINDOWS_1252,
|
︙ | | |
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
|
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
|
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
+
|
#ifdef __cplusplus
}
#endif
@class OFArray;
@class OFURL;
/**
* \brief A class for handling strings.
/*!
* @brief A class for handling strings.
*
* <b>Warning:</b> If you add methods to OFString using a category, you are not
* allowed to access the ivars directly, as these might be still uninitialized
* for a constant string and get initialized on the first message! Therefore,
* you should use the corresponding methods to get the ivars, which ensures the
* constant string is initialized.
*/
@interface OFString: OFObject <OFCopying, OFMutableCopying, OFComparing,
OFSerialization, OFJSONRepresentation>
#ifdef OF_HAVE_PROPERTIES
@property (readonly) size_t length;
#endif
/**
* \brief Creates a new OFString.
/*!
* @brief Creates a new OFString.
*
* \return A new, autoreleased OFString
* @return A new, autoreleased OFString
*/
+ (instancetype)string;
/**
* \brief Creates a new OFString from a UTF-8 encoded C string.
/*!
* @brief Creates a new OFString from a UTF-8 encoded C string.
*
* \param UTF8String A UTF-8 encoded C string to initialize the OFString with
* \return A new autoreleased OFString
* @param UTF8String A UTF-8 encoded C string to initialize the OFString with
* @return A new autoreleased OFString
*/
+ (instancetype)stringWithUTF8String: (const char*)UTF8String;
/**
* \brief Creates a new OFString from a UTF-8 encoded C string with the
/*!
* @brief Creates a new OFString from a UTF-8 encoded C string with the
* specified length.
*
* \param UTF8String A UTF-8 encoded C string to initialize the OFString with
* \param UTF8StringLength The length of the UTF-8 encoded C string
* \return A new autoreleased OFString
* @param UTF8String A UTF-8 encoded C string to initialize the OFString with
* @param UTF8StringLength The length of the UTF-8 encoded C string
* @return A new autoreleased OFString
*/
+ (instancetype)stringWithUTF8String: (const char*)UTF8String
length: (size_t)UTF8StringLength;
/**
* \brief Creates a new OFString from a C string with the specified encoding.
/*!
* @brief Creates a new OFString from a C string with the specified encoding.
*
* \param string A C string to initialize the OFString with
* \param encoding The encoding of the C string
* \return A new autoreleased OFString
* @param string A C string to initialize the OFString with
* @param encoding The encoding of the C string
* @return A new autoreleased OFString
*/
+ (instancetype)stringWithCString: (const char*)cString
encoding: (of_string_encoding_t)encoding;
/**
* \brief Creates a new OFString from a C string with the specified encoding
/*!
* @brief Creates a new OFString from a C string with the specified encoding
* and length.
*
* \param cString A C string to initialize the OFString with
* \param encoding The encoding of the C string
* \param cStringLength The length of the C string
* \return A new autoreleased OFString
* @param cString A C string to initialize the OFString with
* @param encoding The encoding of the C string
* @param cStringLength The length of the C string
* @return A new autoreleased OFString
*/
+ (instancetype)stringWithCString: (const char*)cString
encoding: (of_string_encoding_t)encoding
length: (size_t)cStringLength;
/**
* \brief Creates a new OFString from another string.
/*!
* @brief Creates a new OFString from another string.
*
* \param string A string to initialize the OFString with
* \return A new autoreleased OFString
* @param string A string to initialize the OFString with
* @return A new autoreleased OFString
*/
+ (instancetype)stringWithString: (OFString*)string;
/**
* \brief Creates a new OFString from a unicode string.
/*!
* @brief Creates a new OFString from a unicode string.
*
* \param string The unicode string
* \return A new autoreleased OFString
* @param string The unicode string
* @return A new autoreleased OFString
*/
+ (instancetype)stringWithUnicodeString: (const of_unichar_t*)string;
/**
* \brief Creates a new OFString from a unicode string, assuming the specified
/*!
* @brief Creates a new OFString from a unicode string, assuming the specified
* byte order if no BOM is found.
*
* \param string The unicode string
* \param byteOrder The byte order to assume if there is no BOM
* \return A new autoreleased OFString
* @param string The unicode string
* @param byteOrder The byte order to assume if there is no BOM
* @return A new autoreleased OFString
*/
+ (instancetype)stringWithUnicodeString: (const of_unichar_t*)string
byteOrder: (of_byte_order_t)byteOrder;
/**
* \brief Creates a new OFString from a unicode string with the specified
/*!
* @brief Creates a new OFString from a unicode string with the specified
* length.
*
* \param string The unicode string
* \param length The length of the unicode string
* \return A new autoreleased OFString
* @param string The unicode string
* @param length The length of the unicode string
* @return A new autoreleased OFString
*/
+ (instancetype)stringWithUnicodeString: (const of_unichar_t*)string
length: (size_t)length;
/**
* \brief Creates a new OFString from a unicode string with the specified
/*!
* @brief Creates a new OFString from a unicode string with the specified
* length, assuming the specified byte order if no BOM is found.
*
* \param string The unicode string
* \param byteOrder The byte order to assume if there is no BOM
* \param length The length of the unicode string
* \return A new autoreleased OFString
* @param string The unicode string
* @param byteOrder The byte order to assume if there is no BOM
* @param length The length of the unicode string
* @return A new autoreleased OFString
*/
+ (instancetype)stringWithUnicodeString: (const of_unichar_t*)string
byteOrder: (of_byte_order_t)byteOrder
length: (size_t)length;
/**
* \brief Creates a new OFString from a UTF-16 encoded string.
/*!
* @brief Creates a new OFString from a UTF-16 encoded string.
*
* \param string The UTF-16 string
* \return A new autoreleased OFString
* @param string The UTF-16 string
* @return A new autoreleased OFString
*/
+ (instancetype)stringWithUTF16String: (const uint16_t*)string;
/**
* \brief Creates a new OFString from a UTF-16 encoded string, assuming the
/*!
* @brief Creates a new OFString from a UTF-16 encoded string, assuming the
* specified byte order if no BOM is found.
*
* \param string The UTF-16 string
* \param byteOrder The byte order to assume if there is no BOM
* \return A new autoreleased OFString
* @param string The UTF-16 string
* @param byteOrder The byte order to assume if there is no BOM
* @return A new autoreleased OFString
*/
+ (instancetype)stringWithUTF16String: (const uint16_t*)string
byteOrder: (of_byte_order_t)byteOrder;
/**
* \brief Creates a new OFString from a UTF-16 encoded string with the specified
/*!
* @brief Creates a new OFString from a UTF-16 encoded string with the specified
* length.
*
* \param string The UTF-16 string
* \param length The length of the unicode string
* \return A new autoreleased OFString
* @param string The UTF-16 string
* @param length The length of the unicode string
* @return A new autoreleased OFString
*/
+ (instancetype)stringWithUTF16String: (const uint16_t*)string
length: (size_t)length;
/**
* \brief Creates a new OFString from a UTF-16 encoded string with the
/*!
* @brief Creates a new OFString from a UTF-16 encoded string with the
* specified length, assuming the specified byte order if no BOM is
* found.
*
* \param string The UTF-16 string
* \param byteOrder The byte order to assume if there is no BOM
* \param length The length of the unicode string
* \return A new autoreleased OFString
* @param string The UTF-16 string
* @param byteOrder The byte order to assume if there is no BOM
* @param length The length of the unicode string
* @return A new autoreleased OFString
*/
+ (instancetype)stringWithUTF16String: (const uint16_t*)string
byteOrder: (of_byte_order_t)byteOrder
length: (size_t)length;
/**
* \brief Creates a new OFString from a format string.
/*!
* @brief Creates a new OFString from a format string.
*
* See printf for the format syntax. As an addition, %@ is available as format
* specifier for objects.
*
* \param format A string used as format to initialize the OFString
* \return A new autoreleased OFString
* @param format A string used as format to initialize the OFString
* @return A new autoreleased OFString
*/
+ (instancetype)stringWithFormat: (OFConstantString*)format, ...;
/**
* \brief Creates a new OFString containing the constructed specified path.
/*!
* @brief Creates a new OFString containing the constructed specified path.
*
* \param firstComponent The first component of the path
* \return A new autoreleased OFString
* @param firstComponent The first component of the path
* @return A new autoreleased OFString
*/
+ (instancetype)stringWithPath: (OFString*)firstComponent, ...;
/**
* \brief Creates a new OFString with the contents of the specified UTF-8
/*!
* @brief Creates a new OFString with the contents of the specified UTF-8
* encoded file.
*
* \param path The path to the file
* \return A new autoreleased OFString
* @param path The path to the file
* @return A new autoreleased OFString
*/
+ (instancetype)stringWithContentsOfFile: (OFString*)path;
/**
* \brief Creates a new OFString with the contents of the specified file in the
/*!
* @brief Creates a new OFString with the contents of the specified file in the
* specified encoding.
*
* \param path The path to the file
* \param encoding The encoding of the file
* \return A new autoreleased OFString
* @param path The path to the file
* @param encoding The encoding of the file
* @return A new autoreleased OFString
*/
+ (instancetype)stringWithContentsOfFile: (OFString*)path
encoding: (of_string_encoding_t)encoding;
/**
* \brief Creates a new OFString with the contents of the specified URL.
/*!
* @brief Creates a new OFString with the contents of the specified URL.
*
* If the URL's scheme is file, it tries UTF-8 encoding.
*
* If the URL's scheme is http(s), it tries to detect the encoding from the HTTP
* headers. If it could not detect the encoding using the HTTP headers, it tries
* UTF-8.
*
* \param URL The URL to the contents for the string
* \return A new autoreleased OFString
* @param URL The URL to the contents for the string
* @return A new autoreleased OFString
*/
+ (instancetype)stringWithContentsOfURL: (OFURL*)URL;
/**
* \brief Creates a new OFString with the contents of the specified URL in the
/*!
* @brief Creates a new OFString with the contents of the specified URL in the
* specified encoding.
*
* \param URL The URL to the contents for the string
* \param encoding The encoding to assume
* \return A new autoreleased OFString
* @param URL The URL to the contents for the string
* @param encoding The encoding to assume
* @return A new autoreleased OFString
*/
+ (instancetype)stringWithContentsOfURL: (OFURL*)URL
encoding: (of_string_encoding_t)encoding;
/**
* \brief Initializes an already allocated OFString from a UTF-8 encoded C
/*!
* @brief Initializes an already allocated OFString from a UTF-8 encoded C
* string.
*
* \param UTF8String A UTF-8 encoded C string to initialize the OFString with
* \return An initialized OFString
* @param UTF8String A UTF-8 encoded C string to initialize the OFString with
* @return An initialized OFString
*/
- initWithUTF8String: (const char*)UTF8String;
/**
* \brief Initializes an already allocated OFString from a UTF-8 encoded C
/*!
* @brief Initializes an already allocated OFString from a UTF-8 encoded C
* string with the specified length.
*
* \param UTF8String A UTF-8 encoded C string to initialize the OFString with
* \param UTF8StringLength The length of the UTF-8 encoded C string
* \return An initialized OFString
* @param UTF8String A UTF-8 encoded C string to initialize the OFString with
* @param UTF8StringLength The length of the UTF-8 encoded C string
* @return An initialized OFString
*/
- initWithUTF8String: (const char*)UTF8String
length: (size_t)UTF8StringLength;
/**
* \brief Initializes an already allocated OFString from an UTF-8 encoded C
/*!
* @brief Initializes an already allocated OFString from an UTF-8 encoded C
* string without copying it, if possible.
*
* \note Mutable versions always create a copy!
* @note Mutable versions always create a copy!
*
* \param UTF8String A UTF-8 encoded C string to initialize the OFString with
* \param freeWhenDone Whether to free the C string when it is not needed
* @param UTF8String A UTF-8 encoded C string to initialize the OFString with
* @param freeWhenDone Whether to free the C string when it is not needed
* anymore
* \return An initialized OFString
* @return An initialized OFString
*/
- initWithUTF8StringNoCopy: (const char*)UTF8String
freeWhenDone: (BOOL)freeWhenDone;
/**
* \brief Initializes an already allocated OFString from a C string with the
/*!
* @brief Initializes an already allocated OFString from a C string with the
* specified encoding.
*
* \param cString A C string to initialize the OFString with
* \param encoding The encoding of the C string
* \return An initialized OFString
* @param cString A C string to initialize the OFString with
* @param encoding The encoding of the C string
* @return An initialized OFString
*/
- initWithCString: (const char*)cString
encoding: (of_string_encoding_t)encoding;
/**
* \brief Initializes an already allocated OFString from a C string with the
/*!
* @brief Initializes an already allocated OFString from a C string with the
* specified encoding and length.
*
* \param cString A C string to initialize the OFString with
* \param encoding The encoding of the C string
* \param cStringLength The length of the C string
* \return An initialized OFString
* @param cString A C string to initialize the OFString with
* @param encoding The encoding of the C string
* @param cStringLength The length of the C string
* @return An initialized OFString
*/
- initWithCString: (const char*)cString
encoding: (of_string_encoding_t)encoding
length: (size_t)cStringLength;
/**
* \brief Initializes an already allocated OFString with another string.
/*!
* @brief Initializes an already allocated OFString with another string.
*
* \param string A string to initialize the OFString with
* \return An initialized OFString
* @param string A string to initialize the OFString with
* @return An initialized OFString
*/
- initWithString: (OFString*)string;
/**
* \brief Initializes an already allocated OFString with a unicode string.
/*!
* @brief Initializes an already allocated OFString with a unicode string.
*
* \param string The unicode string
* \return An initialized OFString
* @param string The unicode string
* @return An initialized OFString
*/
- initWithUnicodeString: (const of_unichar_t*)string;
/**
* \brief Initializes an already allocated OFString with a unicode string,
/*!
* @brief Initializes an already allocated OFString with a unicode string,
* assuming the specified byte order if no BOM is found.
*
* \param string The unicode string
* \param byteOrder The byte order to assume if there is no BOM
* \return An initialized OFString
* @param string The unicode string
* @param byteOrder The byte order to assume if there is no BOM
* @return An initialized OFString
*/
- initWithUnicodeString: (const of_unichar_t*)string
byteOrder: (of_byte_order_t)byteOrder;
/**
* \brief Initializes an already allocated OFString with a unicode string with
/*!
* @brief Initializes an already allocated OFString with a unicode string with
* the specified length.
*
* \param string The unicode string
* \param length The length of the unicode string
* \return An initialized OFString
* @param string The unicode string
* @param length The length of the unicode string
* @return An initialized OFString
*/
- initWithUnicodeString: (const of_unichar_t*)string
length: (size_t)length;
/**
* \brief Initializes an already allocated OFString with a unicode string with
/*!
* @brief Initializes an already allocated OFString with a unicode string with
* the specified length, assuming the specified byte order if no BOM is
* found.
*
* \param string The unicode string
* \param byteOrder The byte order to assume if there is no BOM
* \param length The length of the unicode string
* \return An initialized OFString
* @param string The unicode string
* @param byteOrder The byte order to assume if there is no BOM
* @param length The length of the unicode string
* @return An initialized OFString
*/
- initWithUnicodeString: (const of_unichar_t*)string
byteOrder: (of_byte_order_t)byteOrder
length: (size_t)length;
/**
* \brief Initializes an already allocated OFString with a UTF-16 string.
/*!
* @brief Initializes an already allocated OFString with a UTF-16 string.
*
* \param string The UTF-16 string
* \return An initialized OFString
* @param string The UTF-16 string
* @return An initialized OFString
*/
- initWithUTF16String: (const uint16_t*)string;
/**
* \brief Initializes an already allocated OFString with a UTF-16 string,
/*!
* @brief Initializes an already allocated OFString with a UTF-16 string,
* assuming the specified byte order if no BOM is found.
*
* \param string The UTF-16 string
* \param byteOrder The byte order to assume if there is no BOM
* \return An initialized OFString
* @param string The UTF-16 string
* @param byteOrder The byte order to assume if there is no BOM
* @return An initialized OFString
*/
- initWithUTF16String: (const uint16_t*)string
byteOrder: (of_byte_order_t)byteOrder;
/**
* \brief Initializes an already allocated OFString with a UTF-16 string with
/*!
* @brief Initializes an already allocated OFString with a UTF-16 string with
* the specified length.
*
* \param string The UTF-16 string
* \param length The length of the UTF-16 string
* \return An initialized OFString
* @param string The UTF-16 string
* @param length The length of the UTF-16 string
* @return An initialized OFString
*/
- initWithUTF16String: (const uint16_t*)string
length: (size_t)length;
/**
* \brief Initializes an already allocated OFString with a UTF-16 string with
/*!
* @brief Initializes an already allocated OFString with a UTF-16 string with
* the specified length, assuming the specified byte order if no BOM is
* found.
*
* \param string The UTF-16 string
* \param byteOrder The byte order to assume if there is no BOM
* \param length The length of the UTF-16 string
* \return An initialized OFString
* @param string The UTF-16 string
* @param byteOrder The byte order to assume if there is no BOM
* @param length The length of the UTF-16 string
* @return An initialized OFString
*/
- initWithUTF16String: (const uint16_t*)string
byteOrder: (of_byte_order_t)byteOrder
length: (size_t)length;
/**
* \brief Initializes an already allocated OFString with a format string.
/*!
* @brief Initializes an already allocated OFString with a format string.
*
* See printf for the format syntax. As an addition, %@ is available as format
* specifier for objects.
*
* \param format A string used as format to initialize the OFString
* \return An initialized OFString
* @param format A string used as format to initialize the OFString
* @return An initialized OFString
*/
- initWithFormat: (OFConstantString*)format, ...;
/**
* \brief Initializes an already allocated OFString with a format string.
/*!
* @brief Initializes an already allocated OFString with a format string.
*
* See printf for the format syntax. As an addition, %@ is available as format
* specifier for objects.
*
* \param format A string used as format to initialize the OFString
* \param arguments The arguments used in the format string
* \return An initialized OFString
* @param format A string used as format to initialize the OFString
* @param arguments The arguments used in the format string
* @return An initialized OFString
*/
- initWithFormat: (OFConstantString*)format
arguments: (va_list)arguments;
/**
* \brief Initializes an already allocated OFString with the constructed
/*!
* @brief Initializes an already allocated OFString with the constructed
* specified path.
*
* \param firstComponent The first component of the path
* \return A new autoreleased OFString
* @param firstComponent The first component of the path
* @return A new autoreleased OFString
*/
- initWithPath: (OFString*)firstComponent, ...;
/**
* \brief Initializes an already allocated OFString with the constructed
/*!
* @brief Initializes an already allocated OFString with the constructed
* specified path.
*
* \param firstComponent The first component of the path
* \param arguments A va_list with the other components of the path
* \return A new autoreleased OFString
* @param firstComponent The first component of the path
* @param arguments A va_list with the other components of the path
* @return A new autoreleased OFString
*/
- initWithPath: (OFString*)firstComponent
arguments: (va_list)arguments;
/**
* \brief Initializes an already allocated OFString with the contents of the
/*!
* @brief Initializes an already allocated OFString with the contents of the
* specified file in the specified encoding.
*
* \param path The path to the file
* \return An initialized OFString
* @param path The path to the file
* @return An initialized OFString
*/
- initWithContentsOfFile: (OFString*)path;
/**
* \brief Initializes an already allocated OFString with the contents of the
/*!
* @brief Initializes an already allocated OFString with the contents of the
* specified file in the specified encoding.
*
* \param path The path to the file
* \param encoding The encoding of the file
* \return An initialized OFString
* @param path The path to the file
* @param encoding The encoding of the file
* @return An initialized OFString
*/
- initWithContentsOfFile: (OFString*)path
encoding: (of_string_encoding_t)encoding;
/**
* \brief Initializes an already allocated OFString with the contents of the
/*!
* @brief Initializes an already allocated OFString with the contents of the
* specified URL.
*
* If the URL's scheme is file, it tries UTF-8 encoding.
*
* If the URL's scheme is http(s), it tries to detect the encoding from the HTTP
* headers. If it could not detect the encoding using the HTTP headers, it tries
* UTF-8.
*
* \param URL The URL to the contents for the string
* \return An initialized OFString
* @param URL The URL to the contents for the string
* @return An initialized OFString
*/
- initWithContentsOfURL: (OFURL*)URL;
/**
* \brief Initializes an already allocated OFString with the contents of the
/*!
* @brief Initializes an already allocated OFString with the contents of the
* specified URL in the specified encoding.
*
* \param URL The URL to the contents for the string
* \param encoding The encoding to assume
* \return An initialized OFString
* @param URL The URL to the contents for the string
* @param encoding The encoding to assume
* @return An initialized OFString
*/
- initWithContentsOfURL: (OFURL*)URL
encoding: (of_string_encoding_t)encoding;
/**
* \brief Returns the OFString as a UTF-8 encoded C string.
/*!
* @brief Returns the OFString as a UTF-8 encoded C string.
*
* The result is valid until the autorelease pool is released. If you want to
* use the result outside the scope of the current autorelease pool, you have to
* copy it.
*
* \return The OFString as a UTF-8 encoded C string
* @return The OFString as a UTF-8 encoded C string
*/
- (const char*)UTF8String OF_RETURNS_INNER_POINTER;
/**
* \brief Returns the OFString as a C string in the specified encoding.
/*!
* @brief Returns the OFString as a C string in the specified encoding.
*
* The result is valid until the autorelease pool is released. If you want to
* use the result outside the scope of the current autorelease pool, you have to
* copy it.
*
* \param encoding The encoding for the C string
* \return The OFString as a C string in the specified encoding
* @param encoding The encoding for the C string
* @return The OFString as a C string in the specified encoding
*/
- (const char*)cStringWithEncoding: (of_string_encoding_t)encoding
OF_RETURNS_INNER_POINTER;
/**
* \brief Returns the length of the string in Unicode characters.
/*!
* @brief Returns the length of the string in Unicode characters.
*
* \return The length of the string in Unicode characters
* @return The length of the string in Unicode characters
*/
- (size_t)length;
/**
* \brief Returns the number of bytes the string needs in UTF-8 encoding.
/*!
* @brief Returns the number of bytes the string needs in UTF-8 encoding.
*
* \return The number of bytes the string needs in UTF-8 encoding.
* @return The number of bytes the string needs in UTF-8 encoding.
*/
- (size_t)UTF8StringLength;
/**
* \brief Returns the number of bytes the string needs in the specified
/*!
* @brief Returns the number of bytes the string needs in the specified
* encoding.
*
* \param encoding The encoding for the string
* \return The number of bytes the string needs in the specified encoding.
* @param encoding The encoding for the string
* @return The number of bytes the string needs in the specified encoding.
*/
- (size_t)cStringLengthWithEncoding: (of_string_encoding_t)encoding;
/**
* \brief Compares the OFString to another OFString without caring about the
/*!
* @brief Compares the OFString to another OFString without caring about the
* case.
*
* \param otherString A string to compare with
* \return An of_comparison_result_t
* @param otherString A string to compare with
* @return An of_comparison_result_t
*/
- (of_comparison_result_t)caseInsensitiveCompare: (OFString*)otherString;
/**
* \brief Returns the Unicode character at the specified index.
/*!
* @brief Returns the Unicode character at the specified index.
*
* \param index The index of the Unicode character to return
* \return The Unicode character at the specified index
* @param index The index of the Unicode character to return
* @return The Unicode character at the specified index
*/
- (of_unichar_t)characterAtIndex: (size_t)index;
/**
* \brief Copies the Unicode characters in the specified range to the specified
/*!
* @brief Copies the Unicode characters in the specified range to the specified
* buffer.
*
* \param buffer The buffer to store the Unicode characters
* \param range The range of the Unicode characters to copy
* @param buffer The buffer to store the Unicode characters
* @param range The range of the Unicode characters to copy
*/
- (void)getCharacters: (of_unichar_t*)buffer
inRange: (of_range_t)range;
/**
* \brief Returns the range of the first occurrence of the string.
/*!
* @brief Returns the range of the first occurrence of the string.
*
* \param string The string to search
* \return The range of the first occurrence of the string or a range with
* @param string The string to search
* @return The range of the first occurrence of the string or a range with
* OF_NOT_FOUND as start position if it was not found
*/
- (of_range_t)rangeOfString: (OFString*)string;
/**
* \brief Returns the range of the string.
/*!
* @brief Returns the range of the string.
*
* \param string The string to search
* \param options Options modifying search behaviour.
* @param string The string to search
* @param options Options modifying search behaviour.
* Possible values: OF_STRING_SEARCH_BACKWARDS
* \return The range of the first occurrence of the string or a range with
* @return The range of the first occurrence of the string or a range with
* OF_NOT_FOUND as start position if it was not found
*/
- (of_range_t)rangeOfString: (OFString*)string
options: (int)options;
/**
* \brief Returns the range of the string in the specified range.
/*!
* @brief Returns the range of the string in the specified range.
*
* \param string The string to search
* \param options Options modifying search behaviour.
* @param string The string to search
* @param options Options modifying search behaviour.
* Possible values: OF_STRING_SEARCH_BACKWARDS
* \param range The range in which to search
* \return The range of the first occurrence of the string or a range with
* @param range The range in which to search
* @return The range of the first occurrence of the string or a range with
* OF_NOT_FOUND as start position if it was not found
*/
- (of_range_t)rangeOfString: (OFString*)string
options: (int)options
range: (of_range_t)range;
/**
* \brief Returns whether the string contains the specified string.
/*!
* @brief Returns whether the string contains the specified string.
*
* \param string The string to search
* \return Whether the string contains the specified string
* @param string The string to search
* @return Whether the string contains the specified string
*/
- (BOOL)containsString: (OFString*)string;
/**
* \brief Creates a substring with the specified range.
/*!
* @brief Creates a substring with the specified range.
*
* \param range The range of the substring
* \return The substring as a new autoreleased OFString
* @param range The range of the substring
* @return The substring as a new autoreleased OFString
*/
- (OFString*)substringWithRange: (of_range_t)range;
/**
* \brief Creates a new string by appending another string.
/*!
* @brief Creates a new string by appending another string.
*
* \param string The string to append
* \return A new, autoreleased OFString with the specified string appended
* @param string The string to append
* @return A new, autoreleased OFString with the specified string appended
*/
- (OFString*)stringByAppendingString: (OFString*)string;
/**
* \brief Creates a new string by appending a path component.
/*!
* @brief Creates a new string by appending a path component.
*
* \param component The path component to append
* \return A new, autoreleased OFString with the path component appended
* @param component The path component to append
* @return A new, autoreleased OFString with the path component appended
*/
- (OFString*)stringByAppendingPathComponent: (OFString*)component;
/**
* \brief Creates a new string by prepending another string.
/*!
* @brief Creates a new string by prepending another string.
*
* \param string The string to prepend
* \return A new autoreleased OFString with the specified string prepended
* @param string The string to prepend
* @return A new autoreleased OFString with the specified string prepended
*/
- (OFString*)stringByPrependingString: (OFString*)string;
/**
* \brief Creates a new string by replacing the occurrences of the specified
/*!
* @brief Creates a new string by replacing the occurrences of the specified
* string with the specified replacement.
*
* \param string The string to replace
* \param replacement The string with which it should be replaced
* \return A new string with the occurrences of the specified string replaced
* @param string The string to replace
* @param replacement The string with which it should be replaced
* @return A new string with the occurrences of the specified string replaced
*/
- (OFString*)stringByReplacingOccurrencesOfString: (OFString*)string
withString: (OFString*)replacement;
/**
* \brief Creates a new string by replacing the occurrences of the specified
/*!
* @brief Creates a new string by replacing the occurrences of the specified
* string in the specified range with the specified replacement.
*
* \param string The string to replace
* \param replacement The string with which it should be replaced
* \param options Options modifying search behaviour.
* @param string The string to replace
* @param replacement The string with which it should be replaced
* @param options Options modifying search behaviour.
* Possible values: None yet
* \param range The range in which to replace the string
* \return A new string with the occurrences of the specified string replaced
* @param range The range in which to replace the string
* @return A new string with the occurrences of the specified string replaced
*/
- (OFString*)stringByReplacingOccurrencesOfString: (OFString*)string
withString: (OFString*)replacement
options: (int)options
range: (of_range_t)range;
/**
* \brief Returns the string in uppercase.
/*!
* @brief Returns the string in uppercase.
*
* \return The string in uppercase
* @return The string in uppercase
*/
- (OFString*)uppercaseString;
/**
* \brief Returns the string in lowercase.
/*!
* @brief Returns the string in lowercase.
*
* \return The string in lowercase
* @return The string in lowercase
*/
- (OFString*)lowercaseString;
/**
* \brief Returns the string capitalized.
/*!
* @brief Returns the string capitalized.
*
* \note This only considers spaces, tab and newlines to be word delimiters!
* @note This only considers spaces, tab and newlines to be word delimiters!
* Also note that this might change in the future to all word delimiters
* specified by Unicode!
*
* \return The capitalized string
* @return The capitalized string
*/
- (OFString*)capitalizedString;
/**
* \brief Creates a new string by deleting leading whitespaces.
/*!
* @brief Creates a new string by deleting leading whitespaces.
*
* \return A new autoreleased OFString with leading whitespaces deleted
* @return A new autoreleased OFString with leading whitespaces deleted
*/
- (OFString*)stringByDeletingLeadingWhitespaces;
/**
* \brief Creates a new string by deleting trailing whitespaces.
/*!
* @brief Creates a new string by deleting trailing whitespaces.
*
* \return A new autoreleased OFString with trailing whitespaces deleted
* @return A new autoreleased OFString with trailing whitespaces deleted
*/
- (OFString*)stringByDeletingTrailingWhitespaces;
/**
* \brief Creates a new string by deleting leading and trailing whitespaces.
/*!
* @brief Creates a new string by deleting leading and trailing whitespaces.
*
* \return A new autoreleased OFString with leading and trailing whitespaces
* @return A new autoreleased OFString with leading and trailing whitespaces
* deleted
*/
- (OFString*)stringByDeletingEnclosingWhitespaces;
/**
* \brief Checks whether the string has the specified prefix.
/*!
* @brief Checks whether the string has the specified prefix.
*
* \param prefix The prefix to check for
* \return A boolean whether the string has the specified prefix
* @param prefix The prefix to check for
* @return A boolean whether the string has the specified prefix
*/
- (BOOL)hasPrefix: (OFString*)prefix;
/**
* \brief Checks whether the string has the specified suffix.
/*!
* @brief Checks whether the string has the specified suffix.
*
* \param suffix The suffix to check for
* \return A boolean whether the string has the specified suffix
* @param suffix The suffix to check for
* @return A boolean whether the string has the specified suffix
*/
- (BOOL)hasSuffix: (OFString*)suffix;
/**
* \brief Separates an OFString into an OFArray of OFStrings.
/*!
* @brief Separates an OFString into an OFArray of OFStrings.
*
* \param delimiter The delimiter for separating
* \return An autoreleased OFArray with the separated string
* @param delimiter The delimiter for separating
* @return An autoreleased OFArray with the separated string
*/
- (OFArray*)componentsSeparatedByString: (OFString*)delimiter;
/**
* \brief Separates an OFString into an OFArray of OFStrings.
/*!
* @brief Separates an OFString into an OFArray of OFStrings.
*
* \param delimiter The delimiter for separating
* \param options Options according to which the string should be separated
* @param delimiter The delimiter for separating
* @param options Options according to which the string should be separated
* Possible values: OF_STRING_SKIP_EMPTY
* \return An autoreleased OFArray with the separated string
* @return An autoreleased OFArray with the separated string
*/
- (OFArray*)componentsSeparatedByString: (OFString*)delimiter
options: (int)options;
/**
* \brief Returns the components of the path.
/*!
* @brief Returns the components of the path.
*
* \return The components of the path
* @return The components of the path
*/
- (OFArray*)pathComponents;
/**
* \brief Returns the last component of the path.
/*!
* @brief Returns the last component of the path.
*
* \return The last component of the path
* @return The last component of the path
*/
- (OFString*)lastPathComponent;
/**
* \brief Returns the directory name of the path.
/*!
* @brief Returns the directory name of the path.
*
* \return The directory name of the path
* @return The directory name of the path
*/
- (OFString*)stringByDeletingLastPathComponent;
/**
* \brief Returns the decimal value of the string as an intmax_t.
/*!
* @brief Returns the decimal value of the string as an intmax_t.
*
* Leading and trailing whitespaces are ignored.
*
* If the string contains any non-number characters, an
* OFInvalidEncodingException is thrown.
*
* If the number is too big to fit into an intmax_t, an OFOutOfRangeException
* is thrown.
*
* \return An intmax_t with the value of the string
* @return An intmax_t with the value of the string
*/
- (intmax_t)decimalValue;
/**
* \brief Returns the hexadecimal value of the string as an uintmax_t.
/*!
* @brief Returns the hexadecimal value of the string as an uintmax_t.
*
* Leading and trailing whitespaces are ignored.
*
* If the string contains any non-number characters, an
* OFInvalidEncodingException is thrown.
*
* If the number is too big to fit into an uintmax_t, an OFOutOfRangeException
* is thrown.
*
* \return A uintmax_t with the value of the string
* @return A uintmax_t with the value of the string
*/
- (uintmax_t)hexadecimalValue;
/**
* \brief Returns the float value of the string as a float.
/*!
* @brief Returns the float value of the string as a float.
*
* If the string contains any non-number characters, an
* OFInvalidEncodingException is thrown.
*
* \return A float with the value of the string
* @return A float with the value of the string
*/
- (float)floatValue;
/**
* \brief Returns the double value of the string as a double.
/*!
* @brief Returns the double value of the string as a double.
*
* If the string contains any non-number characters, an
* OFInvalidEncodingException is thrown.
*
* \return A double with the value of the string
* @return A double with the value of the string
*/
- (double)doubleValue;
/**
* \brief Returns the string as an array of Unicode characters.
/*!
* @brief Returns the string as an array of Unicode characters.
*
* The result is valid until the autorelease pool is released. If you want to
* use the result outside the scope of the current autorelease pool, you have to
* copy it.
*
* \return The string as an array of Unicode characters
* @return The string as an array of Unicode characters
*/
- (const of_unichar_t*)unicodeString OF_RETURNS_INNER_POINTER;
/**
* \brief Returns the string in big endian UTF-16 encoding.
/*!
* @brief Returns the string in big endian UTF-16 encoding.
*
* The result is valid until the autorelease pool is released. If you want to
* use the result outside the scope of the current autorelease pool, you have to
* copy it.
*
* \return The string in big endian UTF-16 encoding
* @return The string in big endian UTF-16 encoding
*/
- (const uint16_t*)UTF16String OF_RETURNS_INNER_POINTER;
/**
* \brief Writes the string into the specified file using UTF-8 encoding.
/*!
* @brief Writes the string into the specified file using UTF-8 encoding.
*
* \param path The path of the file to write to
* @param path The path of the file to write to
*/
- (void)writeToFile: (OFString*)path;
#ifdef OF_HAVE_BLOCKS
/**
/*!
* Enumerates all lines in the receiver using the specified block.
*
* \brief block The block to call for each line
* @brief block The block to call for each line
*/
- (void)enumerateLinesUsingBlock: (of_string_line_enumeration_block_t)block;
#endif
@end
#import "OFConstantString.h"
#import "OFMutableString.h"
|
︙ | | |
Modified src/OFTCPSocket.h
from [facc710023]
to [9fd81ec698].
︙ | | |
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
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
|
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
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
|
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
|
#ifdef OF_HAVE_BLOCKS
typedef void (^of_tcpsocket_async_connect_block_t)(OFTCPSocket*, OFException*);
typedef BOOL (^of_tcpsocket_async_accept_block_t)(OFTCPSocket*, OFTCPSocket*,
OFException*);
#endif
/**
* \brief A class which provides functions to create and use TCP sockets.
/*!
* @brief A class which provides functions to create and use TCP sockets.
*
* To connect to a server, create a socket and connect it.
* To create a server, create a socket, bind it and listen on it.
*/
@interface OFTCPSocket: OFStreamSocket
{
BOOL listening;
struct sockaddr_storage *sockAddr;
socklen_t sockAddrLen;
OFString *SOCKS5Host;
uint16_t SOCKS5Port;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, getter=isListening) BOOL listening;
@property (copy) OFString *SOCKS5Host;
@property uint16_t SOCKS5Port;
#endif
/**
* \brief Sets the global SOCKS5 proxy host to use when creating a new socket
/*!
* @brief Sets the global SOCKS5 proxy host to use when creating a new socket
*
* \param host The host to use as a SOCKS5 proxy when creating a new socket
* @param host The host to use as a SOCKS5 proxy when creating a new socket
*/
+ (void)setSOCKS5Host: (OFString*)host;
/**
* \brief Returns the host to use as a SOCKS5 proxy when creating a new socket
/*!
* @brief Returns the host to use as a SOCKS5 proxy when creating a new socket
*
* \return The host to use as a SOCKS5 proxy when creating a new socket
* @return The host to use as a SOCKS5 proxy when creating a new socket
*/
+ (OFString*)SOCKS5Host;
/**
* \brief Sets the global SOCKS5 proxy port to use when creating a new socket
/*!
* @brief Sets the global SOCKS5 proxy port to use when creating a new socket
*
* \param port The port to use as a SOCKS5 proxy when creating a new socket
* @param port The port to use as a SOCKS5 proxy when creating a new socket
*/
+ (void)setSOCKS5Port: (uint16_t)port;
/**
* \brief Returns the port to use as a SOCKS5 proxy when creating a new socket
/*!
* @brief Returns the port to use as a SOCKS5 proxy when creating a new socket
*
* \return The port to use as a SOCKS5 proxy when creating a new socket
* @return The port to use as a SOCKS5 proxy when creating a new socket
*/
+ (uint16_t)SOCKS5Port;
/**
* \brief Sets the host to use as a SOCKS5 proxy.
/*!
* @brief Sets the host to use as a SOCKS5 proxy.
*
* \param host The host to use as a SOCKS5 proxy
* @param host The host to use as a SOCKS5 proxy
*/
- (void)setSOCKS5Host: (OFString*)host;
/**
* \brief Returns the host to use as a SOCKS5 proxy.
/*!
* @brief Returns the host to use as a SOCKS5 proxy.
*
* \return The host to use as a SOCKS5 proxy
* @return The host to use as a SOCKS5 proxy
*/
- (OFString*)SOCKS5Host;
/**
* \brief Sets the port to use on the SOCKS5 proxy.
/*!
* @brief Sets the port to use on the SOCKS5 proxy.
*
* The default port is 1080.
*
* \param port The port to use on the SOCKS5 proxy
* @param port The port to use on the SOCKS5 proxy
*/
- (void)setSOCKS5Port: (uint16_t)port;
/**
* \brief Returns the port to use on the SOCKS5 proxy.
/*!
* @brief Returns the port to use on the SOCKS5 proxy.
*
* \return The port to use on the SOCKS5 proxy
* @return The port to use on the SOCKS5 proxy
*/
- (uint16_t)SOCKS5Port;
/**
* \brief Connect the OFTCPSocket to the specified destination.
/*!
* @brief Connect the OFTCPSocket to the specified destination.
*
* \param host The host to connect to
* \param port The port on the host to connect to
* @param host The host to connect to
* @param port The port on the host to connect to
*/
- (void)connectToHost: (OFString*)host
port: (uint16_t)port;
/**
* \brief Asyncronously connect the OFTCPSocket to the specified destination.
/*!
* @brief Asyncronously connect the OFTCPSocket to the specified destination.
*
* \param host The host to connect to
* \param port The port on the host to connect to
* \param target The target on which to call the selector once the connection
* @param host The host to connect to
* @param port The port on the host to connect to
* @param target The target on which to call the selector once the connection
* has been established
* \param selector The selector to call on the target. The signature must be
* @param selector The selector to call on the target. The signature must be
* void (OFTCPSocket *socket, OFException *exception).
*/
- (void)asyncConnectToHost: (OFString*)host
port: (uint16_t)port
target: (id)target
selector: (SEL)selector;
#ifdef OF_HAVE_BLOCKS
/**
* \brief Asyncronously connect the OFTCPSocket to the specified destination.
/*!
* @brief Asyncronously connect the OFTCPSocket to the specified destination.
*
* \param host The host to connect to
* \param port The port on the host to connect to
* \param block The block to execute once the connection has been established
* @param host The host to connect to
* @param port The port on the host to connect to
* @param block The block to execute once the connection has been established
*/
- (void)asyncConnectToHost: (OFString*)host
port: (uint16_t)port
block: (of_tcpsocket_async_connect_block_t)block;
#endif
/**
* \brief Bind the socket on the specified port and host.
/*!
* @brief Bind the socket on the specified port and host.
*
* \param host The host to bind to. Use @"0.0.0.0" for IPv4 or @"::" for IPv6
* @param host The host to bind to. Use @"0.0.0.0" for IPv4 or @"::" for IPv6
* to bind to all.
* \param port The port to bind to. If the port is 0, an unused port will be
* @param port The port to bind to. If the port is 0, an unused port will be
* chosen, which can be obtained using the return value.
* \return The port the socket was bound to
* @return The port the socket was bound to
*/
- (uint16_t)bindToHost: (OFString*)host
port: (uint16_t)port;
/**
* \brief Listen on the socket.
/*!
* @brief Listen on the socket.
*
* \param backlog Maximum length for the queue of pending connections.
* @param backlog Maximum length for the queue of pending connections.
*/
- (void)listenWithBackLog: (int)backLog;
/**
* \brief Listen on the socket.
/*!
* @brief Listen on the socket.
*/
- (void)listen;
/**
* \brief Accept an incoming connection.
/*!
* @brief Accept an incoming connection.
*
* \return An autoreleased OFTCPSocket for the accepted connection.
* @return An autoreleased OFTCPSocket for the accepted connection.
*/
- (OFTCPSocket*)accept;
/**
* \brief Asyncronously ccept an incoming connection.
/*!
* @brief Asyncronously ccept an incoming connection.
*
* \param target The target on which to execute the selector when a new
* @param target The target on which to execute the selector when a new
* connection has been accepted. The method returns whether the
* next incoming connection should be accepted by the specified
* block as well.
* \param selector The selector to call on the target. The signature must be
* @param selector The selector to call on the target. The signature must be
* BOOL (OFTCPSocket *socket, OFTCPSocket *acceptedSocket,
* OFException *exception).
*/
- (void)asyncAcceptWithTarget: (id)target
selector: (SEL)selector;
#ifdef OF_HAVE_BLOCKS
/**
* \brief Asyncronously ccept an incoming connection.
/*!
* @brief Asyncronously ccept an incoming connection.
*
* \param block The block to execute when a new connection has been accepted.
* @param block The block to execute when a new connection has been accepted.
* Returns whether the next incoming connection should be accepted
* by the specified block as well.
*/
- (void)asyncAcceptWithBlock: (of_tcpsocket_async_accept_block_t)block;
#endif
/**
* \brief Enable or disable keep alives for the connection.
/*!
* @brief Enable or disable keep alives for the connection.
*
* \param enable Whether to enable or disable keep alives for the connection
* @param enable Whether to enable or disable keep alives for the connection
*/
- (void)setKeepAlivesEnabled: (BOOL)enable;
/**
* \brief Returns the remote address of the socket.
/*!
* @brief Returns the remote address of the socket.
*
* Only works with accepted sockets!
*
* \return The remote address as a string
* @return The remote address as a string
*/
- (OFString*)remoteAddress;
/**
* \brief Returns whether the socket is a listening socket.
/*!
* @brief Returns whether the socket is a listening socket.
*
* \return Whether the socket is a listening socket
* @return Whether the socket is a listening socket
*/
- (BOOL)isListening;
@end
|
Modified src/OFTLSKey.h
from [3990e8ca34]
to [5168cee9c0].
︙ | | |
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
|
*/
#import "OFObject.h"
#import "OFList.h"
#import "threading.h"
/**
* \brief A class for Thread Local Storage keys.
/*!
* @brief A class for Thread Local Storage keys.
*/
@interface OFTLSKey: OFObject
{
@public
of_tlskey_t key;
@protected
void (*destructor)(id);
of_list_object_t *listObject;
BOOL initialized;
}
/**
* \brief Creates a new Thread Local Storage key
/*!
* @brief Creates a new Thread Local Storage key
*
* \return A new, autoreleased Thread Local Storage key
* @return A new, autoreleased Thread Local Storage key
*/
+ (instancetype)TLSKey;
/**
* \brief Creates a new Thread Local Storage key with the specified destructor.
/*!
* @brief Creates a new Thread Local Storage key with the specified destructor.
*
* \param destructor A destructor that is called when the thread is terminated
* \return A new autoreleased Thread Local Storage key
* @param destructor A destructor that is called when the thread is terminated
* @return A new autoreleased Thread Local Storage key
*/
+ (instancetype)TLSKeyWithDestructor: (void(*)(id))destructor;
+ (void)OF_callAllDestructors;
/**
* \brief Initializes an already allocated Thread Local Storage Key with the
/*!
* @brief Initializes an already allocated Thread Local Storage Key with the
* specified destructor.
*
* \param destructor A destructor that is called when the thread is terminated
* \return An initialized Thread Local Storage key
* @param destructor A destructor that is called when the thread is terminated
* @return An initialized Thread Local Storage key
*/
- initWithDestructor: (void(*)(id))destructor;
@end
|
Modified src/OFTLSSocket.h
from [882cb079a6]
to [351d035ebc].
︙ | | |
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
|
#import "objfw-defs.h"
@class OFString;
@class OFArray;
@protocol OFTLSSocket;
/**
* \brief A delegate for classes implementing the OFTLSSocket protocol.
/*!
* @brief A delegate for classes implementing the OFTLSSocket protocol.
*/
@protocol OFTLSSocketDelegate
/**
* \brief This callback is called when the TLS socket wants to know if it
/*!
* @brief This callback is called when the TLS socket wants to know if it
* should accept the received keychain.
*
* \param certificate An array of objects implementing the OFX509Certificate
* @param certificate An array of objects implementing the OFX509Certificate
* protocol
* \return Whether the TLS socket should accept the received keychain
* @return Whether the TLS socket should accept the received keychain
*/
- (BOOL)socket: (id <OFTLSSocket>)socket
shouldAcceptKeychain: (OFArray*)keychain;
@end
/**
* \brief A protocol that should be implemented by 3rd party libraries
/*!
* @brief A protocol that should be implemented by 3rd party libraries
* implementing TLS.
*/
@protocol OFTLSSocket
#ifdef OF_HAVE_PROPERTIES
@property (assign) id <OFTLSSocketDelegate> delegate;
@property (copy) OFString *certificateFile, *privateKeyFile;
@property const char *privateKeyPassphrase;
#endif
/**
* \brief Sets a delegate for the TLS socket.
/*!
* @brief Sets a delegate for the TLS socket.
*
* \param delegate The delegate to use
* @param delegate The delegate to use
*/
- (void)setDelegate: (id <OFTLSSocketDelegate>)delegate;
/**
* \brief Returns the delegate used by the TLS socket.
/*!
* @brief Returns the delegate used by the TLS socket.
*
* \return The delegate used by the TLS socket
* @return The delegate used by the TLS socket
*/
- (id <OFTLSSocketDelegate>)delegate;
/**
* \brief Sets the path to the X.509 certificate file to use.
/*!
* @brief Sets the path to the X.509 certificate file to use.
*
* \param certificateFile The path to the X.509 certificate file
* @param certificateFile The path to the X.509 certificate file
*/
- (void)setCertificateFile: (OFString*)certificateFile;
/**
* \brief Returns the path of the X.509 certificate file used by the TLS socket.
/*!
* @brief Returns the path of the X.509 certificate file used by the TLS socket.
*
* \return The path of the X.509 certificate file used by the TLS socket
* @return The path of the X.509 certificate file used by the TLS socket
*/
- (OFString*)certificateFile;
/**
* \brief Sets the path to the PKCS#8 private key file to use.
/*!
* @brief Sets the path to the PKCS#8 private key file to use.
*
* \param privateKeyFile The path to the PKCS#8 private key file
* @param privateKeyFile The path to the PKCS#8 private key file
*/
- (void)setPrivateKeyFile: (OFString*)privateKeyFile;
/**
* \brief Returns the path of the PKCS#8 private key file used by the TLS
/*!
* @brief Returns the path of the PKCS#8 private key file used by the TLS
* socket.
*
* \return The path of the PKCS#8 private key file used by the TLS socket
* @return The path of the PKCS#8 private key file used by the TLS socket
*/
- (OFString*)privateKeyFile;
/**
* \brief Sets the passphrase to decrypt the PKCS#8 private key file.
/*!
* @brief Sets the passphrase to decrypt the PKCS#8 private key file.
*
* \warning You have to ensure that this is in secure memory protected from
* @warning You have to ensure that this is in secure memory protected from
* swapping! This is also the reason why this is not an OFString.
*
* \param privateKeyPassphrase The passphrase to decrypt the PKCS#8 private
* @param privateKeyPassphrase The passphrase to decrypt the PKCS#8 private
* key file
*/
- (void)setPrivateKeyPassphrase: (const char*)privateKeyPassphrase;
/**
* \brief Returns the passphrase to decrypt the PKCS#8 private key file.
/*!
* @brief Returns the passphrase to decrypt the PKCS#8 private key file.
*
* \warning You should not copy this to insecure memory which is swappable!
* @warning You should not copy this to insecure memory which is swappable!
*
* \return The passphrase to decrypt the PKCS#8 private key file
* @return The passphrase to decrypt the PKCS#8 private key file
*/
- (const char*)privateKeyPassphrase;
@end
|
Modified src/OFThread.h
from [384da59e46]
to [f5f613cd72].
︙ | | |
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
-
-
+
+
-
+
|
@class OFSortedList;
@class OFRunLoop;
#ifdef OF_HAVE_BLOCKS
typedef id (^of_thread_block_t)(id object);
#endif
/**
* \brief A class which provides portable threads.
/*!
* @brief A class which provides portable threads.
*
* To use it, you should create a new class derived from it and reimplement
* main.
*
* \warning Even though the OFCopying protocol is implemented, it does
* @warning Even though the OFCopying protocol is implemented, it does
* <i>not</i> return an independent copy of the thread, but instead
* retains it. This is so that the thread can be used as a key for a
* dictionary, so context can be associated with a thread.
*/
@interface OFThread: OFObject <OFCopying>
{
#ifdef OF_THREAD_M
|
︙ | | |
60
61
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
|
60
61
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
|
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
|
OFRunLoop *runLoop;
}
#if defined(OF_HAVE_PROPERTIES) && defined(OF_HAVE_BLOCKS)
@property (copy) of_thread_block_t block;
#endif
/**
* \brief Creates a new thread.
/*!
* @brief Creates a new thread.
*
* \return A new, autoreleased thread
* @return A new, autoreleased thread
*/
+ (instancetype)thread;
/**
* \brief Creates a new thread with the specified object.
/*!
* @brief Creates a new thread with the specified object.
*
* \param object An object which is passed for use in the main method or nil
* \return A new, autoreleased thread
* @param object An object which is passed for use in the main method or nil
* @return A new, autoreleased thread
*/
+ (instancetype)threadWithObject: (id)object;
#ifdef OF_HAVE_BLOCKS
/**
* \brief Creates a new thread with the specified block.
/*!
* @brief Creates a new thread with the specified block.
*
* \param block A block which is executed by the thread
* \return A new, autoreleased thread
* @param block A block which is executed by the thread
* @return A new, autoreleased thread
*/
+ (instancetype)threadWithBlock: (of_thread_block_t)block;
#endif
/**
* \brief Sets the Thread Local Storage for the specified key.
/*!
* @brief Sets the Thread Local Storage for the specified key.
*
* The specified object is first retained and then the object stored before is
* released. You can specify nil as object if you want the old object to be
* released and don't want any new object for the TLS key.
*
* \param key The Thread Local Storage key
* \param object The object the Thread Local Storage key will be set to
* @param key The Thread Local Storage key
* @param object The object the Thread Local Storage key will be set to
*/
+ (void)setObject: (id)object
forTLSKey: (OFTLSKey*)key;
/**
* \brief Returns the object for the specified Thread Local Storage key.
/*!
* @brief Returns the object for the specified Thread Local Storage key.
*
* The returned object is <i>not</i> retained and autoreleased for performance
* reasons!
*
* \param key The Thread Local Storage key
* @param key The Thread Local Storage key
*/
+ (id)objectForTLSKey: (OFTLSKey*)key;
/**
* \brief Returns the current thread.
/*!
* @brief Returns the current thread.
*
* \return The current thread
* @return The current thread
*/
+ (OFThread*)currentThread;
/**
* \brief Returns the main thread.
/*!
* @brief Returns the main thread.
*
* \return The main thread
* @return The main thread
*/
+ (OFThread*)mainThread;
/**
* \brief Suspends execution of the current thread for the specified time
/*!
* @brief Suspends execution of the current thread for the specified time
* interval.
*
* \param seconds The number of seconds to sleep
* @param seconds The number of seconds to sleep
*/
+ (void)sleepForTimeInterval: (double)seconds;
/**
* \brief Suspends execution of the current thread until the specified date.
/*!
* @brief Suspends execution of the current thread until the specified date.
*
* \param date The date to wait for
* @param date The date to wait for
*/
+ (void)sleepUntilDate: (OFDate*)date;
/**
* \brief Yields a processor voluntarily and moves the thread at the end of the
/*!
* @brief Yields a processor voluntarily and moves the thread at the end of the
* queue for its priority.
*/
+ (void)yield;
/**
* \brief Terminates the current thread, letting it return nil.
/*!
* @brief Terminates the current thread, letting it return nil.
*/
+ (void)terminate;
/**
* \brief Terminates the current thread, letting it return the specified object.
/*!
* @brief Terminates the current thread, letting it return the specified object.
*
* \param object The object which the terminated thread will return
* @param object The object which the terminated thread will return
*/
+ (void)terminateWithObject: (id)object;
+ (void)OF_createMainThread;
/**
* \brief Initializes an already allocated thread with the specified object.
/*!
* @brief Initializes an already allocated thread with the specified object.
*
* \param object An object which is passed for use in the main method or nil
* \return An initialized OFThread.
* @param object An object which is passed for use in the main method or nil
* @return An initialized OFThread.
*/
- initWithObject: (id)object;
#ifdef OF_HAVE_BLOCKS
/**
* \brief Initializes an already allocated thread with the specified block.
/*!
* @brief Initializes an already allocated thread with the specified block.
*
* \param block A block which is executed by the thread
* \return An initialized OFThread.
* @param block A block which is executed by the thread
* @return An initialized OFThread.
*/
- initWithBlock: (of_thread_block_t)block;
#endif
/**
* \brief The main routine of the thread. You need to reimplement this!
/*!
* @brief The main routine of the thread. You need to reimplement this!
*
* It can access the object passed to the threadWithObject or initWithObject
* method using the instance variable named object.
*
* \return The object the join method should return when called for this thread
* @return The object the join method should return when called for this thread
*/
- (id)main;
/**
* \brief This routine is exectued when the thread's main method has finished
/*!
* @brief This routine is exectued when the thread's main method has finished
* executing or terminate has been called.
*
* \note Be sure to call [super handleTermination]!
* @note Be sure to call [super handleTermination]!
*/
- (void)handleTermination;
/**
* \brief Starts the thread.
/*!
* @brief Starts the thread.
*/
- (void)start;
/**
* \brief Joins a thread.
/*!
* @brief Joins a thread.
*
* \return The object returned by the main method of the thread.
* @return The object returned by the main method of the thread.
*/
- (id)join;
/**
* \brief Returns the run loop for the thread.
/*!
* @brief Returns the run loop for the thread.
*
* \return The run loop for the thread
* @return The run loop for the thread
*/
- (OFRunLoop*)runLoop;
@end
|
Modified src/OFThreadPool.h
from [9c891bd73d]
to [1c5160c994].
︙ | | |
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
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
|
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
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
|
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
|
#endif
@class OFMutableArray;
@class OFList;
@class OFCondition;
@class OFThreadPoolJob;
/**
* \brief A class providing a pool of reusable threads.
/*!
* @brief A class providing a pool of reusable threads.
*
* \note When the thread pool is released, all threads will terminate after
* @note When the thread pool is released, all threads will terminate after
* they finish the job they are currently processing.
*/
@interface OFThreadPool: OFObject
{
size_t size;
OFMutableArray *threads;
volatile int count;
@public
OFList *queue;
OFCondition *queueCondition;
volatile int doneCount;
OFCondition *countCondition;
}
/**
* \brief Returns a new thread pool with one thread for each core in the system.
/*!
* @brief Returns a new thread pool with one thread for each core in the system.
*
* \warning If for some reason the number of cores in the system could not be
* @warning If for some reason the number of cores in the system could not be
* determined, the pool will only have one thread!
*
* \return A new thread pool with one thread for each core in the system
* @return A new thread pool with one thread for each core in the system
*/
+ (instancetype)threadPool;
/**
* \brief Returns a new thread pool with the specified number of threads.
/*!
* @brief Returns a new thread pool with the specified number of threads.
*
* \warning If for some reason the number of cores in the system could not be
* @warning If for some reason the number of cores in the system could not be
* determined, the pool will only have one thread!
*
* \param size The number of threads for the pool
* \return A new thread pool with the specified number of threads
* @param size The number of threads for the pool
* @return A new thread pool with the specified number of threads
*/
+ (instancetype)threadPoolWithSize: (size_t)size;
/**
* \brief Initializes an already allocated OFThreadPool with one thread for
/*!
* @brief Initializes an already allocated OFThreadPool with one thread for
* each core in the system.
*
* \warning If for some reason the number of cores in the system could not be
* @warning If for some reason the number of cores in the system could not be
* determined, the pool will only have one thread!
*
* \return An initialized OFThreadPool with one thread for each core in the
* @return An initialized OFThreadPool with one thread for each core in the
* system
*/
- init;
/**
* \brief Initializes an already allocated OFThreadPool with the specified
/*!
* @brief Initializes an already allocated OFThreadPool with the specified
* number of threads.
*
* \warning If for some reason the number of cores in the system could not be
* @warning If for some reason the number of cores in the system could not be
* determined, the pool will only have one thread!
*
* \param size The number of threads for the pool
* \return An initialized OFThreadPool with the specified number of threads
* @param size The number of threads for the pool
* @return An initialized OFThreadPool with the specified number of threads
*/
- initWithSize: (size_t)size;
/**
* \brief Execute the specified selector on the specified target with the
/*!
* @brief Execute the specified selector on the specified target with the
* specified object as soon as a thread is ready.
*
* \param target The target on which to perform the selector
* \param selector The selector to perform on the target
* \param object THe object with which the selector is performed on the target
* @param target The target on which to perform the selector
* @param selector The selector to perform on the target
* @param object THe object with which the selector is performed on the target
*/
- (void)dispatchWithTarget: (id)target
selector: (SEL)selector
object: (id)object;
#ifdef OF_HAVE_BLOCKS
/**
* \brief Executes the specified block as soon as a thread is ready.
/*!
* @brief Executes the specified block as soon as a thread is ready.
*
* \param block The block to execute
* @param block The block to execute
*/
- (void)dispatchWithBlock: (of_thread_pool_block_t)block;
#endif
/**
* \brief Waits until all jobs are done.
/*!
* @brief Waits until all jobs are done.
*/
- (void)waitUntilDone;
/**
* \brief Returns the size of the thread pool.
/*!
* @brief Returns the size of the thread pool.
*
* \return The size of the thread pool
* @return The size of the thread pool
*/
- (size_t)size;
@end
|
Modified src/OFTimer.h
from [72b838b1fd]
to [428e3783b2].
︙ | | |
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
|
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
|
-
-
+
+
-
-
+
+
-
+
-
-
-
-
+
+
+
+
-
-
+
+
-
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
+
-
-
-
+
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
-
+
+
+
-
-
+
+
-
+
-
-
-
-
+
+
+
+
-
-
+
+
-
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
+
-
-
-
+
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
|
@class OFDate;
@class OFCondition;
#ifdef OF_HAVE_BLOCKS
typedef void (^of_timer_block_t)(OFTimer*);
#endif
/**
* \brief A class for creating and firing timers.
/*!
* @brief A class for creating and firing timers.
*/
@interface OFTimer: OFObject <OFComparing>
{
OFDate *fireDate;
double interval;
id target, object1, object2;
SEL selector;
uint8_t arguments;
BOOL repeats;
#ifdef OF_HAVE_BLOCKS
of_timer_block_t block;
#endif
BOOL isValid, done;
OFCondition *condition;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, retain) OFDate *fireDate;
#endif
/**
* \brief Creates and schedules a new timer with the specified time interval.
/*!
* @brief Creates and schedules a new timer with the specified time interval.
*
* \param interval The time interval after which the timer should be executed
* @param interval The time interval after which the timer should be executed
* when fired
* \param target The target on which to call the selector
* \param selector The selector to call on the target
* \param repeats Whether the timer repeats after it has been executed
* \return A new, autoreleased timer
* @param target The target on which to call the selector
* @param selector The selector to call on the target
* @param repeats Whether the timer repeats after it has been executed
* @return A new, autoreleased timer
*/
+ (instancetype)scheduledTimerWithTimeInterval: (double)interval
target: (id)target
selector: (SEL)selector
repeats: (BOOL)repeats;
/**
* \brief Creates and schedules a new timer with the specified time interval.
/*!
* @brief Creates and schedules a new timer with the specified time interval.
*
* \param interval The time interval after which the timer should be executed
* @param interval The time interval after which the timer should be executed
* when fired
* \param target The target on which to call the selector
* \param selector The selector to call on the target
* \param object An object to pass when calling the selector on the target
* \param repeats Whether the timer repeats after it has been executed
* \return A new, autoreleased timer
* @param target The target on which to call the selector
* @param selector The selector to call on the target
* @param object An object to pass when calling the selector on the target
* @param repeats Whether the timer repeats after it has been executed
* @return A new, autoreleased timer
*/
+ (instancetype)scheduledTimerWithTimeInterval: (double)interval
target: (id)target
selector: (SEL)selector
object: (id)object
repeats: (BOOL)repeats;
/**
* \brief Creates and schedules a new timer with the specified time interval.
/*!
* @brief Creates and schedules a new timer with the specified time interval.
*
* \param interval The time interval after which the timer should be executed
* @param interval The time interval after which the timer should be executed
* when fired
* \param target The target on which to call the selector
* \param selector The selector to call on the target
* \param object1 The first object to pass when calling the selector on the
* @param target The target on which to call the selector
* @param selector The selector to call on the target
* @param object1 The first object to pass when calling the selector on the
* target
* \param object2 The second object to pass when calling the selector on the
* @param object2 The second object to pass when calling the selector on the
* target
* \param repeats Whether the timer repeats after it has been executed
* \return A new, autoreleased timer
* @param repeats Whether the timer repeats after it has been executed
* @return A new, autoreleased timer
*/
+ (instancetype)scheduledTimerWithTimeInterval: (double)interval
target: (id)target
selector: (SEL)selector
object: (id)object1
object: (id)object2
repeats: (BOOL)repeats;
#ifdef OF_HAVE_BLOCKS
/**
* \brief Creates and schedules a new timer with the specified time interval.
/*!
* @brief Creates and schedules a new timer with the specified time interval.
*
* \param interval The time interval after which the timer should be executed
* @param interval The time interval after which the timer should be executed
* when fired
* \param repeats Whether the timer repeats after it has been executed
* \param block The block to invoke when the timer fires
* \return A new, autoreleased timer
* @param repeats Whether the timer repeats after it has been executed
* @param block The block to invoke when the timer fires
* @return A new, autoreleased timer
*/
+ (instancetype)scheduledTimerWithTimeInterval: (double)interval
repeats: (BOOL)repeats
block: (of_timer_block_t)block;
#endif
/**
* \brief Creates a new timer with the specified time interval.
/*!
* @brief Creates a new timer with the specified time interval.
*
* \param interval The time interval after which the timer should be executed
* @param interval The time interval after which the timer should be executed
* when fired
* \param target The target on which to call the selector
* \param selector The selector to call on the target
* \param repeats Whether the timer repeats after it has been executed
* \return A new, autoreleased timer
* @param target The target on which to call the selector
* @param selector The selector to call on the target
* @param repeats Whether the timer repeats after it has been executed
* @return A new, autoreleased timer
*/
+ (instancetype)timerWithTimeInterval: (double)interval
target: (id)target
selector: (SEL)selector
repeats: (BOOL)repeats;
/**
* \brief Creates a new timer with the specified time interval.
/*!
* @brief Creates a new timer with the specified time interval.
*
* \param interval The time interval after which the timer should be executed
* @param interval The time interval after which the timer should be executed
* when fired
* \param target The target on which to call the selector
* \param selector The selector to call on the target
* \param object An object to pass when calling the selector on the target
* \param repeats Whether the timer repeats after it has been executed
* \return A new, autoreleased timer
* @param target The target on which to call the selector
* @param selector The selector to call on the target
* @param object An object to pass when calling the selector on the target
* @param repeats Whether the timer repeats after it has been executed
* @return A new, autoreleased timer
*/
+ (instancetype)timerWithTimeInterval: (double)interval
target: (id)target
selector: (SEL)selector
object: (id)object
repeats: (BOOL)repeats;
/**
* \brief Creates a new timer with the specified time interval.
/*!
* @brief Creates a new timer with the specified time interval.
*
* \param interval The time interval after which the timer should be executed
* @param interval The time interval after which the timer should be executed
* when fired
* \param target The target on which to call the selector
* \param selector The selector to call on the target
* \param object1 The first object to pass when calling the selector on the
* @param target The target on which to call the selector
* @param selector The selector to call on the target
* @param object1 The first object to pass when calling the selector on the
* target
* \param object2 The second object to pass when calling the selector on the
* @param object2 The second object to pass when calling the selector on the
* target
* \param repeats Whether the timer repeats after it has been executed
* \return A new, autoreleased timer
* @param repeats Whether the timer repeats after it has been executed
* @return A new, autoreleased timer
*/
+ (instancetype)timerWithTimeInterval: (double)interval
target: (id)target
selector: (SEL)selector
object: (id)object1
object: (id)object2
repeats: (BOOL)repeats;
#ifdef OF_HAVE_BLOCKS
/**
* \brief Creates a new timer with the specified time interval.
/*!
* @brief Creates a new timer with the specified time interval.
*
* \param interval The time interval after which the timer should be executed
* @param interval The time interval after which the timer should be executed
* when fired
* \param repeats Whether the timer repeats after it has been executed
* \param block The block to invoke when the timer fires
* \return A new, autoreleased timer
* @param repeats Whether the timer repeats after it has been executed
* @param block The block to invoke when the timer fires
* @return A new, autoreleased timer
*/
+ (instancetype)timerWithTimeInterval: (double)interval
repeats: (BOOL)repeats
block: (of_timer_block_t)block;
#endif
/**
* \brief Initializes an already allocated timer with the specified time
/*!
* @brief Initializes an already allocated timer with the specified time
* interval.
*
* \param fireDate The date at which the timer should fire
* \param interval The time interval after which to repeat the timer, if it is
* @param fireDate The date at which the timer should fire
* @param interval The time interval after which to repeat the timer, if it is
* a repeating timer
* \param target The target on which to call the selector
* \param selector The selector to call on the target
* \param repeats Whether the timer repeats after it has been executed
* \return An initialized timer
* @param target The target on which to call the selector
* @param selector The selector to call on the target
* @param repeats Whether the timer repeats after it has been executed
* @return An initialized timer
*/
- initWithFireDate: (OFDate*)fireDate
interval: (double)interval
target: (id)target
selector: (SEL)selector
repeats: (BOOL)repeats;
/**
* \brief Initializes an already allocated timer with the specified time
/*!
* @brief Initializes an already allocated timer with the specified time
* interval.
*
* \param fireDate The date at which the timer should fire
* \param interval The time interval after which to repeat the timer, if it is
* @param fireDate The date at which the timer should fire
* @param interval The time interval after which to repeat the timer, if it is
* a repeating timer
* \param target The target on which to call the selector
* \param selector The selector to call on the target
* \param object An object to pass when calling the selector on the target
* \param repeats Whether the timer repeats after it has been executed
* \return An initialized timer
* @param target The target on which to call the selector
* @param selector The selector to call on the target
* @param object An object to pass when calling the selector on the target
* @param repeats Whether the timer repeats after it has been executed
* @return An initialized timer
*/
- initWithFireDate: (OFDate*)fireDate
interval: (double)interval
target: (id)target
selector: (SEL)selector
object: (id)object1
repeats: (BOOL)repeats;
/**
* \brief Initializes an already allocated timer with the specified time
/*!
* @brief Initializes an already allocated timer with the specified time
* interval.
*
* \param fireDate The date at which the timer should fire
* \param interval The time interval after which to repeat the timer, if it is
* @param fireDate The date at which the timer should fire
* @param interval The time interval after which to repeat the timer, if it is
* a repeating timer
* \param target The target on which to call the selector
* \param selector The selector to call on the target
* \param repeats Whether the timer repeats after it has been executed
* \return An initialized timer
* @param target The target on which to call the selector
* @param selector The selector to call on the target
* @param repeats Whether the timer repeats after it has been executed
* @return An initialized timer
*/
- initWithFireDate: (OFDate*)fireDate
interval: (double)interval
target: (id)target
selector: (SEL)selector
object: (id)object1
object: (id)object2
repeats: (BOOL)repeats;
#ifdef OF_HAVE_BLOCKS
/**
* \brief Initializes an already allocated timer with the specified time
/*!
* @brief Initializes an already allocated timer with the specified time
* interval.
*
* \param fireDate The date at which the timer should fire
* \param interval The time interval after which to repeat the timer, if it is
* @param fireDate The date at which the timer should fire
* @param interval The time interval after which to repeat the timer, if it is
* a repeating timer
* \param repeats Whether the timer repeats after it has been executed
* \param block The block to invoke when the timer fires
* \return An initialized timer
* @param repeats Whether the timer repeats after it has been executed
* @param block The block to invoke when the timer fires
* @return An initialized timer
*/
- initWithFireDate: (OFDate*)fireDate
interval: (double)interval
repeats: (BOOL)repeats
block: (of_timer_block_t)block;
#endif
/**
* \brief Fires the timer, meaning it will execute the specified selector on the
/*!
* @brief Fires the timer, meaning it will execute the specified selector on the
* target.
*/
- (void)fire;
/**
* \brief Returns the next date at which the timer will fire.
/*!
* @brief Returns the next date at which the timer will fire.
*
* \return The next date at which the timer will fire
* @return The next date at which the timer will fire
*/
- (OFDate*)fireDate;
/**
* \brief Invalidates the timer, preventing it from firing.
/*!
* @brief Invalidates the timer, preventing it from firing.
*/
- (void)invalidate;
/**
* \brief Returns whether the timer is valid.
/*!
* @brief Returns whether the timer is valid.
*
* \return Whether the timer is valid
* @return Whether the timer is valid
*/
- (BOOL)isValid;
/**
* \brief Returns the time interval in which the timer will repeat, if it is a
/*!
* @brief Returns the time interval in which the timer will repeat, if it is a
* repeating timer.
*
* \return The time interval in which the timer will repeat, if it is a
* @return The time interval in which the timer will repeat, if it is a
* repeating timer
*/
- (double)timeInterval;
/**
* \brief Waits until the timer fired.
/*!
* @brief Waits until the timer fired.
*/
- (void)waitUntilDone;
@end
|
Modified src/OFURL.h
from [23c8849a02]
to [ed2d442f57].
︙ | | |
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
-
-
+
+
|
*/
#import "OFObject.h"
#import "OFSerialization.h"
@class OFString;
/**
* \brief A class for parsing URLs and accessing parts of it.
/*!
* @brief A class for parsing URLs and accessing parts of it.
*/
@interface OFURL: OFObject <OFCopying, OFSerialization>
{
OFString *scheme;
OFString *host;
uint16_t port;
OFString *user;
|
︙ | | |
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
|
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
|
-
+
-
-
+
+
-
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
|
@property (copy) OFString *password;
@property (copy) OFString *path;
@property (copy) OFString *parameters;
@property (copy) OFString *query;
@property (copy) OFString *fragment;
#endif
/**
/*!
* Creates a new URL with the specified string.
*
* \param string A string describing a URL
* \return A new, autoreleased OFURL
* @param string A string describing a URL
* @return A new, autoreleased OFURL
*/
+ (instancetype)URLWithString: (OFString*)string;
/**
/*!
* Creates a new URL with the specified string relative to the specified URL.
*
* \param string A string describing a URL
* \param URL An URL to which the string is relative
* \return A new, autoreleased OFURL
* @param string A string describing a URL
* @param URL An URL to which the string is relative
* @return A new, autoreleased OFURL
*/
+ (instancetype)URLWithString: (OFString*)string
relativeToURL: (OFURL*)URL;
/**
* \brief Initializes an already allocated OFURL with the specified string.
/*!
* @brief Initializes an already allocated OFURL with the specified string.
*
* \param string A string describing a URL
* \return An initialized OFURL
* @param string A string describing a URL
* @return An initialized OFURL
*/
- initWithString: (OFString*)string;
/**
* \brief Initializes an already allocated OFURL with the specified string and
/*!
* @brief Initializes an already allocated OFURL with the specified string and
* relative URL.
*
* \param string A string describing a URL
* \param URL A URL to which the string is relative
* \return An initialized OFURL
* @param string A string describing a URL
* @param URL A URL to which the string is relative
* @return An initialized OFURL
*/
- initWithString: (OFString*)string
relativeToURL: (OFURL*)url;
/**
* \brief Returns the scheme part of the URL.
/*!
* @brief Returns the scheme part of the URL.
*
* \return The scheme part of the URL
* @return The scheme part of the URL
*/
- (OFString*)scheme;
/**
* \brief Set the scheme part of the URL.
/*!
* @brief Set the scheme part of the URL.
*
* \param scheme The scheme part of the URL to set
* @param scheme The scheme part of the URL to set
*/
- (void)setScheme: (OFString*)scheme;
/**
* \brief Returns the host part of the URL.
/*!
* @brief Returns the host part of the URL.
*
* \return The host part of the URL
* @return The host part of the URL
*/
- (OFString*)host;
/**
* \brief Set the host part of the URL.
/*!
* @brief Set the host part of the URL.
*
* \param host The host part of the URL to set
* @param host The host part of the URL to set
*/
- (void)setHost: (OFString*)host;
/**
* \brief Returns the port part of the URL.
/*!
* @brief Returns the port part of the URL.
*
* \return The port part of the URL
* @return The port part of the URL
*/
- (uint16_t)port;
/**
* \brief Set the port part of the URL.
/*!
* @brief Set the port part of the URL.
*
* \param port The port part of the URL to set
* @param port The port part of the URL to set
*/
- (void)setPort: (uint16_t)port;
/**
* \brief Returns the user part of the URL.
/*!
* @brief Returns the user part of the URL.
*
* \return The user part of the URL
* @return The user part of the URL
*/
- (OFString*)user;
/**
* \brief Set the user part of the URL.
/*!
* @brief Set the user part of the URL.
*
* \param user The user part of the URL to set
* @param user The user part of the URL to set
*/
- (void)setUser: (OFString*)user;
/**
* \brief Returns the password part of the URL.
/*!
* @brief Returns the password part of the URL.
*
* \return The password part of the URL
* @return The password part of the URL
*/
- (OFString*)password;
/**
* \brief Set the password part of the URL.
/*!
* @brief Set the password part of the URL.
*
* \param password The password part of the URL to set
* @param password The password part of the URL to set
*/
- (void)setPassword: (OFString*)password;
/**
* \brief Returns the path part of the URL.
/*!
* @brief Returns the path part of the URL.
*
* \return The path part of the URL
* @return The path part of the URL
*/
- (OFString*)path;
/**
* \brief Set the path part of the URL.
/*!
* @brief Set the path part of the URL.
*
* \param path The path part of the URL to set
* @param path The path part of the URL to set
*/
- (void)setPath: (OFString*)path;
/**
* \brief Returns the parameters part of the URL.
/*!
* @brief Returns the parameters part of the URL.
*
* \return The parameters part of the URL
* @return The parameters part of the URL
*/
- (OFString*)parameters;
/**
* \brief Set the parameters part of the URL.
/*!
* @brief Set the parameters part of the URL.
*
* \param parameters The parameters part of the URL to set
* @param parameters The parameters part of the URL to set
*/
- (void)setParameters: (OFString*)parameters;
/**
* \brief Returns the query part of the URL.
/*!
* @brief Returns the query part of the URL.
*
* \return The query part of the URL
* @return The query part of the URL
*/
- (OFString*)query;
/**
* \brief Set the query part of the URL.
/*!
* @brief Set the query part of the URL.
*
* \param query The query part of the URL to set
* @param query The query part of the URL to set
*/
- (void)setQuery: (OFString*)query;
/**
* \brief Returns the fragment part of the URL.
/*!
* @brief Returns the fragment part of the URL.
*
* \return The fragment part of the URL
* @return The fragment part of the URL
*/
- (OFString*)fragment;
/**
* \brief Set the fragment part of the URL.
/*!
* @brief Set the fragment part of the URL.
*
* \param fragment The fragment part of the URL to set
* @param fragment The fragment part of the URL to set
*/
- (void)setFragment: (OFString*)fragment;
/**
* \brief Returns the URL as a string.
/*!
* @brief Returns the URL as a string.
*
* \return The URL as a string
* @return The URL as a string
*/
- (OFString*)string;
@end
|
Modified src/OFXMLAttribute.h
from [f0bb79b5f0]
to [c19bf55bb6].
︙ | | |
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
+
-
-
+
+
-
+
|
* file.
*/
#import "OFXMLNode.h"
@class OFString;
/**
* \brief A representation of an attribute of an XML element as an object.
/*!
* @brief A representation of an attribute of an XML element as an object.
*/
@interface OFXMLAttribute: OFXMLNode
{
@public
OFString *name;
OFString *ns;
OFString *stringValue;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, copy) OFString *name;
@property (readonly, copy, getter=namespace) OFString *ns;
@property (readonly, copy) OFString *stringValue;
#endif
/**
* \brief Creates a new XML attribute.
/*!
* @brief Creates a new XML attribute.
*
* \param name The name of the attribute
* \param ns The namespace of the attribute
* \param value The string value of the attribute
* \return A new autoreleased OFXMLAttribute with the specified parameters
* @param name The name of the attribute
* @param ns The namespace of the attribute
* @param value The string value of the attribute
* @return A new autoreleased OFXMLAttribute with the specified parameters
*/
+ (instancetype)attributeWithName: (OFString*)name
namespace: (OFString*)ns
stringValue: (OFString*)value;
/**
* \brief Initializes an already allocated OFXMLAttribute.
/*!
* @brief Initializes an already allocated OFXMLAttribute.
*
* \param name The name of the attribute
* \param ns The namespace of the attribute
* \param value The string value of the attribute
* \return An initialized OFXMLAttribute with the specified parameters
* @param name The name of the attribute
* @param ns The namespace of the attribute
* @param value The string value of the attribute
* @return An initialized OFXMLAttribute with the specified parameters
*/
- initWithName: (OFString*)name
namespace: (OFString*)ns
stringValue: (OFString*)value;
/**
* \brief Returns the name of the attribute as an autoreleased OFString.
/*!
* @brief Returns the name of the attribute as an autoreleased OFString.
*
* \return The name of the attribute as an autoreleased OFString
* @return The name of the attribute as an autoreleased OFString
*/
- (OFString*)name;
/**
* \brief Returns the namespace of the attribute as an autoreleased OFString.
/*!
* @brief Returns the namespace of the attribute as an autoreleased OFString.
*
* \return The namespace of the attribute as an autoreleased OFString
* @return The namespace of the attribute as an autoreleased OFString
*/
- (OFString*)namespace;
@end
|
Modified src/OFXMLCDATA.h
from [f8c9c1d9fa]
to [f44a02374d].
︙ | | |
12
13
14
15
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
|
12
13
14
15
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
|
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFXMLNode.h"
/**
* \brief A class representing XML CDATA.
/*!
* @brief A class representing XML CDATA.
*/
@interface OFXMLCDATA: OFXMLNode
{
OFString *CDATA;
}
/**
* \brief Creates a new OFXMLCDATA with the specified string.
/*!
* @brief Creates a new OFXMLCDATA with the specified string.
*
* \param string The string value for the CDATA
* \return A new OFXMLCDATA
* @param string The string value for the CDATA
* @return A new OFXMLCDATA
*/
+ (instancetype)CDATAWithString: (OFString*)string;
/**
* \brief Initializes an alredy allocated OFXMLCDATA with the specified string.
/*!
* @brief Initializes an alredy allocated OFXMLCDATA with the specified string.
*
* \param string The string value for the CDATA
* \return An initialized OFXMLCDATA
* @param string The string value for the CDATA
* @return An initialized OFXMLCDATA
*/
- initWithString: (OFString*)string;
@end
|
Modified src/OFXMLCharacters.h
from [88de715286]
to [f441aea2d0].
︙ | | |
12
13
14
15
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
|
12
13
14
15
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
|
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFXMLNode.h"
/**
* \brief A class representing XML characters.
/*!
* @brief A class representing XML characters.
*/
@interface OFXMLCharacters: OFXMLNode
{
OFString *characters;
}
/**
* \brief Creates a new OFXMLCharacters with the specified string.
/*!
* @brief Creates a new OFXMLCharacters with the specified string.
*
* \param string The string value for the characters
* \return A new OFXMLCharacters
* @param string The string value for the characters
* @return A new OFXMLCharacters
*/
+ (instancetype)charactersWithString: (OFString*)string;
/**
* \brief Initializes an already allocated OFXMLCharacters with the specified
/*!
* @brief Initializes an already allocated OFXMLCharacters with the specified
* string.
*
* \param string The string value for the characters
* \return An initialized OFXMLCharacters
* @param string The string value for the characters
* @return An initialized OFXMLCharacters
*/
- initWithString: (OFString*)string;
@end
|
Modified src/OFXMLComment.h
from [22d9c30afb]
to [ec0321adf2].
︙ | | |
12
13
14
15
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
|
12
13
14
15
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
|
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFXMLNode.h"
/**
* \brief A class for representing XML comments.
/*!
* @brief A class for representing XML comments.
*/
@interface OFXMLComment: OFXMLNode
{
OFString *comment;
}
/**
* \brief Creates a new OFXMLComment with the specified string.
/*!
* @brief Creates a new OFXMLComment with the specified string.
*
* \param string The string for the comment
* \return A new OFXMLComment
* @param string The string for the comment
* @return A new OFXMLComment
*/
+ (instancetype)commentWithString: (OFString*)string;
/**
* \brief Initializes an already allocated OFXMLComment with the specified
/*!
* @brief Initializes an already allocated OFXMLComment with the specified
* string.
*
* \param string The string for the comment
* \return An initialized OFXMLComment
* @param string The string for the comment
* @return An initialized OFXMLComment
*/
- initWithString: (OFString*)string;
@end
|
Modified src/OFXMLElement+Serialization.h
from [c84b6ccec7]
to [94d6b314ef].
︙ | | |
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
-
-
+
+
-
-
+
+
-
+
|
extern "C" {
#endif
extern int _OFXMLElement_Serialization_reference;
#ifdef __cplusplus
}
#endif
/**
* \brief A category that provides methods for deserializing objects.
/*!
* @brief A category that provides methods for deserializing objects.
*/
@interface OFXMLElement (OFSerialization)
/**
* \brief Deserializes the receiver into an object.
/*!
* @brief Deserializes the receiver into an object.
*
* \return The deserialized object
* @return The deserialized object
*/
- (id)objectByDeserializing;
@end
|
Modified src/OFXMLElement.h
from [15d1784604]
to [a57443555d].
︙ | | |
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
|
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
|
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
-
+
+
+
|
@class OFString;
@class OFArray;
@class OFMutableString;
@class OFMutableArray;
@class OFMutableDictionary;
@class OFXMLAttribute;
/**
* \brief A class which stores an XML element.
/*!
* @brief A class which stores an XML element.
*/
@interface OFXMLElement: OFXMLNode
{
OFString *name;
OFString *ns;
OFString *defaultNamespace;
OFMutableArray *attributes;
OFMutableDictionary *namespaces;
OFMutableArray *children;
}
#ifdef OF_HAVE_PROPERTIES
@property (copy) OFString *name;
@property (copy, getter=namespace, setter=setNamespace:) OFString *ns;
@property (copy) OFString *defaultNamespace;
@property (readonly, copy) OFArray *attributes;
@property (readonly, copy) OFArray *children;
#endif
/**
* \brief Creates a new XML element with the specified name.
/*!
* @brief Creates a new XML element with the specified name.
*
* \param name The name for the element
* \return A new autoreleased OFXMLElement with the specified element name
* @param name The name for the element
* @return A new autoreleased OFXMLElement with the specified element name
*/
+ (instancetype)elementWithName: (OFString*)name;
/**
* \brief Creates a new XML element with the specified name and string value.
/*!
* @brief Creates a new XML element with the specified name and string value.
*
* \param name The name for the element
* \param stringValue The value for the element
* \return A new autoreleased OFXMLElement with the specified element name and
* @param name The name for the element
* @param stringValue The value for the element
* @return A new autoreleased OFXMLElement with the specified element name and
* value
*/
+ (instancetype)elementWithName: (OFString*)name
stringValue: (OFString*)stringValue;
/**
* \brief Creates a new XML element with the specified name and namespace.
/*!
* @brief Creates a new XML element with the specified name and namespace.
*
* \param name The name for the element
* \param ns The namespace for the element
* \return A new autoreleased OFXMLElement with the specified element name and
* @param name The name for the element
* @param ns The namespace for the element
* @return A new autoreleased OFXMLElement with the specified element name and
* namespace
*/
+ (instancetype)elementWithName: (OFString*)name
namespace: (OFString*)ns;
/**
* \brief Creates a new XML element with the specified name, namespace and
/*!
* @brief Creates a new XML element with the specified name, namespace and
* string value.
*
* \param name The name for the element
* \param ns The namespace for the element
* \param stringValue The value for the element
* \return A new autoreleased OFXMLElement with the specified element name,
* @param name The name for the element
* @param ns The namespace for the element
* @param stringValue The value for the element
* @return A new autoreleased OFXMLElement with the specified element name,
* namespace and value
*/
+ (instancetype)elementWithName: (OFString*)name
namespace: (OFString*)ns
stringValue: (OFString*)stringValue;
/**
* \brief Creates a new element with the specified element.
/*!
* @brief Creates a new element with the specified element.
*
* \param element An OFXMLElement to initialize the OFXMLElement with
* \return A new autoreleased OFXMLElement with the contents of the specified
* @param element An OFXMLElement to initialize the OFXMLElement with
* @return A new autoreleased OFXMLElement with the contents of the specified
* element
*/
+ (instancetype)elementWithElement: (OFXMLElement*)element;
/**
* \brief Parses the string and returns an OFXMLElement for it.
/*!
* @brief Parses the string and returns an OFXMLElement for it.
*
* \param string The string to parse
* \return A new autoreleased OFXMLElement with the contents of the string
* @param string The string to parse
* @return A new autoreleased OFXMLElement with the contents of the string
*/
+ (instancetype)elementWithXMLString: (OFString*)string;
/**
* \brief Parses the specified file and returns an OFXMLElement for it.
/*!
* @brief Parses the specified file and returns an OFXMLElement for it.
*
* \param path The path to the file
* \return A new autoreleased OFXMLElement with the contents of the specified
* @param path The path to the file
* @return A new autoreleased OFXMLElement with the contents of the specified
* file
*/
+ (instancetype)elementWithFile: (OFString*)path;
/**
* \brief Initializes an already allocated OFXMLElement with the specified name.
/*!
* @brief Initializes an already allocated OFXMLElement with the specified name.
*
* \param name The name for the element
* \return An initialized OFXMLElement with the specified element name
* @param name The name for the element
* @return An initialized OFXMLElement with the specified element name
*/
- initWithName: (OFString*)name;
/**
* \brief Initializes an already allocated OFXMLElement with the specified name
/*!
* @brief Initializes an already allocated OFXMLElement with the specified name
* and string value.
*
* \param name The name for the element
* \param stringValue The value for the element
* \return An initialized OFXMLElement with the specified element name and
* @param name The name for the element
* @param stringValue The value for the element
* @return An initialized OFXMLElement with the specified element name and
* value
*/
- initWithName: (OFString*)name
stringValue: (OFString*)stringValue;
/**
* \brief Initializes an already allocated OFXMLElement with the specified name
/*!
* @brief Initializes an already allocated OFXMLElement with the specified name
* and namespace.
*
* \param name The name for the element
* \param ns The namespace for the element
* \return An initialized OFXMLElement with the specified element name and
* @param name The name for the element
* @param ns The namespace for the element
* @return An initialized OFXMLElement with the specified element name and
* namespace
*/
- initWithName: (OFString*)name
namespace: (OFString*)ns;
/**
* \brief Initializes an already allocated OFXMLElement with the specified name,
/*!
* @brief Initializes an already allocated OFXMLElement with the specified name,
* namespace and value.
*
* \param name The name for the element
* \param ns The namespace for the element
* \param stringValue The value for the element
* \return An initialized OFXMLElement with the specified element name,
* @param name The name for the element
* @param ns The namespace for the element
* @param stringValue The value for the element
* @return An initialized OFXMLElement with the specified element name,
* namespace and value
*/
- initWithName: (OFString*)name
namespace: (OFString*)ns
stringValue: (OFString*)stringValue;
/**
* \brief Initializes an already allocated OFXMLElement with the specified
/*!
* @brief Initializes an already allocated OFXMLElement with the specified
* element.
*
* \param element An OFXMLElement to initialize the OFXMLElement with
* \return A new autoreleased OFXMLElement with the contents of the specified
* @param element An OFXMLElement to initialize the OFXMLElement with
* @return A new autoreleased OFXMLElement with the contents of the specified
* element
*/
- initWithElement: (OFXMLElement*)element;
/**
* \brief Parses the string and initializes an already allocated OFXMLElement
/*!
* @brief Parses the string and initializes an already allocated OFXMLElement
* with it.
*
* \param string The string to parse
* \return An initialized OFXMLElement with the contents of the string
* @param string The string to parse
* @return An initialized OFXMLElement with the contents of the string
*/
- initWithXMLString: (OFString*)string;
/**
* \brief Parses the specified file and initializes an already allocated
/*!
* @brief Parses the specified file and initializes an already allocated
* OFXMLElement with it.
*
* \param path The path to the file
* \return An initialized OFXMLElement with the contents of the specified file
* @param path The path to the file
* @return An initialized OFXMLElement with the contents of the specified file
*/
- initWithFile: (OFString*)path;
/**
* \brief Sets the name of the element.
/*!
* @brief Sets the name of the element.
*
* \param name The new name
* @param name The new name
*/
- (void)setName: (OFString*)name;
/**
* \brief Returns the name of the element.
/*!
* @brief Returns the name of the element.
*
* \return The name of the element
* @return The name of the element
*/
- (OFString*)name;
/**
* \brief Sets the namespace of the element.
/*!
* @brief Sets the namespace of the element.
*
* \param ns The new namespace
* @param ns The new namespace
*/
- (void)setNamespace: (OFString*)ns;
/**
* \brief Returns the namespace of the element.
/*!
* @brief Returns the namespace of the element.
*
* \return The namespace of the element
* @return The namespace of the element
*/
- (OFString*)namespace;
/**
* \brief Returns an OFArray with the attributes of the element.
/*!
* @brief Returns an OFArray with the attributes of the element.
*
* \return An OFArray with the attributes of the element
* @return An OFArray with the attributes of the element
*/
- (OFArray*)attributes;
/**
* \brief Removes all children and adds the children from the specified array.
/*!
* @brief Removes all children and adds the children from the specified array.
*
* \param children The new children to add
* @param children The new children to add
*/
- (void)setChildren: (OFArray*)children;
/**
* \brief Returns an array of OFXMLNodes with all children of the element.
/*!
* @brief Returns an array of OFXMLNodes with all children of the element.
*
* \return An array of OFXMLNodes with all children of the element
* @return An array of OFXMLNodes with all children of the element
*/
- (OFArray*)children;
/**
* \brief Removes all children and sets the string value to the specified
/*!
* @brief Removes all children and sets the string value to the specified
* string.
*
* \param stringValue The new string value for the element
* @param stringValue The new string value for the element
*/
- (void)setStringValue: (OFString*)stringValue;
/**
* \brief Adds the specified attribute.
/*!
* @brief Adds the specified attribute.
*
* If an attribute with the same name and namespace already exists, it is not
* added.
*
* \param attribute The attribute to add
* @param attribute The attribute to add
*/
- (void)addAttribute: (OFXMLAttribute*)attribute;
/**
* \brief Adds the specified attribute with the specified string value.
/*!
* @brief Adds the specified attribute with the specified string value.
*
* If an attribute with the same name and namespace already exists, it is not
* added.
*
* \param name The name of the attribute
* \param stringValue The value of the attribute
* @param name The name of the attribute
* @param stringValue The value of the attribute
*/
- (void)addAttributeWithName: (OFString*)name
stringValue: (OFString*)stringValue;
/**
* \brief Adds the specified attribute with the specified namespace and string
/*!
* @brief Adds the specified attribute with the specified namespace and string
* value.
*
* If an attribute with the same name and namespace already exists, it is not
* added.
*
* \param name The name of the attribute
* \param ns The namespace of the attribute
* \param stringValue The value of the attribute
* @param name The name of the attribute
* @param ns The namespace of the attribute
* @param stringValue The value of the attribute
*/
- (void)addAttributeWithName: (OFString*)name
namespace: (OFString*)ns
stringValue: (OFString*)stringValue;
/**
* \brief Returns the attribute with the specified name.
/*!
* @brief Returns the attribute with the specified name.
*
* \param attributeName The name of the attribute
* \return The attribute with the specified name
* @param attributeName The name of the attribute
* @return The attribute with the specified name
*/
- (OFXMLAttribute*)attributeForName: (OFString*)attributeName;
/**
* \brief Returns the attribute with the specified name and namespace.
/*!
* @brief Returns the attribute with the specified name and namespace.
*
* \param attributeName The name of the attribute
* \param attributeNS The namespace of the attribute
* \return The attribute with the specified name and namespace
* @param attributeName The name of the attribute
* @param attributeNS The namespace of the attribute
* @return The attribute with the specified name and namespace
*/
- (OFXMLAttribute*)attributeForName: (OFString*)attributeName
namespace: (OFString*)attributeNS;
/**
* \brief Removes the attribute with the specified name.
/*!
* @brief Removes the attribute with the specified name.
*
* \param attribteName The name of the attribute
* @param attribteName The name of the attribute
*/
- (void)removeAttributeForName: (OFString*)attributeName;
/**
* \brief Removes the attribute with the specified name and namespace.
/*!
* @brief Removes the attribute with the specified name and namespace.
*
* \param attributeName The name of the attribute
* \param attributeNS The namespace of the attribute
* @param attributeName The name of the attribute
* @param attributeNS The namespace of the attribute
*/
- (void)removeAttributeForName: (OFString*)attributeName
namespace: (OFString*)attributeNS;
/**
* \brief Sets a prefix for a namespace.
/*!
* @brief Sets a prefix for a namespace.
*
* \param prefix The prefix for the namespace
* \param ns The namespace for which the prefix is set
* @param prefix The prefix for the namespace
* @param ns The namespace for which the prefix is set
*/
- (void)setPrefix: (OFString*)prefix
forNamespace: (OFString*)ns;
/**
* \brief Binds a prefix for a namespace.
/*!
* @brief Binds a prefix for a namespace.
*
* \param prefix The prefix for the namespace
* \param ns The namespace for which the prefix is bound
* @param prefix The prefix for the namespace
* @param ns The namespace for which the prefix is bound
*/
- (void)bindPrefix: (OFString*)prefix
forNamespace: (OFString*)ns;
/**
* \brief Sets the default namespace for the element to be used if there is no
/*!
* @brief Sets the default namespace for the element to be used if there is no
* parent.
*
* \param ns The default namespace for the element
* @param ns The default namespace for the element
*/
- (void)setDefaultNamespace: (OFString*)ns;
/**
* \brief Adds a child to the OFXMLElement.
/*!
* @brief Adds a child to the OFXMLElement.
*
* \param child An OFXMLNode which is added as a child
* @param child An OFXMLNode which is added as a child
*/
- (void)addChild: (OFXMLNode*)child;
/**
* \brief Removes the first child that is equal to the specified OFXMLElement.
/*!
* @brief Removes the first child that is equal to the specified OFXMLElement.
*
* \param child The child to remove from the OFXMLElement
* @param child The child to remove from the OFXMLElement
*/
- (void)removeChild: (OFXMLNode*)child;
/**
* \brief Returns all children that are elements.
/*!
* @brief Returns all children that are elements.
*
* \return All children that are elements
* @return All children that are elements
*/
- (OFArray*)elements;
/**
* \brief Returns all children that have the specified namespace.
/*!
* @brief Returns all children that have the specified namespace.
*
* \return All children that have the specified namespace
* @return All children that have the specified namespace
*/
- (OFArray*)elementsForNamespace: (OFString*)elementNS;
/**
* \brief Returns the first child element with the specified name.
/*!
* @brief Returns the first child element with the specified name.
*
* \param elementName The name of the element
* \return The first child element with the specified name
* @param elementName The name of the element
* @return The first child element with the specified name
*/
- (OFXMLElement*)elementForName: (OFString*)elementName;
/**
* \brief Returns the child elements with the specified name.
/*!
* @brief Returns the child elements with the specified name.
*
* \param elementName The name of the elements
* \return The child elements with the specified name
* @param elementName The name of the elements
* @return The child elements with the specified name
*/
- (OFArray*)elementsForName: (OFString*)elementName;
/**
* \brief Returns the first child element with the specified name and namespace.
/*!
* @brief Returns the first child element with the specified name and namespace.
*
* \param elementName The name of the element
* \param elementNS The namespace of the element
* \return The first child element with the specified name and namespace
* @param elementName The name of the element
* @param elementNS The namespace of the element
* @return The first child element with the specified name and namespace
*/
- (OFXMLElement*)elementForName: (OFString*)elementName
namespace: (OFString*)elementNS;
/**
* \brief Returns the child elements with the specified name and namespace.
/*!
* @brief Returns the child elements with the specified name and namespace.
*
* \param elementName The name of the elements
* \param elementNS The namespace of the elements
* \return The child elements with the specified name and namespace
* @param elementName The name of the elements
* @param elementNS The namespace of the elements
* @return The child elements with the specified name and namespace
*/
- (OFArray*)elementsForName: (OFString*)elementName
namespace: (OFString*)elementNS;
@end
#import "OFXMLElement+Serialization.h"
|
Modified src/OFXMLElementBuilder.h
from [a3fee8ab7a]
to [2b459f4eb7].
︙ | | |
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
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
|
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
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
|
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
|
#import "OFObject.h"
#import "OFXMLParser.h"
@class OFMutableArray;
@class OFXMLElement;
@class OFXMLElementBuilder;
/**
* \brief A protocol that needs to be implemented by delegates for
/*!
* @brief A protocol that needs to be implemented by delegates for
* OFXMLElementBuilder.
*/
#ifndef OF_XML_ELEMENT_BUILDER_M
@protocol OFXMLElementBuilderDelegate <OFObject>
#else
@protocol OFXMLElementBuilderDelegate
#endif
/**
* \brief This callback is called when the OFXMLElementBuilder built an element.
/*!
* @brief This callback is called when the OFXMLElementBuilder built an element.
*
* If the OFXMLElementBuilder was used as a delegate for the OFXMLParser since
* parsing started, this will return the complete document as an OFXMLElement
* with all children.
*
* \param builder The builder which built an OFXMLElement
* \param elem The OFXMLElement the OFXMLElementBuilder built
* @param builder The builder which built an OFXMLElement
* @param elem The OFXMLElement the OFXMLElementBuilder built
*/
- (void)elementBuilder: (OFXMLElementBuilder*)builder
didBuildElement: (OFXMLElement*)element;
#ifdef OF_HAVE_OPTIONAL_PROTOCOLS
@optional
#endif
/**
* \brief This callback is called when the OFXMLElementBuilder built an
/*!
* @brief This callback is called when the OFXMLElementBuilder built an
* OFXMLNode which is not inside an element.
*
* This is usually called for comments or whitespace character data before the
* root element.
*
* \param builder The builder which built the OFXMLNode without parent
* \param node The OFXMLNode the OFXMLElementBuilder built
* @param builder The builder which built the OFXMLNode without parent
* @param node The OFXMLNode the OFXMLElementBuilder built
*/
- (void)elementBuilder: (OFXMLElementBuilder*)builder
didBuildParentlessNode: (OFXMLNode*)node;
/**
* \brief This callback is called when the OFXMLElementBuilder gets a close tag
/*!
* @brief This callback is called when the OFXMLElementBuilder gets a close tag
* which does not belong there.
*
* Most likely, the OFXMLElementBuilder was used to build XML only of a child
* of the root element and the root element was closed. Often the delegate is
* set to the OFXMLElementBuilder when a certain element is found, this can be
* used then to set the delegate back after that certain element has been
* closed.
*
* If this method is not implemented in the delegate, the default is to throw
* an OFMalformedXMLException.
*
* \param builder The builder which did not expect the close tag
* \param name The name of the close tag
* \param prefix The prefix of the close tag
* \param ns The namespace of the close tag
* @param builder The builder which did not expect the close tag
* @param name The name of the close tag
* @param prefix The prefix of the close tag
* @param ns The namespace of the close tag
*/
- (void)elementBuilder: (OFXMLElementBuilder*)builder
didNotExpectCloseTag: (OFString*)name
withPrefix: (OFString*)prefix
namespace: (OFString*)ns;
/**
* \brief This callback is called when the XML parser for the element builder
/*!
* @brief This callback is called when the XML parser for the element builder
* found an unknown entity.
*
* \param entity The name of the entity
* \return The substitution for the entity
* @param entity The name of the entity
* @return The substitution for the entity
*/
- (OFString*)elementBuilder: (OFXMLElementBuilder*)builder
foundUnknownEntityNamed: (OFString*)entity;
@end
/**
* \brief A class implementing the OFXMLParserDelegate protocol that can build
/*!
* @brief A class implementing the OFXMLParserDelegate protocol that can build
* OFXMLElements from the document parsed by the OFXMLParser.
*
* It can also be used to build OFXMLElements from parts of the document by
* first parsing stuff using the OFXMLParser with another delegate and then
* setting the OFXMLElementBuilder as delegate for the parser.
*/
@interface OFXMLElementBuilder: OFObject <OFXMLParserDelegate>
{
OFMutableArray *stack;
id <OFXMLElementBuilderDelegate> delegate;
}
#ifdef OF_HAVE_PROPERTIES
@property (assign) id <OFXMLElementBuilderDelegate> delegate;
#endif
/**
* \brief Creates a new element builder.
/*!
* @brief Creates a new element builder.
*
* \return A new, autoreleased OFXMLElementBuilder
* @return A new, autoreleased OFXMLElementBuilder
*/
+ (instancetype)elementBuilder;
/**
* \brief Returns the delegate for the OFXMLElementBuilder.
/*!
* @brief Returns the delegate for the OFXMLElementBuilder.
*
* \return The delegate for the OFXMLElementBuilder
* @return The delegate for the OFXMLElementBuilder
*/
- (id <OFXMLElementBuilderDelegate>)delegate;
/**
* \brief Sets the delegate for the OFXMLElementBuilder.
/*!
* @brief Sets the delegate for the OFXMLElementBuilder.
*
* \param delegate The delegate for the OFXMLElementBuilder
* @param delegate The delegate for the OFXMLElementBuilder
*/
- (void)setDelegate: (id <OFXMLElementBuilderDelegate>)delegate;
@end
@interface OFObject (OFXMLElementBuilderDelegate) <OFXMLElementBuilderDelegate>
@end
|
Modified src/OFXMLNode.h
from [5a18b5fda7]
to [666bc65512].
︙ | | |
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
|
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
|
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
|
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFObject.h"
#import "OFSerialization.h"
/**
* \brief A class which stores an XML element.
/*!
* @brief A class which stores an XML element.
*/
@interface OFXMLNode: OFObject <OFCopying, OFSerialization>
/**
* \brief Returns the contents of the receiver as a string value.
/*!
* @brief Returns the contents of the receiver as a string value.
*
* \return A string with the string value
* @return A string with the string value
*/
- (OFString*)stringValue;
/**
* \brief Returns the contents of the receiver as a decimal value.
/*!
* @brief Returns the contents of the receiver as a decimal value.
*
* \return An integer with the decimal value
* @return An integer with the decimal value
*/
- (intmax_t)decimalValue;
/**
* \brief Returns the contents of the receiver as a hexadecimal value.
/*!
* @brief Returns the contents of the receiver as a hexadecimal value.
*
* \return An integer with the hexadecimal value
* @return An integer with the hexadecimal value
*/
- (uintmax_t)hexadecimalValue;
/**
* \brief Returns the contents of the receiver as a float value.
/*!
* @brief Returns the contents of the receiver as a float value.
*
* \return A float with the float value
* @return A float with the float value
*/
- (float)floatValue;
/**
* \brief Returns the contents of the receiver as a double value.
/*!
* @brief Returns the contents of the receiver as a double value.
*
* \return A double with the double value
* @return A double with the double value
*/
- (double)doubleValue;
/**
* \brief Returns an OFString representing the OFXMLNode as an XML string.
/*!
* @brief Returns an OFString representing the OFXMLNode as an XML string.
*
* \return An OFString representing the OFXMLNode as an XML string
* @return An OFString representing the OFXMLNode as an XML string
*/
- (OFString*)XMLString;
/**
* \brief Returns an OFString representing the OFXMLNode as an XML string with
/*!
* @brief Returns an OFString representing the OFXMLNode as an XML string with
* indentation.
*
* \param indentation The indentation for the XML string
* \return An OFString representing the OFXMLNode as an XML string with
* @param indentation The indentation for the XML string
* @return An OFString representing the OFXMLNode as an XML string with
* indentation
*/
- (OFString*)XMLStringWithIndentation: (unsigned int)indentation;
/**
* \brief Returns an OFString representing the OFXMLNode as an XML string with
/*!
* @brief Returns an OFString representing the OFXMLNode as an XML string with
* indentation for the specified level.
*
* \param indentation The indentation for the XML string
* \param level The level of indentation
* \return An OFString representing the OFXMLNode as an XML string with
* @param indentation The indentation for the XML string
* @param level The level of indentation
* @return An OFString representing the OFXMLNode as an XML string with
* indentation
*/
- (OFString*)XMLStringWithIndentation: (unsigned int)indentation
level: (unsigned int)level;
@end
|
Modified src/OFXMLParser.h
from [72fe93e8ed]
to [ee5f98932b].
︙ | | |
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
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
|
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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
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
|
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
|
@class OFXMLParser;
@class OFArray;
@class OFMutableArray;
@class OFDataArray;
@class OFStream;
/**
* \brief A protocol that needs to be implemented by delegates for OFXMLParser.
/*!
* @brief A protocol that needs to be implemented by delegates for OFXMLParser.
*/
#ifndef OF_XML_PARSER_M
@protocol OFXMLParserDelegate <OFObject>
#else
@protocol OFXMLParserDelegate
#endif
#ifdef OF_HAVE_OPTIONAL_PROTOCOLS
@optional
#endif
/**
* \brief This callback is called when the XML parser found processing
/*!
* @brief This callback is called when the XML parser found processing
* instructions.
*
* \param parser The parser which found processing instructions
* \param pi The processing instructions
* @param parser The parser which found processing instructions
* @param pi The processing instructions
*/
- (void)parser: (OFXMLParser*)parser
foundProcessingInstructions: (OFString*)pi;
/**
* \brief This callback is called when the XML parser found the start of a new
/*!
* @brief This callback is called when the XML parser found the start of a new
* tag.
*
* \param parser The parser which found a new tag
* \param name The name of the tag which just started
* \param prefix The prefix of the tag which just started or nil
* \param ns The namespace of the tag which just started or nil
* \param attributes The attributes included in the tag which just started or
* @param parser The parser which found a new tag
* @param name The name of the tag which just started
* @param prefix The prefix of the tag which just started or nil
* @param ns The namespace of the tag which just started or nil
* @param attributes The attributes included in the tag which just started or
* nil
*/
- (void)parser: (OFXMLParser*)parser
didStartElement: (OFString*)name
withPrefix: (OFString*)prefix
namespace: (OFString*)ns
attributes: (OFArray*)attributes;
/**
* \brief This callback is called when the XML parser found the end of a tag.
/*!
* @brief This callback is called when the XML parser found the end of a tag.
*
* \param parser The parser which found the end of a tag
* \param name The name of the tag which just ended
* \param prefix The prefix of the tag which just ended or nil
* \param ns The namespace of the tag which just ended or nil
* @param parser The parser which found the end of a tag
* @param name The name of the tag which just ended
* @param prefix The prefix of the tag which just ended or nil
* @param ns The namespace of the tag which just ended or nil
*/
- (void)parser: (OFXMLParser*)parser
didEndElement: (OFString*)name
withPrefix: (OFString*)prefix
namespace: (OFString*)ns;
/**
* \brief This callback is called when the XML parser found characters.
/*!
* @brief This callback is called when the XML parser found characters.
*
* In case there are comments or CDATA, it is possible that this callback is
* called multiple times in a row.
*
* \param parser The parser which found a string
* \param characters The characters the XML parser found
* @param parser The parser which found a string
* @param characters The characters the XML parser found
*/
- (void)parser: (OFXMLParser*)parser
foundCharacters: (OFString*)characters;
/**
* \brief This callback is called when the XML parser found CDATA.
/*!
* @brief This callback is called when the XML parser found CDATA.
*
* \param parser The parser which found a string
* \param CDATA The CDATA the XML parser found
* @param parser The parser which found a string
* @param CDATA The CDATA the XML parser found
*/
- (void)parser: (OFXMLParser*)parser
foundCDATA: (OFString*)CDATA;
/**
* \brief This callback is called when the XML parser found a comment.
/*!
* @brief This callback is called when the XML parser found a comment.
*
* \param parser The parser which found a comment
* \param comment The comment the XML parser found
* @param parser The parser which found a comment
* @param comment The comment the XML parser found
*/
- (void)parser: (OFXMLParser*)parser
foundComment: (OFString*)comment;
/**
* \brief This callback is called when the XML parser found an entity it
/*!
* @brief This callback is called when the XML parser found an entity it
* doesn't know.
*
* The callback is supposed to return a substitution for the entity or nil if
* it is not known to the callback as well, in which case an exception will be
* risen.
*
* \param parser The parser which found an unknown entity
* \param entity The name of the entity the XML parser didn't know
* \return A substitution for the entity or nil
* @param parser The parser which found an unknown entity
* @param entity The name of the entity the XML parser didn't know
* @return A substitution for the entity or nil
*/
- (OFString*)parser: (OFXMLParser*)parser
foundUnknownEntityNamed: (OFString*)entity;
@end
/**
* \brief An event-based XML parser.
/*!
* @brief An event-based XML parser.
*
* OFXMLParser is an event-based XML parser which calls the delegate's callbacks
* as soon asit finds something, thus suitable for streams as well.
*/
@interface OFXMLParser: OFObject <OFStringXMLUnescapingDelegate>
{
id <OFXMLParserDelegate> delegate;
|
︙ | | |
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
|
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
|
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
|
of_string_encoding_t encoding;
}
#ifdef OF_HAVE_PROPERTIES
@property (assign) id <OFXMLParserDelegate> delegate;
#endif
/**
* \brief Creates a new XML parser.
/*!
* @brief Creates a new XML parser.
*
* \return A new, autoreleased OFXMLParser
* @return A new, autoreleased OFXMLParser
*/
+ (instancetype)parser;
/**
* \brief Returns the delegate that is used by the XML parser.
/*!
* @brief Returns the delegate that is used by the XML parser.
*
* \return The delegate that is used by the XML parser
* @return The delegate that is used by the XML parser
*/
- (id <OFXMLParserDelegate>)delegate;
/**
* \brief Sets the delegate the OFXMLParser should use.
/*!
* @brief Sets the delegate the OFXMLParser should use.
*
* \param delegate The delegate to use
* @param delegate The delegate to use
*/
- (void)setDelegate: (id <OFXMLParserDelegate>)delegate;
/**
* \brief Parses the specified buffer with the specified size.
/*!
* @brief Parses the specified buffer with the specified size.
*
* \param buffer The buffer to parse
* \param length The length of the buffer
* @param buffer The buffer to parse
* @param length The length of the buffer
*/
- (void)parseBuffer: (const char*)buffer
length: (size_t)length;
/**
* \brief Parses the specified string.
/*!
* @brief Parses the specified string.
*
* \param string The string to parse
* @param string The string to parse
*/
- (void)parseString: (OFString*)string;
/**
* \brief Parses the specified stream.
/*!
* @brief Parses the specified stream.
*
* \param stream The stream to parse
* @param stream The stream to parse
*/
- (void)parseStream: (OFStream*)stream;
/**
* \brief Parses the specified file.
/*!
* @brief Parses the specified file.
*
* \param path The path to the file to parse
* @param path The path to the file to parse
*/
- (void)parseFile: (OFString*)path;
/**
* \brief Returns the current line number.
/*!
* @brief Returns the current line number.
*
* \return The current line number
* @return The current line number
*/
- (size_t)lineNumber;
/**
* \brief Returns whether the XML parser has finished parsing.
/*!
* @brief Returns whether the XML parser has finished parsing.
*
* \return Whether the XML parser has finished parsing
* @return Whether the XML parser has finished parsing
*/
- (BOOL)finishedParsing;
@end
@interface OFObject (OFXMLParserDelegate) <OFXMLParserDelegate>
@end
|
Modified src/OFXMLProcessingInstructions.h
from [c338c4eeff]
to [74e2fbe3db].
︙ | | |
12
13
14
15
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
|
12
13
14
15
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
|
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFXMLNode.h"
/**
* \brief A class for representing XML processing instructions.
/*!
* @brief A class for representing XML processing instructions.
*/
@interface OFXMLProcessingInstructions: OFXMLNode
{
OFString *processingInstructions;
}
/**
* \brief Creates a new OFXMLProcessingInstructions with the specified string.
/*!
* @brief Creates a new OFXMLProcessingInstructions with the specified string.
*
* \param string The string for the processing instructions
* \return A new OFXMLProcessingInstructions
* @param string The string for the processing instructions
* @return A new OFXMLProcessingInstructions
*/
+ (instancetype)processingInstructionsWithString: (OFString*)string;
/**
* \brief Initializes an already allocated OFXMLProcessingInstructions with the
/*!
* @brief Initializes an already allocated OFXMLProcessingInstructions with the
* specified string.
*
* \param string The string for the processing instructions
* \return An initialized OFXMLProcessingInstructions
* @param string The string for the processing instructions
* @return An initialized OFXMLProcessingInstructions
*/
- initWithString: (OFString*)string;
@end
|
Modified src/exceptions/OFAcceptFailedException.h
from [ce6bf67244]
to [87852a415d].
︙ | | |
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
|
* file.
*/
#import "OFException.h"
@class OFTCPSocket;
/**
* \brief An exception indicating that accepting a connection failed.
/*!
* @brief An exception indicating that accepting a connection failed.
*/
@interface OFAcceptFailedException: OFException
{
OFTCPSocket *socket;
int errNo;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, retain, nonatomic) OFTCPSocket *socket;
@property (readonly) int errNo;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param socket The socket which could not accept a connection
* \return A new accept failed exception
/*!
* @param class_ The class of the object which caused the exception
* @param socket The socket which could not accept a connection
* @return A new accept failed exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
socket: (OFTCPSocket*)socket;
/**
/*!
* Initializes an already allocated accept failed exception.
*
* \param class_ The class of the object which caused the exception
* \param socket The socket which could not accept a connection
* \return An initialized accept failed exception
* @param class_ The class of the object which caused the exception
* @param socket The socket which could not accept a connection
* @return An initialized accept failed exception
*/
- initWithClass: (Class)class_
socket: (OFTCPSocket*)socket;
/**
* \return The socket which could not accept a connection
/*!
* @return The socket which could not accept a connection
*/
- (OFTCPSocket*)socket;
/**
* \return The errno from when the exception was created
/*!
* @return The errno from when the exception was created
*/
- (int)errNo;
@end
|
Modified src/exceptions/OFAddressTranslationFailedException.h
from [51fe7c2bc9]
to [e5c7bef265].
︙ | | |
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
+
-
-
-
-
+
+
+
+
-
-
+
+
-
+
-
-
+
+
|
* file.
*/
#import "OFException.h"
@class OFTCPSocket;
/**
* \brief An exception indicating the translation of an address failed.
/*!
* @brief An exception indicating the translation of an address failed.
*/
@interface OFAddressTranslationFailedException: OFException
{
OFTCPSocket *socket;
OFString *host;
int errNo;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, retain, nonatomic) OFTCPSocket *socket;
@property (readonly, copy, nonatomic) OFString *host;
@property (readonly) int errNo;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param socket The socket which could not translate the address
* \param host The host for which translation was requested
* \return A new address translation failed exception
/*!
* @param class_ The class of the object which caused the exception
* @param socket The socket which could not translate the address
* @param host The host for which translation was requested
* @return A new address translation failed exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
socket: (OFTCPSocket*)socket
host: (OFString*)host;
/**
/*!
* Initializes an already allocated address translation failed exception.
*
* \param class_ The class of the object which caused the exception
* \param socket The socket which could not translate the address
* \param host The host for which translation was requested
* \return An initialized address translation failed exception
* @param class_ The class of the object which caused the exception
* @param socket The socket which could not translate the address
* @param host The host for which translation was requested
* @return An initialized address translation failed exception
*/
- initWithClass: (Class)class_
socket: (OFTCPSocket*)socket
host: (OFString*)host;
/**
* \return The socket which could not translate the address
/*!
* @return The socket which could not translate the address
*/
- (OFTCPSocket*)socket;
/**
/*!
* /return The host for which translation was requested
*/
- (OFString*)host;
/**
* \return The errno from when the exception was created
/*!
* @return The errno from when the exception was created
*/
- (int)errNo;
@end
|
Modified src/exceptions/OFAllocFailedException.h
from [c7f0fcd19a]
to [5603471a9b].
︙ | | |
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
-
-
+
+
-
-
+
+
|
* file.
*/
#import "OFObject.h"
@class OFString;
/**
* \brief An exception indicating an object could not be allocated.
/*!
* @brief An exception indicating an object could not be allocated.
*
* This exception is preallocated, as if there's no memory, no exception can
* be allocated of course. That's why you shouldn't and even can't deallocate
* it.
*
* This is the only exception that is not an OFException as it's special.
* It does not know for which class allocation failed and it should not be
* handled like other exceptions, as the exception handling code is not
* allowed to allocate ANY memory.
*/
@interface OFAllocFailedException: OFObject
/**
* \return A description of the exception
/*!
* @return A description of the exception
*/
- (OFString*)description;
@end
|
Modified src/exceptions/OFAlreadyConnectedException.h
from [f0f3a732ca]
to [64d62a7a56].
︙ | | |
14
15
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
47
48
49
50
51
52
53
54
55
56
|
14
15
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
47
48
49
50
51
52
53
54
55
56
|
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
|
* file.
*/
#import "OFException.h"
@class OFTCPSocket;
/**
* \brief An exception indicating an attempt to connect or bind an already
/*!
* @brief An exception indicating an attempt to connect or bind an already
* connected or bound socket.
*/
@interface OFAlreadyConnectedException: OFException
{
OFTCPSocket *socket;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, retain, nonatomic) OFTCPSocket *socket;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param socket The socket which is already connected
* \return A new already connected exception
/*!
* @param class_ The class of the object which caused the exception
* @param socket The socket which is already connected
* @return A new already connected exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
socket: (OFTCPSocket*)socket;
/**
/*!
* Initializes an already allocated already connected exception.
*
* \param class_ The class of the object which caused the exception
* \param socket The socket which is already connected
* \return An initialized already connected exception
* @param class_ The class of the object which caused the exception
* @param socket The socket which is already connected
* @return An initialized already connected exception
*/
- initWithClass: (Class)class_
socket: (OFTCPSocket*)socket;
/**
* \return The socket which is already connected
/*!
* @return The socket which is already connected
*/
- (OFTCPSocket*)socket;
@end
|
Modified src/exceptions/OFBindFailedException.h
from [de9573017a]
to [071bf962c5].
︙ | | |
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
|
* file.
*/
#import "OFException.h"
@class OFTCPSocket;
/**
* \brief An exception indicating that binding a socket failed.
/*!
* @brief An exception indicating that binding a socket failed.
*/
@interface OFBindFailedException: OFException
{
OFTCPSocket *socket;
OFString *host;
uint16_t port;
int errNo;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, retain, nonatomic) OFTCPSocket *socket;
@property (readonly, copy, nonatomic) OFString *host;
@property (readonly) uint16_t port;
@property (readonly) int errNo;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param socket The socket which could not be bound
* \param host The host on which binding failed
* \param port The port on which binding failed
* \return A new bind failed exception
/*!
* @param class_ The class of the object which caused the exception
* @param socket The socket which could not be bound
* @param host The host on which binding failed
* @param port The port on which binding failed
* @return A new bind failed exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
socket: (OFTCPSocket*)socket
host: (OFString*)host
port: (uint16_t)port;
/**
/*!
* Initializes an already allocated bind failed exception.
*
* \param class_ The class of the object which caused the exception
* \param socket The socket which could not be bound
* \param host The host on which binding failed
* \param port The port on which binding failed
* \return An initialized bind failed exception
* @param class_ The class of the object which caused the exception
* @param socket The socket which could not be bound
* @param host The host on which binding failed
* @param port The port on which binding failed
* @return An initialized bind failed exception
*/
- initWithClass: (Class)class_
socket: (OFTCPSocket*)socket
host: (OFString*)host
port: (uint16_t)port;
/**
* \return The socket which could not be bound
/*!
* @return The socket which could not be bound
*/
- (OFTCPSocket*)socket;
/**
* \return The host on which binding failed
/*!
* @return The host on which binding failed
*/
- (OFString*)host;
/**
* \return The port on which binding failed
/*!
* @return The port on which binding failed
*/
- (uint16_t)port;
/**
* \return The errno from when the exception was created
/*!
* @return The errno from when the exception was created
*/
- (int)errNo;
@end
|
Modified src/exceptions/OFChangeDirectoryFailedException.h
from [3beb130497]
to [b9ebcf5538].
︙ | | |
12
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
12
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
-
-
+
+
-
-
-
+
+
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFException.h"
/**
* \brief An exception indicating changing to a directory failed
/*!
* @brief An exception indicating changing to a directory failed
*/
@interface OFChangeDirectoryFailedException: OFException
{
OFString *path;
int errNo;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, copy, nonatomic) OFString *path;
@property (readonly) int errNo;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param path A string with the path of the directory to which couldn't be
/*!
* @param class_ The class of the object which caused the exception
* @param path A string with the path of the directory to which couldn't be
* changed
* \return A new change directory failed exception
* @return A new change directory failed exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
path: (OFString*)path;
/**
/*!
* Initializes an already allocated change directory failed exception.
*
* \param class_ The class of the object which caused the exception
* \param path A string with the path of the directory to which couldn't be
* @param class_ The class of the object which caused the exception
* @param path A string with the path of the directory to which couldn't be
* changed
* \return An initialized change directory failed exception
* @return An initialized change directory failed exception
*/
- initWithClass: (Class)class_
path: (OFString*)path;
/**
* \return The errno from when the exception was created
/*!
* @return The errno from when the exception was created
*/
- (int)errNo;
/**
* \return A string with the path of the directory to which couldn't changed
/*!
* @return A string with the path of the directory to which couldn't changed
*/
- (OFString*)path;
@end
|
Modified src/exceptions/OFChangeFileModeFailedException.h
from [affc9d01dd]
to [f2292e7609].
︙ | | |
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
|
* file.
*/
#include <sys/types.h>
#import "OFException.h"
/**
* \brief An exception indicating that changing the mode of a file failed.
/*!
* @brief An exception indicating that changing the mode of a file failed.
*/
@interface OFChangeFileModeFailedException: OFException
{
OFString *path;
mode_t mode;
int errNo;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, copy, nonatomic) OFString *path;
@property (readonly) mode_t mode;
@property (readonly) int errNo;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param path The path of the file
* \param mode The new mode for the file
* \return An initialized change file mode failed exception
/*!
* @param class_ The class of the object which caused the exception
* @param path The path of the file
* @param mode The new mode for the file
* @return An initialized change file mode failed exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
path: (OFString*)path
mode: (mode_t)mode;
/**
/*!
* Initializes an already allocated change file mode failed exception.
*
* \param class_ The class of the object which caused the exception
* \param path The path of the file
* \param mode The new mode for the file
* \return An initialized change file mode failed exception
* @param class_ The class of the object which caused the exception
* @param path The path of the file
* @param mode The new mode for the file
* @return An initialized change file mode failed exception
*/
- initWithClass: (Class)class_
path: (OFString*)path
mode: (mode_t)mode;
/**
* \return The errno from when the exception was created
/*!
* @return The errno from when the exception was created
*/
- (int)errNo;
/**
* \return The path of the file
/*!
* @return The path of the file
*/
- (OFString*)path;
/**
* \return The new mode for the file
/*!
* @return The new mode for the file
*/
- (mode_t)mode;
@end
|
Modified src/exceptions/OFChangeFileOwnerFailedException.h
from [9421a3246c]
to [bc02ab447c].
︙ | | |
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
|
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFException.h"
#ifndef _WIN32
/**
* \brief An exception indicating that changing the owner of a file failed.
/*!
* @brief An exception indicating that changing the owner of a file failed.
*/
@interface OFChangeFileOwnerFailedException: OFException
{
OFString *path;
OFString *owner;
OFString *group;
int errNo;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, copy, nonatomic) OFString *path;
@property (readonly, copy, nonatomic) OFString *owner;
@property (readonly, copy, nonatomic) OFString *group;
@property (readonly) int errNo;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param path The path of the file
* \param owner The new owner for the file
* \param group The new group for the file
* \return An initialized change file owner failed exception
/*!
* @param class_ The class of the object which caused the exception
* @param path The path of the file
* @param owner The new owner for the file
* @param group The new group for the file
* @return An initialized change file owner failed exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
path: (OFString*)path
owner: (OFString*)owner
group: (OFString*)group;
/**
/*!
* Initializes an already allocated change file owner failed exception.
*
* \param class_ The class of the object which caused the exception
* \param path The path of the file
* \param owner The new owner for the file
* \param group The new group for the file
* \return An initialized change file owner failed exception
* @param class_ The class of the object which caused the exception
* @param path The path of the file
* @param owner The new owner for the file
* @param group The new group for the file
* @return An initialized change file owner failed exception
*/
- initWithClass: (Class)class_
path: (OFString*)path
owner: (OFString*)owner
group: (OFString*)group;
/**
* \return The errno from when the exception was created
/*!
* @return The errno from when the exception was created
*/
- (int)errNo;
/**
* \return The path of the file
/*!
* @return The path of the file
*/
- (OFString*)path;
/**
* \return The new owner for the file
/*!
* @return The new owner for the file
*/
- (OFString*)owner;
/**
* \return The new group for the file
/*!
* @return The new group for the file
*/
- (OFString*)group;
@end
#endif
|
Modified src/exceptions/OFConditionBroadcastFailedException.h
from [12a3b4f9af]
to [01bacf1dfa].
︙ | | |
14
15
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
47
48
49
50
51
52
53
54
55
|
14
15
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
47
48
49
50
51
52
53
54
55
|
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
|
* file.
*/
#import "OFException.h"
@class OFCondition;
/**
* \brief An exception indicating broadcasting a condition failed.
/*!
* @brief An exception indicating broadcasting a condition failed.
*/
@interface OFConditionBroadcastFailedException: OFException
{
OFCondition *condition;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, retain, nonatomic) OFCondition *condition;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param condition The condition which could not be broadcasted
* \return A new condition broadcast failed exception
/*!
* @param class_ The class of the object which caused the exception
* @param condition The condition which could not be broadcasted
* @return A new condition broadcast failed exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
condition: (OFCondition*)condition;
/**
/*!
* Initializes an already allocated condition broadcast failed exception.
*
* \param class_ The class of the object which caused the exception
* \param condition The condition which could not be broadcasted
* \return An initialized condition broadcast failed exception
* @param class_ The class of the object which caused the exception
* @param condition The condition which could not be broadcasted
* @return An initialized condition broadcast failed exception
*/
- initWithClass: (Class)class_
condition: (OFCondition*)condition;
/**
* \return The condition which could not be broadcasted
/*!
* @return The condition which could not be broadcasted
*/
- (OFCondition*)condition;
@end
|
Modified src/exceptions/OFConditionSignalFailedException.h
from [ccc6986d00]
to [d749dd79db].
︙ | | |
14
15
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
47
48
49
50
51
52
53
54
55
|
14
15
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
47
48
49
50
51
52
53
54
55
|
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
|
* file.
*/
#import "OFException.h"
@class OFCondition;
/**
* \brief An exception indicating signaling a condition failed.
/*!
* @brief An exception indicating signaling a condition failed.
*/
@interface OFConditionSignalFailedException: OFException
{
OFCondition *condition;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, retain, nonatomic) OFCondition *condition;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param condition The condition which could not be signaled
* \return A new condition signal failed exception
/*!
* @param class_ The class of the object which caused the exception
* @param condition The condition which could not be signaled
* @return A new condition signal failed exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
condition: (OFCondition*)condition;
/**
/*!
* Initializes an already allocated condition signal failed exception.
*
* \param class_ The class of the object which caused the exception
* \param condition The condition which could not be signaled
* \return An initialized condition signal failed exception
* @param class_ The class of the object which caused the exception
* @param condition The condition which could not be signaled
* @return An initialized condition signal failed exception
*/
- initWithClass: (Class)class_
condition: (OFCondition*)condition;
/**
* \return The condition which could not be signaled
/*!
* @return The condition which could not be signaled
*/
- (OFCondition*)condition;
@end
|
Modified src/exceptions/OFConditionStillWaitingException.h
from [fca0f6e639]
to [d9a5fff472].
︙ | | |
14
15
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
47
48
49
50
51
52
53
54
55
56
|
14
15
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
47
48
49
50
51
52
53
54
55
56
|
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
|
* file.
*/
#import "OFException.h"
@class OFCondition;
/**
* \brief An exception indicating that a thread is still waiting for a
/*!
* @brief An exception indicating that a thread is still waiting for a
* condition.
*/
@interface OFConditionStillWaitingException: OFException
{
OFCondition *condition;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, retain, nonatomic) OFCondition *condition;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param condition The condition for which is still being waited
* \return A new condition still waiting exception
/*!
* @param class_ The class of the object which caused the exception
* @param condition The condition for which is still being waited
* @return A new condition still waiting exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
condition: (OFCondition*)condition;
/**
/*!
* Initializes an already allocated condition still waiting exception.
*
* \param class_ The class of the object which caused the exception
* \param condition The condition for which is still being waited
* \return An initialized condition still waiting exception
* @param class_ The class of the object which caused the exception
* @param condition The condition for which is still being waited
* @return An initialized condition still waiting exception
*/
- initWithClass: (Class)class_
condition: (OFCondition*)condition;
/**
* \return The condition for which is still being waited
/*!
* @return The condition for which is still being waited
*/
- (OFCondition*)condition;
@end
|
Modified src/exceptions/OFConditionWaitFailedException.h
from [a05792c7b8]
to [8bf9a3aaff].
︙ | | |
14
15
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
47
48
49
50
51
52
53
54
55
|
14
15
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
47
48
49
50
51
52
53
54
55
|
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
|
* file.
*/
#import "OFException.h"
@class OFCondition;
/**
* \brief An exception indicating waiting for a condition failed.
/*!
* @brief An exception indicating waiting for a condition failed.
*/
@interface OFConditionWaitFailedException: OFException
{
OFCondition *condition;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, retain, nonatomic) OFCondition *condition;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param condition The condition for which could not be waited
* \return A new condition wait failed exception
/*!
* @param class_ The class of the object which caused the exception
* @param condition The condition for which could not be waited
* @return A new condition wait failed exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
condition: (OFCondition*)condition;
/**
/*!
* Initializes an already allocated condition wait failed exception.
*
* \param class_ The class of the object which caused the exception
* \param condition The condition for which could not be waited
* \return An initialized condition wait failed exception
* @param class_ The class of the object which caused the exception
* @param condition The condition for which could not be waited
* @return An initialized condition wait failed exception
*/
- initWithClass: (Class)class_
condition: (OFCondition*)condition;
/**
* \return The condition for which could not be waited
/*!
* @return The condition for which could not be waited
*/
- (OFCondition*)condition;
@end
|
Modified src/exceptions/OFConnectionFailedException.h
from [cf16965ef3]
to [be82688ac1].
︙ | | |
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
+
-
-
-
-
-
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
|
* file.
*/
#import "OFException.h"
@class OFTCPSocket;
/**
* \brief An exception indicating that a connection could not be established.
/*!
* @brief An exception indicating that a connection could not be established.
*/
@interface OFConnectionFailedException: OFException
{
OFTCPSocket *socket;
OFString *host;
uint16_t port;
int errNo;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, retain, nonatomic) OFTCPSocket *socket;
@property (readonly, copy, nonatomic) OFString *host;
@property (readonly) uint16_t port;
@property (readonly) int errNo;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param socket The socket which could not connect
* \param host The host to which the connection failed
* \param port The port on the host to which the connection failed
* \return A new connection failed exception
/*!
* @param class_ The class of the object which caused the exception
* @param socket The socket which could not connect
* @param host The host to which the connection failed
* @param port The port on the host to which the connection failed
* @return A new connection failed exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
socket: (OFTCPSocket*)socket
host: (OFString*)host
port: (uint16_t)port;
/**
/*!
* Initializes an already allocated connection failed exception.
*
* \param class_ The class of the object which caused the exception
* \param socket The socket which could not connect
* \param host The host to which the connection failed
* \param port The port on the host to which the connection failed
* \return An initialized connection failed exception
* @param class_ The class of the object which caused the exception
* @param socket The socket which could not connect
* @param host The host to which the connection failed
* @param port The port on the host to which the connection failed
* @return An initialized connection failed exception
*/
- initWithClass: (Class)class_
socket: (OFTCPSocket*)socket
host: (OFString*)host
port: (uint16_t)port;
/**
* \return The socket which could not connect
/*!
* @return The socket which could not connect
*/
- (OFTCPSocket*)socket;
/**
* \return The host to which the connection failed
/*!
* @return The host to which the connection failed
*/
- (OFString*)host;
/**
* \return The port on the host to which the connection failed
/*!
* @return The port on the host to which the connection failed
*/
- (uint16_t)port;
/**
* \return The errno from when the exception was created
/*!
* @return The errno from when the exception was created
*/
- (int)errNo;
@end
|
Modified src/exceptions/OFCopyFileFailedException.h
from [2ecd97f65f]
to [ed051cb16e].
︙ | | |
12
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
12
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFException.h"
/**
* \brief An exception indicating that copying a file failed.
/*!
* @brief An exception indicating that copying a file failed.
*/
@interface OFCopyFileFailedException: OFException
{
OFString *sourcePath;
OFString *destinationPath;
int errNo;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, copy, nonatomic) OFString *sourcePath;
@property (readonly, copy, nonatomic) OFString *destinationPath;
@property (readonly) int errNo;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param source The original path
* \param destination The new path
* \return A new copy file failed exception
/*!
* @param class_ The class of the object which caused the exception
* @param source The original path
* @param destination The new path
* @return A new copy file failed exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
sourcePath: (OFString*)source
destinationPath: (OFString*)destination;
/**
/*!
* Initializes an already allocated copy file failed exception.
*
* \param class_ The class of the object which caused the exception
* \param source The original path
* \param destination The new path
* \return An initialized copy file failed exception
* @param class_ The class of the object which caused the exception
* @param source The original path
* @param destination The new path
* @return An initialized copy file failed exception
*/
- initWithClass: (Class)class_
sourcePath: (OFString*)source
destinationPath: (OFString*)destination;
/**
* \return The errno from when the exception was created
/*!
* @return The errno from when the exception was created
*/
- (int)errNo;
/**
* \return The path of the source file
/*!
* @return The path of the source file
*/
- (OFString*)sourcePath;
/**
* \return The destination path
/*!
* @return The destination path
*/
- (OFString*)destinationPath;
@end
|
Modified src/exceptions/OFCreateDirectoryFailedException.h
from [04b508ef4d]
to [079f340e02].
︙ | | |
12
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
12
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFException.h"
/**
* \brief An exception indicating a directory couldn't be created.
/*!
* @brief An exception indicating a directory couldn't be created.
*/
@interface OFCreateDirectoryFailedException: OFException
{
OFString *path;
int errNo;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, copy, nonatomic) OFString *path;
@property (readonly) int errNo;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param path A string with the path of the directory which couldn't be created
* \return A new create directory failed exception
/*!
* @param class_ The class of the object which caused the exception
* @param path A string with the path of the directory which couldn't be created
* @return A new create directory failed exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
path: (OFString*)path;
/**
/*!
* Initializes an already allocated create directory failed exception.
*
* \param class_ The class of the object which caused the exception
* \param path A string with the path of the directory which couldn't be created
* \return An initialized create directory failed exception
* @param class_ The class of the object which caused the exception
* @param path A string with the path of the directory which couldn't be created
* @return An initialized create directory failed exception
*/
- initWithClass: (Class)class_
path: (OFString*)path;
/**
* \return The errno from when the exception was created
/*!
* @return The errno from when the exception was created
*/
- (int)errNo;
/**
* \return A string with the path of the directory which couldn't be created
/*!
* @return A string with the path of the directory which couldn't be created
*/
- (OFString*)path;
@end
|
Modified src/exceptions/OFDeleteDirectoryFailedException.h
from [d3f645608a]
to [d173c2848c].
︙ | | |
12
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
12
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFException.h"
/**
* \brief An exception indicating that deleting a directory failed.
/*!
* @brief An exception indicating that deleting a directory failed.
*/
@interface OFDeleteDirectoryFailedException: OFException
{
OFString *path;
int errNo;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, copy, nonatomic) OFString *path;
@property (readonly) int errNo;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param path The path of the directory
* \return A new delete directory failed exception
/*!
* @param class_ The class of the object which caused the exception
* @param path The path of the directory
* @return A new delete directory failed exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
path: (OFString*)path;
/**
/*!
* Initializes an already allocated delete directory failed exception.
*
* \param class_ The class of the object which caused the exception
* \param path The path of the directory
* \return An initialized delete directory failed exception
* @param class_ The class of the object which caused the exception
* @param path The path of the directory
* @return An initialized delete directory failed exception
*/
- initWithClass: (Class)class_
path: (OFString*)path;
/**
* \return The errno from when the exception was created
/*!
* @return The errno from when the exception was created
*/
- (int)errNo;
/**
* \return The path of the directory
/*!
* @return The path of the directory
*/
- (OFString*)path;
@end
|
Modified src/exceptions/OFDeleteFileFailedException.h
from [0bc79ded9a]
to [fdb8970003].
︙ | | |
12
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
12
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFException.h"
/**
* \brief An exception indicating that deleting a file failed.
/*!
* @brief An exception indicating that deleting a file failed.
*/
@interface OFDeleteFileFailedException: OFException
{
OFString *path;
int errNo;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, copy, nonatomic) OFString *path;
@property (readonly) int errNo;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param path The path of the file
* \return A new delete file failed exception
/*!
* @param class_ The class of the object which caused the exception
* @param path The path of the file
* @return A new delete file failed exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
path: (OFString*)path;
/**
/*!
* Initializes an already allocated delete file failed exception.
*
* \param class_ The class of the object which caused the exception
* \param path The path of the file
* \return An initialized delete file failed exception
* @param class_ The class of the object which caused the exception
* @param path The path of the file
* @return An initialized delete file failed exception
*/
- initWithClass: (Class)class_
path: (OFString*)path;
/**
* \return The errno from when the exception was created
/*!
* @return The errno from when the exception was created
*/
- (int)errNo;
/**
* \return The path of the file
/*!
* @return The path of the file
*/
- (OFString*)path;
@end
|
Modified src/exceptions/OFEnumerationMutationException.h
from [df642fbe51]
to [237dcae369].
︙ | | |
12
13
14
15
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
47
48
49
50
51
52
53
54
|
12
13
14
15
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
47
48
49
50
51
52
53
54
|
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFException.h"
/**
* \brief An exception indicating that a mutation was detected during
/*!
* @brief An exception indicating that a mutation was detected during
* enumeration.
*/
@interface OFEnumerationMutationException: OFException
{
id object;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, retain, nonatomic) id object;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param object The object which was mutated during enumeration
* \return A new enumeration mutation exception
/*!
* @param class_ The class of the object which caused the exception
* @param object The object which was mutated during enumeration
* @return A new enumeration mutation exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
object: (id)object;
/**
/*!
* Initializes an already allocated enumeration mutation exception.
*
* \param class_ The class of the object which caused the exception
* \param object The object which was mutated during enumeration
* \return An initialized enumeration mutation exception
* @param class_ The class of the object which caused the exception
* @param object The object which was mutated during enumeration
* @return An initialized enumeration mutation exception
*/
- initWithClass: (Class)class_
object: (id)object;
/**
* \return The object which was mutated during enumeration
/*!
* @return The object which was mutated during enumeration
*/
- (id)object;
@end
|
Modified src/exceptions/OFException.h
from [1070cfb5a4]
to [aebf101d61].
︙ | | |
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
|
* file.
*/
#import "OFObject.h"
@class OFString;
/**
* \brief The base class for all exceptions in ObjFW
/*!
* @brief The base class for all exceptions in ObjFW
*
* The OFException class is the base class for all exceptions in ObjFW, except
* the OFAllocFailedException.
*/
@interface OFException: OFObject
{
Class inClass;
OFString *description;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly) Class inClass;
#endif
/**
/*!
* Creates a new exception.
*
* \param class_ The class of the object which caused the exception
* \return A new exception
* @param class_ The class of the object which caused the exception
* @return A new exception
*/
+ (instancetype)exceptionWithClass: (Class)class_;
/**
/*!
* Initializes an already allocated OFException.
*
* \param class_ The class of the object which caused the exception
* \return An initialized OFException
* @param class_ The class of the object which caused the exception
* @return An initialized OFException
*/
- initWithClass: (Class)class_;
/**
* \return The class of the object in which the exception happened
/*!
* @return The class of the object in which the exception happened
*/
- (Class)inClass;
/**
* \return A description of the exception
/*!
* @return A description of the exception
*/
- (OFString*)description;
@end
|
Modified src/exceptions/OFHTTPRequestFailedException.h
from [cfa7c8cc6b]
to [c05f9a478a].
︙ | | |
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
|
*/
#import "OFException.h"
@class OFHTTPRequest;
@class OFHTTPRequestResult;
/**
* \brief An exception indicating that a HTTP request failed.
/*!
* @brief An exception indicating that a HTTP request failed.
*/
@interface OFHTTPRequestFailedException: OFException
{
OFHTTPRequest *request;
OFHTTPRequestResult *result;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, retain, nonatomic) OFHTTPRequest *request;
@property (readonly, retain, nonatomic) OFHTTPRequestResult *result;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param request The HTTP request which failed
* \param result The result of the failed HTTP request
* \return A new HTTP request failed exception
/*!
* @param class_ The class of the object which caused the exception
* @param request The HTTP request which failed
* @param result The result of the failed HTTP request
* @return A new HTTP request failed exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
request: (OFHTTPRequest*)request
result: (OFHTTPRequestResult*)result;
/**
/*!
* Initializes an already allocated HTTP request failed exception
*
* \param class_ The class of the object which caused the exception
* \param request The HTTP request which failed
* \param result The result of the failed HTTP request
* \return A new HTTP request failed exception
* @param class_ The class of the object which caused the exception
* @param request The HTTP request which failed
* @param result The result of the failed HTTP request
* @return A new HTTP request failed exception
*/
- initWithClass: (Class)class_
request: (OFHTTPRequest*)request
result: (OFHTTPRequestResult*)result;
/**
* \return The HTTP request which failed
/*!
* @return The HTTP request which failed
*/
- (OFHTTPRequest*)request;
/**
* \return The result of the failed HTTP request
/*!
* @return The result of the failed HTTP request
*/
- (OFHTTPRequestResult*)result;
@end
|
Modified src/exceptions/OFHashAlreadyCalculatedException.h
from [bffa480758]
to [ac787d220d].
︙ | | |
14
15
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
47
48
49
50
51
52
53
54
55
|
14
15
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
47
48
49
50
51
52
53
54
55
|
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
|
* file.
*/
#import "OFException.h"
@class OFHash;
/**
* \brief An exception indicating that the hash has already been calculated.
/*!
* @brief An exception indicating that the hash has already been calculated.
*/
@interface OFHashAlreadyCalculatedException: OFException
{
OFHash *hashObject;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, retain, nonatomic) OFHash *hashObject;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param hash The hash which has already been calculated
* \return A new hash already calculated exception
/*!
* @param class_ The class of the object which caused the exception
* @param hash The hash which has already been calculated
* @return A new hash already calculated exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
hash: (OFHash*)hash;
/**
/*!
* Initializes an already allocated hash already calculated exception.
*
* \param class_ The class of the object which caused the exception
* \param hash The hash which has already been calculated
* \return An initialized hash already calculated exception
* @param class_ The class of the object which caused the exception
* @param hash The hash which has already been calculated
* @return An initialized hash already calculated exception
*/
- initWithClass: (Class)class_
hash: (OFHash*)hash;
/**
* \return The hash which has already been calculated
/*!
* @return The hash which has already been calculated
*/
- (OFHash*)hashObject;
@end
|
Modified src/exceptions/OFInitializationFailedException.h
from [d0a6f23da6]
to [d05684db85].
︙ | | |
12
13
14
15
16
17
18
19
20
21
22
23
|
12
13
14
15
16
17
18
19
20
21
22
23
|
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFException.h"
/**
* \brief An exception indicating that initializing something failed.
/*!
* @brief An exception indicating that initializing something failed.
*/
@interface OFInitializationFailedException: OFException
@end
|
Modified src/exceptions/OFInvalidArgumentException.h
from [9262afb54a]
to [d5b4fd9d81].
︙ | | |
12
13
14
15
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
47
48
49
50
51
52
53
|
12
13
14
15
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
47
48
49
50
51
52
53
|
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFException.h"
/**
* \brief An exception indicating that the argument is invalid for this method.
/*!
* @brief An exception indicating that the argument is invalid for this method.
*/
@interface OFInvalidArgumentException: OFException
{
SEL selector;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly) SEL selector;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param selector The selector which doesn't accept the argument
* \return A new invalid argument exception
/*!
* @param class_ The class of the object which caused the exception
* @param selector The selector which doesn't accept the argument
* @return A new invalid argument exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
selector: (SEL)selector;
/**
/*!
* Initializes an already allocated invalid argument exception
*
* \param class_ The class of the object which caused the exception
* \param selector The selector which doesn't accept the argument
* \return An initialized invalid argument exception
* @param class_ The class of the object which caused the exception
* @param selector The selector which doesn't accept the argument
* @return An initialized invalid argument exception
*/
- initWithClass: (Class)class_
selector: (SEL)selector;
/**
* \return The selector to which an invalid argument was passed
/*!
* @return The selector to which an invalid argument was passed
*/
- (SEL)selector;
@end
|
Modified src/exceptions/OFInvalidEncodingException.h
from [06eceae722]
to [f12016bf66].
︙ | | |
12
13
14
15
16
17
18
19
20
21
22
23
|
12
13
14
15
16
17
18
19
20
21
22
23
|
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFException.h"
/**
* \brief An exception indicating that the encoding is invalid for this object.
/*!
* @brief An exception indicating that the encoding is invalid for this object.
*/
@interface OFInvalidEncodingException: OFException
@end
|
Modified src/exceptions/OFInvalidFormatException.h
from [e4a5338a9b]
to [00384b942b].
︙ | | |
12
13
14
15
16
17
18
19
20
21
22
23
|
12
13
14
15
16
17
18
19
20
21
22
23
|
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFException.h"
/**
* \brief An exception indicating that the format is invalid.
/*!
* @brief An exception indicating that the format is invalid.
*/
@interface OFInvalidFormatException: OFException
@end
|
Modified src/exceptions/OFInvalidJSONException.h
from [dd69569b81]
to [65709d01cc].
︙ | | |
12
13
14
15
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
47
48
49
50
51
52
53
|
12
13
14
15
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
47
48
49
50
51
52
53
|
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFException.h"
/**
* \brief An exception indicating a JSON representation is invalid.
/*!
* @brief An exception indicating a JSON representation is invalid.
*/
@interface OFInvalidJSONException: OFException
{
size_t line;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly) size_t line;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param line The line in which the parsing error encountered
* \return A new invalid JSON exception
/*!
* @param class_ The class of the object which caused the exception
* @param line The line in which the parsing error encountered
* @return A new invalid JSON exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
line: (size_t)line;
/**
/*!
* Initializes an already allocated invalid JSON exception.
*
* \param class_ The class of the object which caused the exception
* \param line The line in which the parsing error encountered
* \return An initialized invalid JSON exception
* @param class_ The class of the object which caused the exception
* @param line The line in which the parsing error encountered
* @return An initialized invalid JSON exception
*/
- initWithClass: (Class)class_
line: (size_t)line;
/**
* \return The line in which parsing the JSON representation failed
/*!
* @return The line in which parsing the JSON representation failed
*/
- (size_t)line;
@end
|
Modified src/exceptions/OFInvalidServerReplyException.h
from [e6b83df467]
to [202340a7e2].
︙ | | |
12
13
14
15
16
17
18
19
20
21
22
23
|
12
13
14
15
16
17
18
19
20
21
22
23
|
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFException.h"
/**
* \brief An exception indicating that the server sent an invalid reply.
/*!
* @brief An exception indicating that the server sent an invalid reply.
*/
@interface OFInvalidServerReplyException: OFException
@end
|
Modified src/exceptions/OFLinkFailedException.h
from [f106ab4027]
to [b74369b22f].
︙ | | |
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
|
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFException.h"
#ifndef _WIN32
/**
* \brief An exception indicating that creating a link failed.
/*!
* @brief An exception indicating that creating a link failed.
*/
@interface OFLinkFailedException: OFException
{
OFString *sourcePath;
OFString *destinationPath;
int errNo;
}
# ifdef OF_HAVE_PROPERTIES
@property (readonly, copy, nonatomic) OFString *sourcePath;
@property (readonly, copy, nonatomic) OFString *destinationPath;
@property (readonly) int errNo;
# endif
/**
* \param class_ The class of the object which caused the exception
* \param source The source for the link
* \param destination The destination for the link
* \return A new link failed exception
/*!
* @param class_ The class of the object which caused the exception
* @param source The source for the link
* @param destination The destination for the link
* @return A new link failed exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
sourcePath: (OFString*)source
destinationPath: (OFString*)destination;
/**
/*!
* Initializes an already allocated link failed exception.
*
* \param class_ The class of the object which caused the exception
* \param source The source for the link
* \param destination The destination for the link
* \return An initialized link failed exception
* @param class_ The class of the object which caused the exception
* @param source The source for the link
* @param destination The destination for the link
* @return An initialized link failed exception
*/
- initWithClass: (Class)class_
sourcePath: (OFString*)source
destinationPath: (OFString*)destination;
/**
* \return The errno from when the exception was created
/*!
* @return The errno from when the exception was created
*/
- (int)errNo;
/**
* \return A string with the source for the link
/*!
* @return A string with the source for the link
*/
- (OFString*)sourcePath;
/**
* \return A string with the destination for the link
/*!
* @return A string with the destination for the link
*/
- (OFString*)destinationPath;
@end
#endif
|
Modified src/exceptions/OFListenFailedException.h
from [0ed7c6fb04]
to [873d16287f].
︙ | | |
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
|
* file.
*/
#import "OFException.h"
@class OFTCPSocket;
/**
* \brief An exception indicating that listening on the socket failed.
/*!
* @brief An exception indicating that listening on the socket failed.
*/
@interface OFListenFailedException: OFException
{
OFTCPSocket *socket;
int backLog;
int errNo;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, retain, nonatomic) OFTCPSocket *socket;
@property (readonly) int backLog;
@property (readonly) int errNo;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param socket The socket which failed to listen
* \param backlog The requested size of the back log
* \return A new listen failed exception
/*!
* @param class_ The class of the object which caused the exception
* @param socket The socket which failed to listen
* @param backlog The requested size of the back log
* @return A new listen failed exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
socket: (OFTCPSocket*)socket
backLog: (int)backlog;
/**
/*!
* Initializes an already allocated listen failed exception
*
* \param class_ The class of the object which caused the exception
* \param socket The socket which failed to listen
* \param backlog The requested size of the back log
* \return An initialized listen failed exception
* @param class_ The class of the object which caused the exception
* @param socket The socket which failed to listen
* @param backlog The requested size of the back log
* @return An initialized listen failed exception
*/
- initWithClass: (Class)class_
socket: (OFTCPSocket*)socket
backLog: (int)backlog;
/**
* \return The socket which failed to listen
/*!
* @return The socket which failed to listen
*/
- (OFTCPSocket*)socket;
/**
* \return The requested back log.
/*!
* @return The requested back log.
*/
- (int)backLog;
/**
* \return The errno from when the exception was created
/*!
* @return The errno from when the exception was created
*/
- (int)errNo;
@end
|
Modified src/exceptions/OFLockFailedException.h
from [34551c1887]
to [b23941bc5b].
︙ | | |
13
14
15
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
47
48
49
50
51
52
53
54
|
13
14
15
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
47
48
49
50
51
52
53
54
|
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
|
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFException.h"
#import "OFLocking.h"
/**
* \brief An exception indicating that locking a lock failed.
/*!
* @brief An exception indicating that locking a lock failed.
*/
@interface OFLockFailedException: OFException
{
id <OFLocking> lock;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, retain, nonatomic) id <OFLocking> lock;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param lock The lock which could not be locked
* \return A new lock failed exception
/*!
* @param class_ The class of the object which caused the exception
* @param lock The lock which could not be locked
* @return A new lock failed exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
lock: (id <OFLocking>)lock;
/**
/*!
* Initializes an already allocated lock failed exception.
*
* \param class_ The class of the object which caused the exception
* \param lock The lock which could not be locked
* \return An initialized lock failed exception
* @param class_ The class of the object which caused the exception
* @param lock The lock which could not be locked
* @return An initialized lock failed exception
*/
- initWithClass: (Class)class_
lock: (id <OFLocking>)lock;
/**
* \param The lock which could not be locked
/*!
* @param The lock which could not be locked
*/
- (id <OFLocking>)lock;
@end
|
Modified src/exceptions/OFMalformedXMLException.h
from [afc4e720c1]
to [b9324ee29d].
︙ | | |
14
15
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
47
48
49
50
51
52
53
|
14
15
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
47
48
49
50
51
52
53
|
-
-
+
+
-
-
-
+
+
+
-
+
-
-
+
+
-
-
+
+
|
* file.
*/
#import "OFException.h"
@class OFXMLParser;
/**
* \brief An exception indicating that a parser encountered malformed XML.
/*!
* @brief An exception indicating that a parser encountered malformed XML.
*/
@interface OFMalformedXMLException: OFException
{
OFXMLParser *parser;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, retain, nonatomic) OFXMLParser *parser;
#endif
/**
* \param parser The parser which encountered malformed XML
* \return A new malformed XML exception
/*!
* @param parser The parser which encountered malformed XML
* @return A new malformed XML exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
parser: (OFXMLParser*)parser;
/**
/*!
* Initializes an already allocated malformed XML exception.
*
* \param parser The parser which encountered malformed XML
* \return An initialized malformed XML exception
* @param parser The parser which encountered malformed XML
* @return An initialized malformed XML exception
*/
- initWithClass: (Class)class_
parser: (OFXMLParser*)parser;
/**
* \return The parser which encountered malformed XML
/*!
* @return The parser which encountered malformed XML
*/
- (OFXMLParser*)parser;
@end
|
Modified src/exceptions/OFMemoryNotPartOfObjectException.h
from [da2c12c442]
to [a00834faaf].
︙ | | |
12
13
14
15
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
47
48
49
50
51
52
53
|
12
13
14
15
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
47
48
49
50
51
52
53
|
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFException.h"
/**
* \brief An exception indicating the given memory is not part of the object.
/*!
* @brief An exception indicating the given memory is not part of the object.
*/
@interface OFMemoryNotPartOfObjectException: OFException
{
void *pointer;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly) void *pointer;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param ptr A pointer to the memory that is not part of the object
* \return A new memory not part of object exception
/*!
* @param class_ The class of the object which caused the exception
* @param ptr A pointer to the memory that is not part of the object
* @return A new memory not part of object exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
pointer: (void*)ptr;
/**
/*!
* Initializes an already allocated memory not part of object exception.
*
* \param class_ The class of the object which caused the exception
* \param ptr A pointer to the memory that is not part of the object
* \return An initialized memory not part of object exception
* @param class_ The class of the object which caused the exception
* @param ptr A pointer to the memory that is not part of the object
* @return An initialized memory not part of object exception
*/
- initWithClass: (Class)class_
pointer: (void*)ptr;
/**
* \return A pointer to the memory which is not part of the object
/*!
* @return A pointer to the memory which is not part of the object
*/
- (void*)pointer;
@end
|
Modified src/exceptions/OFNotConnectedException.h
from [b592f8f4ca]
to [179d782dc0].
︙ | | |
14
15
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
47
48
49
50
51
52
53
54
55
|
14
15
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
47
48
49
50
51
52
53
54
55
|
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
|
* file.
*/
#import "OFException.h"
@class OFStreamSocket;
/**
* \brief An exception indicating a socket is not connected or bound.
/*!
* @brief An exception indicating a socket is not connected or bound.
*/
@interface OFNotConnectedException: OFException
{
OFStreamSocket *socket;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, retain, nonatomic) OFStreamSocket *socket;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param socket The socket which is not connected
* \return A new not connected exception
/*!
* @param class_ The class of the object which caused the exception
* @param socket The socket which is not connected
* @return A new not connected exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
socket: (OFStreamSocket*)socket;
/**
/*!
* Initializes an already allocated not connected exception.
*
* \param class_ The class of the object which caused the exception
* \param socket The socket which is not connected
* \return An initialized not connected exception
* @param class_ The class of the object which caused the exception
* @param socket The socket which is not connected
* @return An initialized not connected exception
*/
- initWithClass: (Class)class_
socket: (OFStreamSocket*)socket;
/**
* \return The socket which is not connected
/*!
* @return The socket which is not connected
*/
- (OFStreamSocket*)socket;
@end
|
Modified src/exceptions/OFNotImplementedException.h
from [8dd8831751]
to [1333f72b01].
︙ | | |
12
13
14
15
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
47
48
49
50
51
52
53
54
|
12
13
14
15
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
47
48
49
50
51
52
53
54
|
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFException.h"
/**
* \brief An exception indicating that a method or part of it is not
/*!
* @brief An exception indicating that a method or part of it is not
* implemented.
*/
@interface OFNotImplementedException: OFException
{
SEL selector;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly) SEL selector;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param selector The selector which is not or not fully implemented
* \return A new not implemented exception
/*!
* @param class_ The class of the object which caused the exception
* @param selector The selector which is not or not fully implemented
* @return A new not implemented exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
selector: (SEL)selector;
/**
/*!
* Initializes an already allocated not implemented exception.
*
* \param class_ The class of the object which caused the exception
* \param selector The selector which is not or not fully implemented
* \return An initialized not implemented exception
* @param class_ The class of the object which caused the exception
* @param selector The selector which is not or not fully implemented
* @return An initialized not implemented exception
*/
- initWithClass: (Class)class_
selector: (SEL)selector;
/**
* \return The selector which is not or not fully implemented
/*!
* @return The selector which is not or not fully implemented
*/
- (SEL)selector;
@end
|
Modified src/exceptions/OFOpenFileFailedException.h
from [bbb3cac915]
to [8fc382f4be].
︙ | | |
12
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
12
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFException.h"
/**
* \brief An exception indicating a file couldn't be opened.
/*!
* @brief An exception indicating a file couldn't be opened.
*/
@interface OFOpenFileFailedException: OFException
{
OFString *path;
OFString *mode;
int errNo;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, copy, nonatomic) OFString *path;
@property (readonly, copy, nonatomic) OFString *mode;
@property (readonly) int errNo;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param path A string with the path of the file tried to open
* \param mode A string with the mode in which the file should have been opened
* \return A new open file failed exception
/*!
* @param class_ The class of the object which caused the exception
* @param path A string with the path of the file tried to open
* @param mode A string with the mode in which the file should have been opened
* @return A new open file failed exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
path: (OFString*)path
mode: (OFString*)mode;
/**
/*!
* Initializes an already allocated open file failed exception.
*
* \param class_ The class of the object which caused the exception
* \param path A string with the path of the file which couldn't be opened
* \param mode A string with the mode in which the file should have been opened
* \return An initialized open file failed exception
* @param class_ The class of the object which caused the exception
* @param path A string with the path of the file which couldn't be opened
* @param mode A string with the mode in which the file should have been opened
* @return An initialized open file failed exception
*/
- initWithClass: (Class)class_
path: (OFString*)path
mode: (OFString*)mode;
/**
* \return The errno from when the exception was created
/*!
* @return The errno from when the exception was created
*/
- (int)errNo;
/**
* \return A string with the path of the file which couldn't be opened
/*!
* @return A string with the path of the file which couldn't be opened
*/
- (OFString*)path;
/**
* \return A string with the mode in which the file should have been opened
/*!
* @return A string with the mode in which the file should have been opened
*/
- (OFString*)mode;
@end
|
Modified src/exceptions/OFOutOfMemoryException.h
from [3b65a6153f]
to [a51722b386].
︙ | | |
12
13
14
15
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
47
48
49
50
51
52
53
|
12
13
14
15
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
47
48
49
50
51
52
53
|
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFException.h"
/**
* \brief An exception indicating there is not enough memory available.
/*!
* @brief An exception indicating there is not enough memory available.
*/
@interface OFOutOfMemoryException: OFException
{
size_t requestedSize;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly) size_t requestedSize;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param size The size of the memory that couldn't be allocated
* \return A new no memory exception
/*!
* @param class_ The class of the object which caused the exception
* @param size The size of the memory that couldn't be allocated
* @return A new no memory exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
requestedSize: (size_t)size;
/**
/*!
* Initializes an already allocated no memory exception.
*
* \param class_ The class of the object which caused the exception
* \param size The size of the memory that couldn't be allocated
* \return An initialized no memory exception
* @param class_ The class of the object which caused the exception
* @param size The size of the memory that couldn't be allocated
* @return An initialized no memory exception
*/
- initWithClass: (Class)class_
requestedSize: (size_t)size;
/**
* \return The size of the memoory that couldn't be allocated
/*!
* @return The size of the memoory that couldn't be allocated
*/
- (size_t)requestedSize;
@end
|
Modified src/exceptions/OFOutOfRangeException.h
from [72a0b4ae1a]
to [38e99b0ac2].
︙ | | |
12
13
14
15
16
17
18
19
20
21
22
23
|
12
13
14
15
16
17
18
19
20
21
22
23
|
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFException.h"
/**
* \brief An exception indicating the given value is out of range.
/*!
* @brief An exception indicating the given value is out of range.
*/
@interface OFOutOfRangeException: OFException
@end
|
Modified src/exceptions/OFReadFailedException.h
from [11b7a97eaa]
to [39fa8068ab].
︙ | | |
12
13
14
15
16
17
18
19
20
21
22
23
|
12
13
14
15
16
17
18
19
20
21
22
23
|
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFReadOrWriteFailedException.h"
/**
* \brief An exception indicating a read on a stream failed.
/*!
* @brief An exception indicating a read on a stream failed.
*/
@interface OFReadFailedException: OFReadOrWriteFailedException
@end
|
Modified src/exceptions/OFReadOrWriteFailedException.h
from [f9eb7c2c4f]
to [a0d2d2cc4d].
︙ | | |
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
+
-
-
-
+
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
|
* file.
*/
#import "OFException.h"
@class OFStream;
/**
* \brief An exception indicating a read or write to a stream failed.
/*!
* @brief An exception indicating a read or write to a stream failed.
*/
@interface OFReadOrWriteFailedException: OFException
{
OFStream *stream;
size_t requestedLength;
@public
int errNo;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, retain, nonatomic) OFStream *stream;
@property (readonly) size_t requestedLength;
@property (readonly) int errNo;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param stream The stream which caused the read or write failed exception
* \param length The requested length of the data that couldn't be read /
/*!
* @param class_ The class of the object which caused the exception
* @param stream The stream which caused the read or write failed exception
* @param length The requested length of the data that couldn't be read /
* written
* \return A new open file failed exception
* @return A new open file failed exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
stream: (OFStream*)stream
requestedLength: (size_t)length;
/**
/*!
* Initializes an already allocated read or write failed exception.
*
* \param class_ The class of the object which caused the exception
* \param stream The stream which caused the read or write failed exception
* \param length The requested length of the data that couldn't be read /
* @param class_ The class of the object which caused the exception
* @param stream The stream which caused the read or write failed exception
* @param length The requested length of the data that couldn't be read /
* written
* \return A new open file failed exception
* @return A new open file failed exception
*/
- initWithClass: (Class)class_
stream: (OFStream*)stream
requestedLength: (size_t)length;
/**
* \return The stream which caused the read or write failed exception
/*!
* @return The stream which caused the read or write failed exception
*/
- (OFStream*)stream;
/**
* \return The requested length of the data that couldn't be read / written
/*!
* @return The requested length of the data that couldn't be read / written
*/
- (size_t)requestedLength;
/**
* \return The errno from when the exception was created
/*!
* @return The errno from when the exception was created
*/
- (int)errNo;
@end
|
Modified src/exceptions/OFRenameFileFailedException.h
from [d9ec20488f]
to [72ec79000c].
︙ | | |
12
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
12
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFException.h"
/**
* \brief An exception indicating that renaming a file failed.
/*!
* @brief An exception indicating that renaming a file failed.
*/
@interface OFRenameFileFailedException: OFException
{
OFString *sourcePath;
OFString *destinationPath;
int errNo;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, copy, nonatomic) OFString *sourcePath;
@property (readonly, copy, nonatomic) OFString *destinationPath;
@property (readonly) int errNo;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param source The original path
* \param destination The new path
* \return A new rename file failed exception
/*!
* @param class_ The class of the object which caused the exception
* @param source The original path
* @param destination The new path
* @return A new rename file failed exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
sourcePath: (OFString*)source
destinationPath: (OFString*)destination;
/**
/*!
* Initializes an already allocated rename failed exception.
*
* \param class_ The class of the object which caused the exception
* \param source The original path
* \param destination The new path
* \return An initialized rename file failed exception
* @param class_ The class of the object which caused the exception
* @param source The original path
* @param destination The new path
* @return An initialized rename file failed exception
*/
- initWithClass: (Class)class_
sourcePath: (OFString*)source
destinationPath: (OFString*)destination;
/**
* \return The errno from when the exception was created
/*!
* @return The errno from when the exception was created
*/
- (int)errNo;
/**
* \return The original path
/*!
* @return The original path
*/
- (OFString*)sourcePath;
/**
* \return The new path
/*!
* @return The new path
*/
- (OFString*)destinationPath;
@end
|
Modified src/exceptions/OFSeekFailedException.h
from [a7860b2a1b]
to [bfc6775dde].
︙ | | |
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
|
#include <sys/types.h>
#import "OFException.h"
@class OFSeekableStream;
/**
* \brief An exception indicating that seeking in a stream failed.
/*!
* @brief An exception indicating that seeking in a stream failed.
*/
@interface OFSeekFailedException: OFException
{
OFSeekableStream *stream;
off_t offset;
int whence;
int errNo;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, retain, nonatomic) OFSeekableStream *stream;
@property (readonly) off_t offset;
@property (readonly) int whence;
@property (readonly) int errNo;
#endif
/**
* \param stream The stream for which seeking failed
* \param offset The offset to which seeking failed
* \param whence To what the offset is relative
* \return A new seek failed exception
/*!
* @param stream The stream for which seeking failed
* @param offset The offset to which seeking failed
* @param whence To what the offset is relative
* @return A new seek failed exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
stream: (OFSeekableStream*)stream
offset: (off_t)offset
whence: (int)whence;
/**
/*!
* Initializes an already allocated seek failed exception.
*
* \param stream The stream for which seeking failed
* \param offset The offset to which seeking failed
* \param whence To what the offset is relative
* \return An initialized seek failed exception
* @param stream The stream for which seeking failed
* @param offset The offset to which seeking failed
* @param whence To what the offset is relative
* @return An initialized seek failed exception
*/
- initWithClass: (Class)class_
stream: (OFSeekableStream*)stream
offset: (off_t)offset
whence: (int)whence;
/**
* \return The stream for which seeking failed
/*!
* @return The stream for which seeking failed
*/
- (OFSeekableStream*)stream;
/**
* \return The offset to which seeking failed
/*!
* @return The offset to which seeking failed
*/
- (off_t)offset;
/**
* \return To what the offset is relative
/*!
* @return To what the offset is relative
*/
- (int)whence;
/**
* \return The errno from when the exception was created
/*!
* @return The errno from when the exception was created
*/
- (int)errNo;
@end
|
Modified src/exceptions/OFSetOptionFailedException.h
from [3b6762b0cd]
to [ff3c1ac6a2].
︙ | | |
14
15
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
47
48
49
50
51
52
53
|
14
15
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
47
48
49
50
51
52
53
|
-
-
+
+
-
-
-
+
+
+
-
+
-
-
+
+
-
-
+
+
|
* file.
*/
#import "OFException.h"
@class OFStream;
/**
* \brief An exception indicating that setting an option for a stream failed.
/*!
* @brief An exception indicating that setting an option for a stream failed.
*/
@interface OFSetOptionFailedException: OFException
{
OFStream *stream;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, retain, nonatomic) OFStream *stream;
#endif
/**
* \param stream The stream for which the option could not be set
* \return A new set option failed exception
/*!
* @param stream The stream for which the option could not be set
* @return A new set option failed exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
stream: (OFStream*)stream;
/**
/*!
* Initializes an already allocated set option failed exception.
*
* \param stream The stream for which the option could not be set
* \return An initialized set option failed exception
* @param stream The stream for which the option could not be set
* @return An initialized set option failed exception
*/
- initWithClass: (Class)class_
stream: (OFStream*)stream;
/**
* \return The stream for which the option could not be set
/*!
* @return The stream for which the option could not be set
*/
- (OFStream*)stream;
@end
|
Modified src/exceptions/OFStillLockedException.h
from [da3d6698c1]
to [66d82564ab].
︙ | | |
13
14
15
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
47
48
49
50
51
52
53
54
|
13
14
15
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
47
48
49
50
51
52
53
54
|
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
|
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFException.h"
#import "OFLocking.h"
/**
* \brief An exception indicating that a lock is still locked.
/*!
* @brief An exception indicating that a lock is still locked.
*/
@interface OFStillLockedException: OFException
{
id <OFLocking> lock;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, retain, nonatomic) id <OFLocking> lock;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param lock The lock which is still locked
* \return A new still locked exception
/*!
* @param class_ The class of the object which caused the exception
* @param lock The lock which is still locked
* @return A new still locked exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
lock: (id <OFLocking>)lock;
/**
/*!
* Initializes an already allocated still locked exception.
*
* \param class_ The class of the object which caused the exception
* \param lock The lock which is still locked
* \return An initialized still locked exception
* @param class_ The class of the object which caused the exception
* @param lock The lock which is still locked
* @return An initialized still locked exception
*/
- initWithClass: (Class)class_
lock: (id <OFLocking>)lock;
/**
* \return The lock which is still locked
/*!
* @return The lock which is still locked
*/
- (id <OFLocking>)lock;
@end
|
Modified src/exceptions/OFSymlinkFailedException.h
from [2ddabcad84]
to [9de5937f57].
︙ | | |
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
|
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFException.h"
#ifndef _WIN32
/**
* \brief An exception indicating that creating a symlink failed.
/*!
* @brief An exception indicating that creating a symlink failed.
*/
@interface OFSymlinkFailedException: OFException
{
OFString *sourcePath;
OFString *destinationPath;
int errNo;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, copy, nonatomic) OFString *sourcePath;
@property (readonly, copy, nonatomic) OFString *destinationPath;
@property (readonly) int errNo;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param source The source for the symlink
* \param destination The destination for the symlink
* \return A new symlink failed exception
/*!
* @param class_ The class of the object which caused the exception
* @param source The source for the symlink
* @param destination The destination for the symlink
* @return A new symlink failed exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
sourcePath: (OFString*)source
destinationPath: (OFString*)destination;
/**
/*!
* Initializes an already allocated symlink failed exception.
*
* \param class_ The class of the object which caused the exception
* \param source The source for the symlink
* \param destination The destination for the symlink
* \return An initialized symlink failed exception
* @param class_ The class of the object which caused the exception
* @param source The source for the symlink
* @param destination The destination for the symlink
* @return An initialized symlink failed exception
*/
- initWithClass: (Class)class_
sourcePath: (OFString*)source
destinationPath: (OFString*)destination;
/**
* \return The errno from when the exception was created
/*!
* @return The errno from when the exception was created
*/
- (int)errNo;
/**
* \return A string with the source for the symlink
/*!
* @return A string with the source for the symlink
*/
- (OFString*)sourcePath;
/**
* \return A string with the destination for the symlink
/*!
* @return A string with the destination for the symlink
*/
- (OFString*)destinationPath;
@end
#endif
|
Modified src/exceptions/OFThreadJoinFailedException.h
from [cf2dc40e40]
to [f5af229ea4].
︙ | | |
14
15
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
47
48
49
50
51
52
53
54
55
|
14
15
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
47
48
49
50
51
52
53
54
55
|
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
|
* file.
*/
#import "OFException.h"
@class OFThread;
/**
* \brief An exception indicating that joining a thread failed.
/*!
* @brief An exception indicating that joining a thread failed.
*/
@interface OFThreadJoinFailedException: OFException
{
OFThread *thread;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, retain, nonatomic) OFThread *thread;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param thread The thread which could not be joined
* \return A new thread join failed exception
/*!
* @param class_ The class of the object which caused the exception
* @param thread The thread which could not be joined
* @return A new thread join failed exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
thread: (OFThread*)thread;
/**
/*!
* Initializes an already allocated thread join failed exception.
*
* \param class_ The class of the object which caused the exception
* \param thread The thread which could not be joined
* \return An initialized thread join failed exception
* @param class_ The class of the object which caused the exception
* @param thread The thread which could not be joined
* @return An initialized thread join failed exception
*/
- initWithClass: (Class)class_
thread: (OFThread*)thread;
/**
* \return The thread which could not be joined
/*!
* @return The thread which could not be joined
*/
- (OFThread*)thread;
@end
|
Modified src/exceptions/OFThreadStartFailedException.h
from [fdad7cfed9]
to [ef2d7fdca0].
︙ | | |
14
15
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
47
48
49
50
51
52
53
54
55
|
14
15
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
47
48
49
50
51
52
53
54
55
|
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
|
* file.
*/
#import "OFException.h"
@class OFThread;
/**
* \brief An exception indicating that starting a thread failed.
/*!
* @brief An exception indicating that starting a thread failed.
*/
@interface OFThreadStartFailedException: OFException
{
OFThread *thread;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, retain, nonatomic) OFThread *thread;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param thread The thread which could not be started
* \return An initialized thread start failed exception
/*!
* @param class_ The class of the object which caused the exception
* @param thread The thread which could not be started
* @return An initialized thread start failed exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
thread: (OFThread*)thread;
/**
/*!
* Initializes an already allocated thread start failed exception.
*
* \param class_ The class of the object which caused the exception
* \param thread The thread which could not be started
* \return An initialized thread start failed exception
* @param class_ The class of the object which caused the exception
* @param thread The thread which could not be started
* @return An initialized thread start failed exception
*/
- initWithClass: (Class)class_
thread: (OFThread*)thread;
/**
* \return The thread which could not be started
/*!
* @return The thread which could not be started
*/
- (OFThread*)thread;
@end
|
Modified src/exceptions/OFThreadStillRunningException.h
from [306bedb437]
to [38c5cd8176].
︙ | | |
14
15
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
47
48
49
50
51
52
53
54
55
|
14
15
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
47
48
49
50
51
52
53
54
55
|
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
|
* file.
*/
#import "OFException.h"
@class OFThread;
/**
* \brief An exception indicating that a thread is still running.
/*!
* @brief An exception indicating that a thread is still running.
*/
@interface OFThreadStillRunningException: OFException
{
OFThread *thread;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, retain, nonatomic) OFThread *thread;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param thread The thread which is still running
* \return A new thread still running exception
/*!
* @param class_ The class of the object which caused the exception
* @param thread The thread which is still running
* @return A new thread still running exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
thread: (OFThread*)thread;
/**
/*!
* Initializes an already allocated thread still running exception.
*
* \param class_ The class of the object which caused the exception
* \param thread The thread which is still running
* \return An initialized thread still running exception
* @param class_ The class of the object which caused the exception
* @param thread The thread which is still running
* @return An initialized thread still running exception
*/
- initWithClass: (Class)class_
thread: (OFThread*)thread;
/**
* \return The thread which is still running
/*!
* @return The thread which is still running
*/
- (OFThread*)thread;
@end
|
Modified src/exceptions/OFTruncatedDataException.h
from [c41efa96ff]
to [22121c25a4].
︙ | | |
12
13
14
15
16
17
18
19
20
21
22
23
24
|
12
13
14
15
16
17
18
19
20
21
22
23
24
|
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFException.h"
/**
* \brief An exception indicating that data was truncated while it should not
/*!
* @brief An exception indicating that data was truncated while it should not
* have been truncated.
*/
@interface OFTruncatedDataException: OFException
@end
|
Modified src/exceptions/OFUnboundNamespaceException.h
from [d127c108c6]
to [534b808350].
︙ | | |
12
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
12
13
14
15
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
-
-
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFException.h"
/**
* \brief An exception indicating an attempt to use an unbound namespace.
/*!
* @brief An exception indicating an attempt to use an unbound namespace.
*/
@interface OFUnboundNamespaceException: OFException
{
OFString *ns;
OFString *prefix;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, copy, nonatomic, getter=namespace) OFString *ns;
@property (readonly, copy, nonatomic) OFString *prefix;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param ns The namespace which is unbound
* \return A new unbound namespace exception
/*!
* @param class_ The class of the object which caused the exception
* @param ns The namespace which is unbound
* @return A new unbound namespace exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
namespace: (OFString*)ns;
/**
* \param class_ The class of the object which caused the exception
* \param prefix The prefix which is unbound
* \return A new unbound namespace exception
/*!
* @param class_ The class of the object which caused the exception
* @param prefix The prefix which is unbound
* @return A new unbound namespace exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
prefix: (OFString*)prefix;
/**
/*!
* Initializes an already allocated unbound namespace exception
*
* \param class_ The class of the object which caused the exception
* \param ns The namespace which is unbound
* \return An initialized unbound namespace exception
* @param class_ The class of the object which caused the exception
* @param ns The namespace which is unbound
* @return An initialized unbound namespace exception
*/
- initWithClass: (Class)class_
namespace: (OFString*)ns;
/**
/*!
* Initializes an already allocated unbound namespace exception
*
* \param class_ The class of the object which caused the exception
* \param prefix The prefix which is unbound
* \return An initialized unbound namespace exception
* @param class_ The class of the object which caused the exception
* @param prefix The prefix which is unbound
* @return An initialized unbound namespace exception
*/
- initWithClass: (Class)class_
prefix: (OFString*)prefix;
/**
* \return The unbound namespace
/*!
* @return The unbound namespace
*/
- (OFString*)namespace;
/**
* \return The unbound prefix
/*!
* @return The unbound prefix
*/
- (OFString*)prefix;
@end
|
Modified src/exceptions/OFUnlockFailedException.h
from [7d2a66af7c]
to [d34f94e502].
︙ | | |
13
14
15
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
47
48
49
50
51
52
53
54
|
13
14
15
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
47
48
49
50
51
52
53
54
|
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
|
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFException.h"
#import "OFLocking.h"
/**
* \brief An exception indicating that unlocking a lock failed.
/*!
* @brief An exception indicating that unlocking a lock failed.
*/
@interface OFUnlockFailedException: OFException
{
id <OFLocking> lock;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, retain, nonatomic) id <OFLocking> lock;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param lock The lock which could not be unlocked
* \return A new unlock failed exception
/*!
* @param class_ The class of the object which caused the exception
* @param lock The lock which could not be unlocked
* @return A new unlock failed exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
lock: (id <OFLocking>)lock;
/**
/*!
* Initializes an already allocated unlock failed exception.
*
* \param class_ The class of the object which caused the exception
* \param lock The lock which could not be unlocked
* \return An initialized unlock failed exception
* @param class_ The class of the object which caused the exception
* @param lock The lock which could not be unlocked
* @return An initialized unlock failed exception
*/
- initWithClass: (Class)class_
lock: (id <OFLocking>)lock;
/**
* \return The lock which could not be unlocked
/*!
* @return The lock which could not be unlocked
*/
- (id <OFLocking>)lock;
@end
|
Modified src/exceptions/OFUnsupportedProtocolException.h
from [6c4ace59cb]
to [37606905ac].
︙ | | |
14
15
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
47
48
49
50
51
52
53
54
55
56
|
14
15
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
47
48
49
50
51
52
53
54
55
56
|
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
|
* file.
*/
#import "OFException.h"
@class OFURL;
/**
* \brief An exception indicating that the protocol specified by the URL is not
/*!
* @brief An exception indicating that the protocol specified by the URL is not
* supported.
*/
@interface OFUnsupportedProtocolException: OFException
{
OFURL *URL;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, retain, nonatomic) OFURL *URL;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param url The URL whose protocol is unsupported
* \return A new unsupported protocol exception
/*!
* @param class_ The class of the object which caused the exception
* @param url The URL whose protocol is unsupported
* @return A new unsupported protocol exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
URL: (OFURL*)url;
/**
/*!
* Initializes an already allocated unsupported protocol exception
*
* \param class_ The class of the object which caused the exception
* \param url The URL whose protocol is unsupported
* \return An initialized unsupported protocol exception
* @param class_ The class of the object which caused the exception
* @param url The URL whose protocol is unsupported
* @return An initialized unsupported protocol exception
*/
- initWithClass: (Class)class_
URL: (OFURL*)url;
/**
* \return The URL whose protocol is unsupported
/*!
* @return The URL whose protocol is unsupported
*/
- (OFURL*)URL;
@end
|
Modified src/exceptions/OFUnsupportedVersionException.h
from [1c4d087ca0]
to [d2a3d08879].
︙ | | |
12
13
14
15
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
47
48
49
50
51
52
53
54
|
12
13
14
15
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
47
48
49
50
51
52
53
54
|
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFException.h"
/**
* \brief An exception indicating that the specified version of the format or
/*!
* @brief An exception indicating that the specified version of the format or
* protocol is not supported.
*/
@interface OFUnsupportedVersionException: OFException
{
OFString *version;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly, copy, nonatomic) OFString *version;
#endif
/**
* \param class_ The class of the object which caused the exception
* \param version The version which is unsupported
* \return A new unsupported version exception
/*!
* @param class_ The class of the object which caused the exception
* @param version The version which is unsupported
* @return A new unsupported version exception
*/
+ (instancetype)exceptionWithClass: (Class)class_
version: (OFString*)version;
/**
/*!
* Initializes an already allocated unsupported protocol exception
*
* \param class_ The class of the object which caused the exception
* \param version The version which is unsupported
* \return An initialized unsupported version exception
* @param class_ The class of the object which caused the exception
* @param version The version which is unsupported
* @return An initialized unsupported version exception
*/
- initWithClass: (Class)class_
version: (OFString*)version;
/**
* \return The version which is unsupported
/*!
* @return The version which is unsupported
*/
- (OFString*)version;
@end
|
Modified src/exceptions/OFWriteFailedException.h
from [fec27107fc]
to [0433bbd7e6].
︙ | | |
12
13
14
15
16
17
18
19
20
21
22
23
|
12
13
14
15
16
17
18
19
20
21
22
23
|
-
-
+
+
|
* Public License, either version 2 or 3, which can be found in the file
* LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
* file.
*/
#import "OFReadOrWriteFailedException.h"
/**
* \brief An exception indicating a write to a stream failed.
/*!
* @brief An exception indicating a write to a stream failed.
*/
@interface OFWriteFailedException: OFReadOrWriteFailedException
@end
|