ObjFW  Check-in [246cfe0807]

Overview
Comment:Documentation: Show correct imports
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 246cfe08074de3842723b3448fac6ae81c52441010ac4787302e23d45db5f1ae
User & Date: js on 2014-02-18 18:50:30
Other Links: manifest | tags
Context
2014-02-18
23:02
OFINIFileTests: Fix a warning when using Apple GCC check-in: 67225c4644 user: js tags: trunk
18:50
Documentation: Show correct imports check-in: 246cfe0807 user: js tags: trunk
15:07
macros.h: Add OF_ARM64_ASM define check-in: efcf24c8ba user: js tags: trunk
Changes

Modified src/OFApplication.h from [6c9dd5902f] to [6ad0d38bc0].

26
27
28
29
30
31
32


33
34
35
36
37
38
39
	int								\
	main(int argc, char *argv[])					\
	{								\
		return of_application_main(&argc, &argv, [cls class]);	\
	}

/*!


 * @brief A protocol for delegates of OFApplication.
 */
@protocol OFApplicationDelegate <OFObject>
/*!
 * @brief A method which is called when the application was initialized and is
 *	  running now.
 */







>
>







26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
	int								\
	main(int argc, char *argv[])					\
	{								\
		return of_application_main(&argc, &argv, [cls class]);	\
	}

/*!
 * @protocol OFApplicationDelegate OFApplication.h ObjFW/OFApplication.h
 *
 * @brief A protocol for delegates of OFApplication.
 */
@protocol OFApplicationDelegate <OFObject>
/*!
 * @brief A method which is called when the application was initialized and is
 *	  running now.
 */
93
94
95
96
97
98
99


100
101
102
103
104
105
106
 *	    signal-safe function!
 */
- (void)applicationDidReceiveSIGUSR2;
#endif
@end

/*!


 * @brief A class which represents the application as an object.
 *
 * In order to create a new OFApplication, you should create a class conforming
 * to the optional @ref OFApplicationDelegate protocol and put
 * `OF_APPLICATION_DELEGATE(NameOfYourClass)` in the .m file of that class. The
 * only required method of the @ref OFApplicationDelegate protocol is
 * @ref OFApplicationDelegate::applicationDidFinishLaunching.







>
>







95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
 *	    signal-safe function!
 */
- (void)applicationDidReceiveSIGUSR2;
#endif
@end

/*!
 * @class OFApplication OFApplication.h ObjFW/OFApplication.h
 *
 * @brief A class which represents the application as an object.
 *
 * In order to create a new OFApplication, you should create a class conforming
 * to the optional @ref OFApplicationDelegate protocol and put
 * `OF_APPLICATION_DELEGATE(NameOfYourClass)` in the .m file of that class. The
 * only required method of the @ref OFApplicationDelegate protocol is
 * @ref OFApplicationDelegate::applicationDidFinishLaunching.

Modified src/OFArray.h from [dc4b94d1fe] to [60fd5eff45].

76
77
78
79
80
81
82


83
84
85
86
87
88
89
 * @param right The object that should be added to the left object
 * @return The left and right side folded into one object
 */
typedef id (^of_array_fold_block_t)(id left, id right);
#endif

/*!


 * @brief An abstract class for storing objects in an array.
 */
@interface OFArray: OFObject <OFCopying, OFMutableCopying, OFCollection,
    OFSerialization, OFJSONRepresentation, OFMessagePackRepresentation>
#ifdef OF_HAVE_PROPERTIES
@property (readonly) size_t count;
#endif







>
>







76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
 * @param right The object that should be added to the left object
 * @return The left and right side folded into one object
 */
typedef id (^of_array_fold_block_t)(id left, id right);
#endif

/*!
 * @class OFArray OFArray.h ObjFW/OFArray.h
 *
 * @brief An abstract class for storing objects in an array.
 */
@interface OFArray: OFObject <OFCopying, OFMutableCopying, OFCollection,
    OFSerialization, OFJSONRepresentation, OFMessagePackRepresentation>
#ifdef OF_HAVE_PROPERTIES
@property (readonly) size_t count;
#endif

Modified src/OFAutoreleasePool.h from [9dded99b23] to [e825bde366].

13
14
15
16
17
18
19


20
21
22
23
24
25
26
 * 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.
 *
 * 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.
 */







>
>







13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFObject.h"

/*!
 * @class OFAutoreleasePool OFAutoreleasePool.h ObjFW/OFAutoreleasePool.h
 *
 * @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.
 */

Modified src/OFBigDataArray.h from [1e1174c0de] to [2e1be6df3a].

13
14
15
16
17
18
19


20
21
22
23
24
25
26
27
28
29
30
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFDataArray.h"

/*!


 * @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







>
>











13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFDataArray.h"

/*!
 * @class OFBigDataArray OFBigDataArray.h ObjFW/OFBigDataArray.h
 *
 * @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

Modified src/OFBlock.h from [0ba2570f98] to [8b79a84526].

15
16
17
18
19
20
21


22
23
24
25
26
27
28
29
30
31
32
33
34
 */

#import "OFObject.h"

#import "block.h"

/*!


 * @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







>
>













15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 */

#import "OFObject.h"

#import "block.h"

/*!
 * @class OFBlock OFBlock.h ObjFW/OFBlock.h
 *
 * @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 [d56b5df8a9] to [f89cf4a331].

13
14
15
16
17
18
19


20
21
22
23
24
25
26
 * 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.
 */
@protocol OFCollection <OFEnumerating, OFFastEnumeration>
#ifdef OF_HAVE_PROPERTIES
@property (readonly) size_t count;
#endif








>
>







13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFEnumerator.h"

/*!
 * @protocol OFCollection OFCollection.h ObjFW/OFCollection.h
 *
 * @brief A protocol with methods common for all collections.
 */
@protocol OFCollection <OFEnumerating, OFFastEnumeration>
#ifdef OF_HAVE_PROPERTIES
@property (readonly) size_t count;
#endif

Modified src/OFCondition.h from [a30632d8ca] to [80a099a869].

15
16
17
18
19
20
21


22
23
24
25
26
27
28
 */

#import "OFMutex.h"

@class OFDate;

/*!


 * @brief A class implementing a condition variable for thread synchronization.
 */
@interface OFCondition: OFMutex
{
	of_condition_t _condition;
	bool _conditionInitialized;
}







>
>







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 */

#import "OFMutex.h"

@class OFDate;

/*!
 * @class OFCondition OFCondition.h ObjFW/OFCondition.h
 *
 * @brief A class implementing a condition variable for thread synchronization.
 */
@interface OFCondition: OFMutex
{
	of_condition_t _condition;
	bool _conditionInitialized;
}

Modified src/OFConstantString.h from [0a749d86f9] to [2e417ce284].

24
25
26
27
28
29
30


31
32
33
34
35
36
37
38
extern void *_OFConstantStringClassReference;
# ifdef __cplusplus
}
# endif
#endif

/*!


 * @brief A class for storing constant strings using the `@""` literal.
 */
@interface OFConstantString: OFString
{
	char *_cString;
	unsigned int _cStringLength;
}
@end







>
>








24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
extern void *_OFConstantStringClassReference;
# ifdef __cplusplus
}
# endif
#endif

/*!
 * @class OFConstantString OFConstantString.h ObjFW/OFConstantString.h
 *
 * @brief A class for storing constant strings using the `@""` literal.
 */
@interface OFConstantString: OFString
{
	char *_cString;
	unsigned int _cStringLength;
}
@end

Modified src/OFCountedSet.h from [7fce99b262] to [32af3c9e96].

28
29
30
31
32
33
34


35
36
37
38
39
40
41
 *	       enumeration
 */
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
 *	  often it contains an object.
 */
@interface OFCountedSet: OFMutableSet
/*!
 * @brief Returns how often the object is in the set.
 *







>
>







28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 *	       enumeration
 */
typedef void (^of_counted_set_enumeration_block_t)(id object, size_t count,
    bool *stop);
#endif

/*!
 * @class OFCountedSet OFCountedSet.h ObjFW/OFCountedSet.h
 *
 * @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.
 *

Modified src/OFDataArray+Hashing.h from [d39da05b13] to [67534c24f6].

22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
extern "C" {
#endif
extern int _OFDataArray_Hashing_reference;
#ifdef __cplusplus
}
#endif

/*!
 * @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.
 *
 * @return The MD5 hash of the data array as an autoreleased OFString
 */
- (OFString*)MD5Hash;







<
<
<







22
23
24
25
26
27
28



29
30
31
32
33
34
35
extern "C" {
#endif
extern int _OFDataArray_Hashing_reference;
#ifdef __cplusplus
}
#endif




@interface OFDataArray (Hashing)
/*!
 * @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
 */
- (OFString*)MD5Hash;

Modified src/OFDataArray+MessagePackValue.h from [96f551d47c] to [0b1d4a161d].

21
22
23
24
25
26
27





28
29
#endif
extern int _OFDataArray_MessagePackValue_reference;
#ifdef __cplusplus
}
#endif

@interface OFDataArray (MessagePackValue)





- (id)messagePackValue;
@end







>
>
>
>
>


21
22
23
24
25
26
27
28
29
30
31
32
33
34
#endif
extern int _OFDataArray_MessagePackValue_reference;
#ifdef __cplusplus
}
#endif

@interface OFDataArray (MessagePackValue)
/*!
 * @brief Parses the MessagePack representation and returns it as an object.
 *
 * @return The MessagePack representation as an object
 */
- (id)messagePackValue;
@end

Modified src/OFDataArray.h from [2af3ef13d9] to [165d7482b5].

18
19
20
21
22
23
24


25
26
27
28
29
30
31
#import "OFSerialization.h"
#import "OFMessagePackRepresentation.h"

@class OFString;
@class OFURL;

/*!


 * @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.







>
>







18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#import "OFSerialization.h"
#import "OFMessagePackRepresentation.h"

@class OFString;
@class OFURL;

/*!
 * @class OFDataArray OFDataArray.h ObjFW/OFDataArray.h
 *
 * @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.

Modified src/OFDate.h from [496c98e81f] to [1977db700a].

17
18
19
20
21
22
23


24
25
26
27
28
29
30
#import "OFObject.h"
#import "OFSerialization.h"

@class OFString;
@class OFConstantString;

/*!


 * @brief A class for storing, accessing and comparing dates.
 */
@interface OFDate: OFObject <OFCopying, OFComparing, OFSerialization>
{
	of_time_interval_t _seconds;
}








>
>







17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#import "OFObject.h"
#import "OFSerialization.h"

@class OFString;
@class OFConstantString;

/*!
 * @class OFDate OFDate.h ObjFW/OFDate.h
 *
 * @brief A class for storing, accessing and comparing dates.
 */
@interface OFDate: OFObject <OFCopying, OFComparing, OFSerialization>
{
	of_time_interval_t _seconds;
}

Modified src/OFDeflate64Stream.h from [844ec55b8b] to [9afca5b410].

13
14
15
16
17
18
19


20
21
22
23
24
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFDeflateStream.h"

/*!


 * @brief A class for a stream that handles Deflate64 compression or
 *	  decompression transparently for an underlying stream.
 */
@interface OFDeflate64Stream: OFDeflateStream
@end







>
>





13
14
15
16
17
18
19
20
21
22
23
24
25
26
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFDeflateStream.h"

/*!
 * @class OFDeflate64Stream OFDeflate64Stream.h ObjFW/OFDeflate64Stream.h
 *
 * @brief A class for a stream that handles Deflate64 compression or
 *	  decompression transparently for an underlying stream.
 */
@interface OFDeflate64Stream: OFDeflateStream
@end

Modified src/OFDeflateStream.h from [1efdac5dd5] to [c9168b28f2].

15
16
17
18
19
20
21


22
23
24
25
26
27
28
 */

#import "OFStream.h"

#define OF_DEFLATE_STREAM_BUFFER_SIZE 4096

/*!


 * @brief A class for a stream that handles Deflate compression or decompression
 *	  transparently for an underlying stream.
 */
@interface OFDeflateStream: OFStream
{
#ifdef OF_DEFLATE_STREAM_M
@public







>
>







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 */

#import "OFStream.h"

#define OF_DEFLATE_STREAM_BUFFER_SIZE 4096

/*!
 * @class OFDeflateStream OFDeflateStream.h ObjFW/OFDeflateStream.h
 *
 * @brief A class for a stream that handles Deflate compression or decompression
 *	  transparently for an underlying stream.
 */
@interface OFDeflateStream: OFStream
{
#ifdef OF_DEFLATE_STREAM_M
@public

Modified src/OFDictionary.h from [dd75d3de98] to [572c030e5b].

36
37
38
39
40
41
42


43
44
45
46
47
48
49
50
51
52
53
54
55
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.
 *
 * 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, OFMessagePackRepresentation>
/*!
 * @brief Creates a new OFDictionary.
 *
 * @return A new autoreleased OFDictionary







>
>




|
|







36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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

/*!
 * @class OFDictionary OFDictionary.h ObjFW/OFDictionary.h
 *
 * @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, OFMessagePackRepresentation>
/*!
 * @brief Creates a new OFDictionary.
 *
 * @return A new autoreleased OFDictionary

Modified src/OFEnumerator.h from [d0b20e743d] to [d37f2396c8].

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

#import "OFObject.h"

@class OFEnumerator;
@class OFArray;

/*!


 * @brief A protocol for getting an enumerator for the object.
 */
@protocol OFEnumerating
/*!
 * @brief Returns an OFEnumerator to enumerate through all objects of the
 *	  collection.
 *
 * @returns An OFEnumerator to enumerate through all objects of the collection
 */
- (OFEnumerator*)objectEnumerator;
@end

/*!


 * @brief A class which provides methods to enumerate through collections.
 */
@interface OFEnumerator: OFObject
/*!
 * @brief Returns the next object.
 *
 * @return The next object







>
>













>
>







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46

#import "OFObject.h"

@class OFEnumerator;
@class OFArray;

/*!
 * @protocol OFEnumerating OFEnumerator.h ObjFW/OFEnumerator.h
 *
 * @brief A protocol for getting an enumerator for the object.
 */
@protocol OFEnumerating
/*!
 * @brief Returns an OFEnumerator to enumerate through all objects of the
 *	  collection.
 *
 * @returns An OFEnumerator to enumerate through all objects of the collection
 */
- (OFEnumerator*)objectEnumerator;
@end

/*!
 * @class OFEnumerator OFEnumerator.h ObjFW/OFEnumerator.h
 *
 * @brief A class which provides methods to enumerate through collections.
 */
@interface OFEnumerator: OFObject
/*!
 * @brief Returns the next object.
 *
 * @return The next object
62
63
64
65
66
67
68


69
70
71
72
73
74
75
76
77
78
79
80
81
82
83


84
85
86
87
88
89
90
 *
 * 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.
 */
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.
 *
 * The OFFastEnumeration protocol needs to be implemented by all classes
 * supporting fast enumeration.
 */
@protocol OFFastEnumeration
/*!







>
>


|












>
>







66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
 *
 * We need this bad check to see if we already imported Cocoa, which defines
 * this as well.
 */
#define of_fast_enumeration_state_t NSFastEnumerationState
#ifndef NSINTEGER_DEFINED
/*!
 * @struct of_fast_enumeration_state_t OFEnumerator.h ObjFW/OFEnumerator.h
 *
 * @brief State information for fast enumerations.
 */
typedef struct {
	/// Arbitrary state information for the enumeration
	unsigned long state;
	/// Pointer to a C array of objects to return
	__unsafe_unretained id *itemsPtr;
	/// Arbitrary state information to detect mutations
	unsigned long *mutationsPtr;
	/// Additional arbitrary state information
	unsigned long extra[5];
} of_fast_enumeration_state_t;
#endif

/*!
 * @protocol OFFastEnumeration OFEnumerator.h ObjFW/OFEnumerator.h
 *
 * @brief A protocol for fast enumeration.
 *
 * The OFFastEnumeration protocol needs to be implemented by all classes
 * supporting fast enumeration.
 */
@protocol OFFastEnumeration
/*!

Modified src/OFFile.h from [f9d394d62d] to [b4c919473a].

32
33
34
35
36
37
38


39
40
41
42
43
44
45
#ifndef _WIN32
typedef struct stat of_stat_t;
#else
typedef struct _stat of_stat_t;
#endif

/*!


 * @brief A class which provides functions to read, write and manipulate files.
 */
@interface OFFile: OFSeekableStream
{
	int  _fd;
	bool _atEndOfStream;
}







>
>







32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#ifndef _WIN32
typedef struct stat of_stat_t;
#else
typedef struct _stat of_stat_t;
#endif

/*!
 * @class OFFile OFFile.h ObjFW/OFFile.h
 *
 * @brief A class which provides functions to read, write and manipulate files.
 */
@interface OFFile: OFSeekableStream
{
	int  _fd;
	bool _atEndOfStream;
}

Modified src/OFHTTPClient.h from [eeab9ddcde] to [edd0288715].

25
26
27
28
29
30
31


32
33
34
35
36
37
38
@class OFHTTPResponse;
@class OFURL;
@class OFTCPSocket;
@class OFDictionary;
@class OFDataArray;

/*!


 * @brief A delegate for OFHTTPClient.
 */
@protocol OFHTTPClientDelegate <OFObject>
#ifdef OF_HAVE_OPTIONAL_PROTOCOLS
@optional
#endif
/*!







>
>







25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
@class OFHTTPResponse;
@class OFURL;
@class OFTCPSocket;
@class OFDictionary;
@class OFDataArray;

/*!
 * @protocol OFHTTPClientDelegate OFHTTPClient.h ObjFW/OFHTTPClient.h
 *
 * @brief A delegate for OFHTTPClient.
 */
@protocol OFHTTPClientDelegate <OFObject>
#ifdef OF_HAVE_OPTIONAL_PROTOCOLS
@optional
#endif
/*!
87
88
89
90
91
92
93


94
95
96
97
98
99
100
-	  (bool)client: (OFHTTPClient*)client
  shouldFollowRedirect: (OFURL*)URL
	    statusCode: (int)statusCode
	       request: (OFHTTPRequest*)request;
@end

/*!


 * @brief A class for performing HTTP requests.
 */
@interface OFHTTPClient: OFObject
{
	id <OFHTTPClientDelegate> _delegate;
	bool _insecureRedirectsAllowed;
	OFTCPSocket *_socket;







>
>







89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
-	  (bool)client: (OFHTTPClient*)client
  shouldFollowRedirect: (OFURL*)URL
	    statusCode: (int)statusCode
	       request: (OFHTTPRequest*)request;
@end

/*!
 * @class OFHTTPClient OFHTTPClient.h ObjFW/OFHTTPClient.h
 *
 * @brief A class for performing HTTP requests.
 */
@interface OFHTTPClient: OFObject
{
	id <OFHTTPClientDelegate> _delegate;
	bool _insecureRedirectsAllowed;
	OFTCPSocket *_socket;

Modified src/OFHTTPRequest.h from [f4880d373c] to [1d003cc829].

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
@class OFString;

/*! @file */

/*!
 * @brief The type of an HTTP request.
 */
typedef enum of_http_request_method_t {
	/*! OPTIONS */
	OF_HTTP_REQUEST_METHOD_OPTIONS,
	/*! GET */
	OF_HTTP_REQUEST_METHOD_GET,
	/*! HEAD */
	OF_HTTP_REQUEST_METHOD_HEAD,
	/*! POST */
	OF_HTTP_REQUEST_METHOD_POST,
	/*! PUT */
	OF_HTTP_REQUEST_METHOD_PUT,
	/*! DELETE */
	OF_HTTP_REQUEST_METHOD_DELETE,
	/*! TRACE */
	OF_HTTP_REQUEST_METHOD_TRACE,
	/*! CONNECT */
	OF_HTTP_REQUEST_METHOD_CONNECT
} of_http_request_method_t;

/*!



 * @brief The HTTP version of the HTTP request.
 */
typedef struct of_http_request_protocol_version_t {
	/*! The major of the HTTP version */
	uint8_t major;
	/*! The minor of the HTTP version */
	uint8_t minor;
} of_http_request_protocol_version_t;

/*!


 * @brief A class for storing HTTP requests.
 */
@interface OFHTTPRequest: OFObject <OFCopying>
{
	OFURL *_URL;
	of_http_request_method_t _method;
	of_http_request_protocol_version_t _protocolVersion;







|



















>
>
>


|







>
>







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
@class OFString;

/*! @file */

/*!
 * @brief The type of an HTTP request.
 */
typedef enum {
	/*! OPTIONS */
	OF_HTTP_REQUEST_METHOD_OPTIONS,
	/*! GET */
	OF_HTTP_REQUEST_METHOD_GET,
	/*! HEAD */
	OF_HTTP_REQUEST_METHOD_HEAD,
	/*! POST */
	OF_HTTP_REQUEST_METHOD_POST,
	/*! PUT */
	OF_HTTP_REQUEST_METHOD_PUT,
	/*! DELETE */
	OF_HTTP_REQUEST_METHOD_DELETE,
	/*! TRACE */
	OF_HTTP_REQUEST_METHOD_TRACE,
	/*! CONNECT */
	OF_HTTP_REQUEST_METHOD_CONNECT
} of_http_request_method_t;

/*!
 * @struct of_http_request_protocol_version_t \
 *	   OFHTTPRequest.h ObjFW/OFHTTPRequest.h
 *
 * @brief The HTTP version of the HTTP request.
 */
typedef struct {
	/*! The major of the HTTP version */
	uint8_t major;
	/*! The minor of the HTTP version */
	uint8_t minor;
} of_http_request_protocol_version_t;

/*!
 * @class OFHTTPRequest OFHTTPRequest.h ObjFW/OFHTTPRequest.h
 *
 * @brief A class for storing HTTP requests.
 */
@interface OFHTTPRequest: OFObject <OFCopying>
{
	OFURL *_URL;
	of_http_request_method_t _method;
	of_http_request_protocol_version_t _protocolVersion;

Modified src/OFHTTPResponse.h from [4eb3a5ba06] to [a95495b814].

16
17
18
19
20
21
22


23
24
25
26
27
28
29

#import "OFStream.h"
#import "OFHTTPRequest.h"

@class OFDictionary;

/*!


 * @brief A class for representing an HTTP request reply as a stream.
 */
@interface OFHTTPResponse: OFStream
{
	of_http_request_protocol_version_t _protocolVersion;
	short _statusCode;
	OFDictionary *_headers;







>
>







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

#import "OFStream.h"
#import "OFHTTPRequest.h"

@class OFDictionary;

/*!
 * @class OFHTTPResponse OFHTTPResponse.h ObjFW/OFHTTPResponse.h
 *
 * @brief A class for representing an HTTP request reply as a stream.
 */
@interface OFHTTPResponse: OFStream
{
	of_http_request_protocol_version_t _protocolVersion;
	short _statusCode;
	OFDictionary *_headers;

Modified src/OFHTTPServer.h from [4d1c017d3b] to [45dbd3ac59].

23
24
25
26
27
28
29


30
31
32
33
34
35
36
@class OFHTTPServer;
@class OFHTTPRequest;
@class OFHTTPResponse;
@class OFTCPSocket;
@class OFException;

/*!


 * @brief A delegate for OFHTTPServer.
 */
@protocol OFHTTPServerDelegate <OFObject>
/*!
 * @brief This method is called when the HTTP server received a request from a
 *	  client.
 *







>
>







23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
@class OFHTTPServer;
@class OFHTTPRequest;
@class OFHTTPResponse;
@class OFTCPSocket;
@class OFException;

/*!
 * @protocol OFHTTPServerDelegate OFHTTPServer.h ObjFW/OFHTTPServer.h
 *
 * @brief A delegate for OFHTTPServer.
 */
@protocol OFHTTPServerDelegate <OFObject>
/*!
 * @brief This method is called when the HTTP server received a request from a
 *	  client.
 *
57
58
59
60
61
62
63


64
65
66
67
68
69
70
 *	   connections again by calling @ref OFHTTPServer::start again.
 */
-			  (bool)server: (OFHTTPServer*)server
  didReceiveExceptionOnListeningSocket: (OFException*)exception;
@end

/*!


 * @brief A class for creating a simple HTTP server inside of applications.
 */
@interface OFHTTPServer: OFObject
{
	OFString *_host;
	uint16_t _port;
	id <OFHTTPServerDelegate> _delegate;







>
>







59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
 *	   connections again by calling @ref OFHTTPServer::start again.
 */
-			  (bool)server: (OFHTTPServer*)server
  didReceiveExceptionOnListeningSocket: (OFException*)exception;
@end

/*!
 * @class OFHTTPServer OFHTTPServer.h ObjFW/OFHTTPServer.h
 *
 * @brief A class for creating a simple HTTP server inside of applications.
 */
@interface OFHTTPServer: OFObject
{
	OFString *_host;
	uint16_t _port;
	id <OFHTTPServerDelegate> _delegate;

Modified src/OFHash.h from [21f7390fe1] to [e01a66cabf].

13
14
15
16
17
18
19


20
21
22
23
24
25
26
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFObject.h"

/*!


 * @brief A protocol for classes providing hash functions.
 */
@protocol OFHash <OFObject>
#ifdef OF_HAVE_PROPERTIES
@property (readonly, getter=isCalculated) bool calculated;
#endif








>
>







13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFObject.h"

/*!
 * @protocol OFHash OFHash.h ObjFW/OFHash.h
 *
 * @brief A protocol for classes providing hash functions.
 */
@protocol OFHash <OFObject>
#ifdef OF_HAVE_PROPERTIES
@property (readonly, getter=isCalculated) bool calculated;
#endif

Modified src/OFINICategory.h from [d8d5c9ed59] to [453e9e177f].

16
17
18
19
20
21
22


23
24
25
26
27
28
29

#import "OFObject.h"

@class OFString;
@class OFMutableArray;

/*!


 * @brief A class for representing a category of an INI file.
 */
@interface OFINICategory: OFObject
{
	OFString *_name;
	OFMutableArray *_lines;
}







>
>







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

#import "OFObject.h"

@class OFString;
@class OFMutableArray;

/*!
 * @class OFINICategory OFINICategory.h ObjFW/OFINICategory.h
 *
 * @brief A class for representing a category of an INI file.
 */
@interface OFINICategory: OFObject
{
	OFString *_name;
	OFMutableArray *_lines;
}

Modified src/OFINIFile.h from [826ba40401] to [48c881a928].

17
18
19
20
21
22
23


24
25
26
27
28
29
30
#import "OFObject.h"

@class OFMutableArray;
@class OFString;
@class OFINICategory;

/*!


 * @brief A class for reading, creating and modifying INI files.
 */
@interface OFINIFile: OFObject
{
	OFMutableArray *_categories;
}








>
>







17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#import "OFObject.h"

@class OFMutableArray;
@class OFString;
@class OFINICategory;

/*!
 * @class OFINIFile OFINIFile.h ObjFW/OFINIFile.h
 *
 * @brief A class for reading, creating and modifying INI files.
 */
@interface OFINIFile: OFObject
{
	OFMutableArray *_categories;
}

Modified src/OFIntrospection.h from [f90e9b8b92] to [3a45207c09].

30
31
32
33
34
35
36


37
38
39
40
41
42
43
	OF_PROPERTY_SYNTHESIZED	=  0x100,
	OF_PROPERTY_DYNAMIC	=  0x200,
	OF_PROPERTY_ATOMIC	=  0x400,
	OF_PROPERTY_WEAK	=  0x800
};

/*!


 * @brief A class for describing a method.
 */
@interface OFMethod: OFObject
{
	SEL _selector;
	OFString *_name;
	const char *_typeEncoding;







>
>







30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
	OF_PROPERTY_SYNTHESIZED	=  0x100,
	OF_PROPERTY_DYNAMIC	=  0x200,
	OF_PROPERTY_ATOMIC	=  0x400,
	OF_PROPERTY_WEAK	=  0x800
};

/*!
 * @class OFMethod OFIntrospection.h ObjFW/OFIntrospection.h
 *
 * @brief A class for describing a method.
 */
@interface OFMethod: OFObject
{
	SEL _selector;
	OFString *_name;
	const char *_typeEncoding;
68
69
70
71
72
73
74


75
76
77
78
79
80
81
 *
 * @return The type encoding for the method
 */
- (const char*)typeEncoding;
@end

/*!


 * @brief A class for describing a property.
 */
@interface OFProperty: OFObject
{
	OFString *_name;
	unsigned _attributes;
	OFString *_getter, *_setter;







>
>







70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
 *
 * @return The type encoding for the method
 */
- (const char*)typeEncoding;
@end

/*!
 * @class OFProperty OFIntrospection.h ObjFW/OFIntrospection.h
 *
 * @brief A class for describing a property.
 */
@interface OFProperty: OFObject
{
	OFString *_name;
	unsigned _attributes;
	OFString *_getter, *_setter;
127
128
129
130
131
132
133


134
135
136
137
138
139
140
 *
 * @return The name of the setter
 */
- (OFString*)setter;
@end

/*!


 * @brief A class for describing an instance variable.
 */
@interface OFInstanceVariable: OFObject
{
	OFString *_name;
	const char *_typeEncoding;
	ptrdiff_t _offset;







>
>







131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
 *
 * @return The name of the setter
 */
- (OFString*)setter;
@end

/*!
 * @class OFInstanceVariable OFIntrospection.h ObjFW/OFIntrospection.h
 *
 * @brief A class for describing an instance variable.
 */
@interface OFInstanceVariable: OFObject
{
	OFString *_name;
	const char *_typeEncoding;
	ptrdiff_t _offset;
165
166
167
168
169
170
171


172
173
174
175
176
177
178
 *
 * @return The type encoding for the instance variable
 */
- (const char*)typeEncoding;
@end

/*!


 * @brief A class for introspecting classes.
 */
@interface OFIntrospection: OFObject
{
	OFMutableArray *_classMethods;
	OFMutableArray *_instanceMethods;
	OFMutableArray *_properties;







>
>







171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
 *
 * @return The type encoding for the instance variable
 */
- (const char*)typeEncoding;
@end

/*!
 * @class OFIntrospection OFIntrospection.h ObjFW/OFIntrospection.h
 *
 * @brief A class for introspecting classes.
 */
@interface OFIntrospection: OFObject
{
	OFMutableArray *_classMethods;
	OFMutableArray *_instanceMethods;
	OFMutableArray *_properties;

Modified src/OFJSONRepresentation.h from [f9fd77253b] to [178200fd21].

19
20
21
22
23
24
25



26
27
28
29
30
31
32
enum {
	OF_JSON_REPRESENTATION_PRETTY	  = 0x01,
	OF_JSON_REPRESENTATION_JSON5	  = 0x02,
	OF_JSON_REPRESENTATION_IDENTIFIER = 0x10
};

/*!



 * @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
 *	    OFArray and OFDictionary, this will generate invalid JSON, as JSON
 *	    requires all data to be encapsulated in an array or a dictionary!
 */







>
>
>







19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
enum {
	OF_JSON_REPRESENTATION_PRETTY	  = 0x01,
	OF_JSON_REPRESENTATION_JSON5	  = 0x02,
	OF_JSON_REPRESENTATION_IDENTIFIER = 0x10
};

/*!
 * @protocol OFJSONRepresentation
 *	     OFJSONRepresentation.h ObjFW/OFJSONRepresentation.h
 *
 * @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
 *	    OFArray and OFDictionary, this will generate invalid JSON, as JSON
 *	    requires all data to be encapsulated in an array or a dictionary!
 */

Modified src/OFKernelEventObserver.h from [5b1f9ce35e] to [e0eb637de6].

23
24
25
26
27
28
29



30
31
32
33
34
35
36
@class OFDataArray;
#ifdef OF_HAVE_THREADS
@class OFMutex;
#endif
@class OFDate;

/*!



 * @brief A protocol that needs to be implemented by delegates for
 *	  OFKernelEventObserver.
 */
@protocol OFKernelEventObserverDelegate <OFObject>
#ifdef OF_HAVE_OPTIONAL_PROTOCOLS
@optional
#endif







>
>
>







23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
@class OFDataArray;
#ifdef OF_HAVE_THREADS
@class OFMutex;
#endif
@class OFDate;

/*!
 * @protocol OFKernelEventObserverDelegate
 *	     OFKernelEventObserver.h ObjFW/OFKernelEventObserver.h
 *
 * @brief A protocol that needs to be implemented by delegates for
 *	  OFKernelEventObserver.
 */
@protocol OFKernelEventObserverDelegate <OFObject>
#ifdef OF_HAVE_OPTIONAL_PROTOCOLS
@optional
#endif
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
 *
 * @param object The object which did become ready for writing
 */
- (void)objectIsReadyForWriting: (id)object;
@end

/*!



 * @brief This protocol is implemented by classes which can be observed for
 *	  readiness for reading by OFKernelEventObserver.
 */
@protocol OFReadyForReadingObserving <OFObject>
/*!
 * @brief Returns the file descriptor for reading that should be checked by the
 *	  OFKernelEventObserver.
 *
 * @return The file descriptor for reading that should be checked by the
 *	   OFKernelEventObserver
 */
- (int)fileDescriptorForReading;
@end

/*!



 * @brief This protocol is implemented by classes which can be observed for
 *	  readiness for writing by OFKernelEventObserver.
 */
@protocol OFReadyForWritingObserving <OFObject>
/*!
 * @brief Returns the file descriptor for writing that should be checked by the
 *	  OFKernelEventObserver.
 *
 * @return The file descriptor for writing that should be checked by the
 *	   OFKernelEventObserver
 */
- (int)fileDescriptorForWriting;
@end

/*!



 * @brief A class that can observe multiple kernel events (e.g. streams being
 *	  ready to read) at once.
 *
 * @note Currently, Win32 can only observe TCP and UDP sockets!
 */
@interface OFKernelEventObserver: OFObject
{







>
>
>















>
>
>















>
>
>







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
 *
 * @param object The object which did become ready for writing
 */
- (void)objectIsReadyForWriting: (id)object;
@end

/*!
 * @protocol OFReadyForReadingObserving
 *	     OFKernelEventObserver.h ObjFW/OFKernelEventObserver.h
 *
 * @brief This protocol is implemented by classes which can be observed for
 *	  readiness for reading by OFKernelEventObserver.
 */
@protocol OFReadyForReadingObserving <OFObject>
/*!
 * @brief Returns the file descriptor for reading that should be checked by the
 *	  OFKernelEventObserver.
 *
 * @return The file descriptor for reading that should be checked by the
 *	   OFKernelEventObserver
 */
- (int)fileDescriptorForReading;
@end

/*!
 * @protocol OFReadyForWritingObserving
 *	     OFKernelEventObserver.h ObjFW/OFKernelEventObserver.h
 *
 * @brief This protocol is implemented by classes which can be observed for
 *	  readiness for writing by OFKernelEventObserver.
 */
@protocol OFReadyForWritingObserving <OFObject>
/*!
 * @brief Returns the file descriptor for writing that should be checked by the
 *	  OFKernelEventObserver.
 *
 * @return The file descriptor for writing that should be checked by the
 *	   OFKernelEventObserver
 */
- (int)fileDescriptorForWriting;
@end

/*!
 * @class OFKernelEventObserver
 *	  OFKernelEventObserver.h ObjFW/OFKernelEventObserver.h
 *
 * @brief A class that can observe multiple kernel events (e.g. streams being
 *	  ready to read) at once.
 *
 * @note Currently, Win32 can only observe TCP and UDP sockets!
 */
@interface OFKernelEventObserver: OFObject
{

Modified src/OFList.h from [0d8079f77c] to [84a91cc02c].

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 "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.
 *
 * 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.
 */
@interface OFList: OFObject <OFCopying, OFCollection, OFSerialization>
{
	of_list_object_t *_firstListObject;
	of_list_object_t *_lastListObject;
	size_t		 _count;







>
>















>
>







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
#import "OFObject.h"
#import "OFCollection.h"
#import "OFEnumerator.h"
#import "OFSerialization.h"

typedef struct of_list_object_t of_list_object_t;
/*!
 * @struct of_list_object_t OFList.h ObjFW/OFList.h
 *
 * @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;
};

/*!
 * @class OFList OFList.h ObjFW/OFList.h
 *
 * @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;

Modified src/OFLocking.h from [7317b63929] to [51639b5a37].

13
14
15
16
17
18
19


20
21
22
23
24
25
26
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFObject.h"

/*!


 * @brief A protocol for locks.
 */
@protocol OFLocking <OFObject>
#ifdef OF_HAVE_PROPERTIES
@property (copy) OFString *name;
#endif








>
>







13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFObject.h"

/*!
 * @protocol OFLocking OFLocking.h ObjFW/OFLocking.h
 *
 * @brief A protocol for locks.
 */
@protocol OFLocking <OFObject>
#ifdef OF_HAVE_PROPERTIES
@property (copy) OFString *name;
#endif

Modified src/OFMD5Hash.h from [400ee45e8f] to [8efb12ba3e].

13
14
15
16
17
18
19


20
21
22
23
24
25
26
27
28
29
30
31
32
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFHash.h"

/*!


 * @brief A class which provides functions to create an MD5 hash.
 */
@interface OFMD5Hash: OFObject <OFHash>
{
	uint32_t _buffer[4];
	uint32_t _bits[2];
	union of_md5hash_in_union {
		uint8_t	u8[64];
		uint32_t u32[16];
	} _in;
	bool _calculated;
}
@end







>
>













13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFHash.h"

/*!
 * @class OFMD5Hash OFMD5Hash.h ObjFW/OFMD5Hash.h
 *
 * @brief A class which provides functions to create an MD5 hash.
 */
@interface OFMD5Hash: OFObject <OFHash>
{
	uint32_t _buffer[4];
	uint32_t _bits[2];
	union of_md5hash_in_union {
		uint8_t	u8[64];
		uint32_t u32[16];
	} _in;
	bool _calculated;
}
@end

Modified src/OFMapTable.h from [3debf5b6eb] to [7932c0a40a].

16
17
18
19
20
21
22


23
24
25
26
27
28
29
30
31
32

#import "OFObject.h"
#import "OFEnumerator.h"

/*! @file */

/*!


 * @brief A struct describing the functions to be used by the map table.
 */
typedef struct of_map_table_functions_t {
	/// The function to retain keys / values
	void* (*retain)(void *value);
	/// The function to release keys / values
	void (*release)(void *value);
	/// The function to hash keys
	uint32_t (*hash)(void *value);
	/// The function to compare keys / values







>
>


|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

#import "OFObject.h"
#import "OFEnumerator.h"

/*! @file */

/*!
 * @struct of_map_table_functions_t OFMapTable.h ObjFW/OFMapTable.h
 *
 * @brief A struct describing the functions to be used by the map table.
 */
typedef struct {
	/// The function to retain keys / values
	void* (*retain)(void *value);
	/// The function to release keys / values
	void (*release)(void *value);
	/// The function to hash keys
	uint32_t (*hash)(void *value);
	/// The function to compare keys / values
54
55
56
57
58
59
60


61
62
63
64
65
66
67
 */
typedef void* (^of_map_table_replace_block_t)(void *key, void *value);
#endif

@class OFMapTableEnumerator;

/*!


 * @brief A class similar to OFDictionary, but providing more options how keys
 *	  and values should be retained, released, compared and hashed.
 */
@interface OFMapTable: OFObject <OFCopying, OFFastEnumeration>
{
	of_map_table_functions_t _keyFunctions, _valueFunctions;
	struct of_map_table_bucket **_buckets;







>
>







56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
 */
typedef void* (^of_map_table_replace_block_t)(void *key, void *value);
#endif

@class OFMapTableEnumerator;

/*!
 * @class OFMapTable OFMapTable.h ObjFW/OFMapTable.h
 *
 * @brief A class similar to OFDictionary, but providing more options how keys
 *	  and values should be retained, released, compared and hashed.
 */
@interface OFMapTable: OFObject <OFCopying, OFFastEnumeration>
{
	of_map_table_functions_t _keyFunctions, _valueFunctions;
	struct of_map_table_bucket **_buckets;
221
222
223
224
225
226
227


228
229
230
231
232
233
234
 *
 * @return The value functions used by the map table
 */
- (of_map_table_functions_t)valueFunctions;
@end

/*!


 * @brief A class which provides methods to enumerate through an OFMapTable's
 *	  keys or values.
 */
@interface OFMapTableEnumerator: OFObject
{
	OFMapTable *_mapTable;
	struct of_map_table_bucket **_buckets;







>
>







225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
 *
 * @return The value functions used by the map table
 */
- (of_map_table_functions_t)valueFunctions;
@end

/*!
 * @class OFMapTableEnumerator OFMapTable.h ObjFW/OFMapTable.h
 *
 * @brief A class which provides methods to enumerate through an OFMapTable's
 *	  keys or values.
 */
@interface OFMapTableEnumerator: OFObject
{
	OFMapTable *_mapTable;
	struct of_map_table_bucket **_buckets;

Modified src/OFMessagePackExtension.h from [6fd732f70e] to [1abe8909d3].

16
17
18
19
20
21
22



23
24
25
26
27
28
29

#import "OFObject.h"
#import "OFMessagePackRepresentation.h"

@class OFDataArray;

/*!



 * @brief A class for representing the MessagePack extension type.
 */
@interface OFMessagePackExtension: OFObject <OFMessagePackRepresentation,
    OFCopying>
{
	int8_t _type;
	OFDataArray *_data;







>
>
>







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

#import "OFObject.h"
#import "OFMessagePackRepresentation.h"

@class OFDataArray;

/*!
 * @class OFMessagePackExtension \
 *	  OFMessagePackExtension.h ObjFW/OFMessagePackExtension.h
 *
 * @brief A class for representing the MessagePack extension type.
 */
@interface OFMessagePackExtension: OFObject <OFMessagePackRepresentation,
    OFCopying>
{
	int8_t _type;
	OFDataArray *_data;

Modified src/OFMessagePackRepresentation.h from [e247cb4259] to [824d8d0cb6].

13
14
15
16
17
18
19



20
21
22
23
24
25
26
27
28
29
30
31
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

@class OFDataArray;

/*!



 * @brief A protocol implemented by classes that support encoding to a
 *	  MessagePack representation.
 */
@protocol OFMessagePackRepresentation
/*!
 * @brief Returns the MessagePack representation of the object as an
 *	  OFDataArray.
 *
 * @return The MessagePack representation of the object as an OFDataArray.
 */
- (OFDataArray*)messagePackRepresentation;
@end







>
>
>












13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

@class OFDataArray;

/*!
 * @protocol OFMessagePackRepresentation
 *	     OFMessagePackRepresentation.h ObjFW/OFMessagePackRepresentation.h
 *
 * @brief A protocol implemented by classes that support encoding to a
 *	  MessagePack representation.
 */
@protocol OFMessagePackRepresentation
/*!
 * @brief Returns the MessagePack representation of the object as an
 *	  OFDataArray.
 *
 * @return The MessagePack representation of the object as an OFDataArray.
 */
- (OFDataArray*)messagePackRepresentation;
@end

Modified src/OFMutableArray.h from [1b8deffced] to [88b2245650].

26
27
28
29
30
31
32


33
34
35
36
37
38
39
 * @param index The index of the object to replace
 * @return The object to replace the object with
 */
typedef id (^of_array_replace_block_t)(id object, size_t index);
#endif

/*!


 * @brief An abstract class for storing, adding and removing objects in an
 *	  array.
 */
@interface OFMutableArray: OFArray
/*!
 * @brief Creates a new OFMutableArray with enough memory to hold the specified
 *	  number of objects.







>
>







26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 * @param index The index of the object to replace
 * @return The object to replace the object with
 */
typedef id (^of_array_replace_block_t)(id object, size_t index);
#endif

/*!
 * @class OFMutableArray OFArray.h ObjFW/OFArray.h
 *
 * @brief An abstract class for storing, adding and removing objects in an
 *	  array.
 */
@interface OFMutableArray: OFArray
/*!
 * @brief Creates a new OFMutableArray with enough memory to hold the specified
 *	  number of objects.

Modified src/OFMutableDictionary.h from [d2335e7639] to [4087c20a15].

26
27
28
29
30
31
32


33
34
35
36
37
38
39
 * @param object The object to replace
 * @return The object to replace the object with
 */
typedef id (^of_dictionary_replace_block_t)(id key, id object);
#endif

/*!


 * @brief An abstract class for storing and changing objects in a dictionary.
 */
@interface OFMutableDictionary: OFDictionary
/*!
 * @brief Creates a new OFMutableDictionary with enough memory to hold the
 *	  specified number of objects.
 *







>
>







26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 * @param object The object to replace
 * @return The object to replace the object with
 */
typedef id (^of_dictionary_replace_block_t)(id key, id object);
#endif

/*!
 * @class OFMutableDictionary OFDictionary.h ObjFW/OFDictionary.h
 *
 * @brief An abstract class for storing and changing objects in a dictionary.
 */
@interface OFMutableDictionary: OFDictionary
/*!
 * @brief Creates a new OFMutableDictionary with enough memory to hold the
 *	  specified number of objects.
 *

Modified src/OFMutableSet.h from [d505638997] to [9378955896].

13
14
15
16
17
18
19


20
21
22
23
24
25
26
 * 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.
 */
@interface OFMutableSet: OFSet
/*!
 * @brief Adds the specified object to the set.
 *
 * @param object The object to add to the set







>
>







13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFSet.h"

/*!
 * @class OFMutableSet OFSet.h ObjFW/OFSet.h
 *
 * @brief An abstract class for a mutable unordered set of unique objects.
 */
@interface OFMutableSet: OFSet
/*!
 * @brief Adds the specified object to the set.
 *
 * @param object The object to add to the set

Modified src/OFMutableString.h from [ede68aa85b] to [1c1d4f2825].

13
14
15
16
17
18
19


20
21
22
23
24
25
26
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFString.h"

/*!


 * @brief A class for storing and modifying strings.
 */
@interface OFMutableString: OFString
/*!
 * @brief Sets the character at the specified index.
 *
 * @param character The character to set







>
>







13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFString.h"

/*!
 * @class OFMutableString OFString.h ObjFW/OFString.h
 *
 * @brief A class for storing and modifying strings.
 */
@interface OFMutableString: OFString
/*!
 * @brief Sets the character at the specified index.
 *
 * @param character The character to set

Modified src/OFMutex.h from [8f0ab3a927] to [b8d3b9cdc7].

16
17
18
19
20
21
22


23
24
25
26
27
28
29

#import "OFObject.h"
#import "OFLocking.h"

#import "threading.h"

/*!


 * @brief A class for creating mutual exclusions.
 */
@interface OFMutex: OFObject <OFLocking>
{
	of_mutex_t _mutex;
	bool _initialized;
	OFString *_name;







>
>







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

#import "OFObject.h"
#import "OFLocking.h"

#import "threading.h"

/*!
 * @class OFMutex OFMutex.h ObjFW/OFMutex.h
 *
 * @brief A class for creating mutual exclusions.
 */
@interface OFMutex: OFObject <OFLocking>
{
	of_mutex_t _mutex;
	bool _initialized;
	OFString *_name;

Modified src/OFNull.h from [af7795f468] to [316a842c15].

16
17
18
19
20
21
22


23
24
25
26
27
28
29
30
31
32
33

#import "OFObject.h"
#import "OFSerialization.h"
#import "OFJSONRepresentation.h"
#import "OFMessagePackRepresentation.h"

/*!


 * @brief A class for representing null values in collections.
 */
@interface OFNull: OFObject <OFCopying, OFSerialization, OFJSONRepresentation,
    OFMessagePackRepresentation>
/*!
 * @brief Returns an OFNull singleton.
 *
 * @return An OFNull singleton
 */
+ (OFNull*)null;
@end







>
>











16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

#import "OFObject.h"
#import "OFSerialization.h"
#import "OFJSONRepresentation.h"
#import "OFMessagePackRepresentation.h"

/*!
 * @class OFNull OFNull.h ObjFW/OFNull.h
 *
 * @brief A class for representing null values in collections.
 */
@interface OFNull: OFObject <OFCopying, OFSerialization, OFJSONRepresentation,
    OFMessagePackRepresentation>
/*!
 * @brief Returns an OFNull singleton.
 *
 * @return An OFNull singleton
 */
+ (OFNull*)null;
@end

Modified src/OFNumber.h from [639b6b3a23] to [ba305281bd].

29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#import "OFMessagePackRepresentation.h"

/*! @file */

/*!
 * @brief The C type of a number stored in an OFNumber.
 */
typedef enum of_number_type_t {
	/*! bool */
	OF_NUMBER_BOOL		= 0x01,
	/*! unsigned char */
	OF_NUMBER_UCHAR		= 0x02,
	/*! unsigned short */
	OF_NUMBER_USHORT	= 0x03,
	/*! unsigned int */







|







29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#import "OFMessagePackRepresentation.h"

/*! @file */

/*!
 * @brief The C type of a number stored in an OFNumber.
 */
typedef enum {
	/*! bool */
	OF_NUMBER_BOOL		= 0x01,
	/*! unsigned char */
	OF_NUMBER_UCHAR		= 0x02,
	/*! unsigned short */
	OF_NUMBER_USHORT	= 0x03,
	/*! unsigned int */
90
91
92
93
94
95
96


97
98
99
100
101
102
103
	/*! float */
	OF_NUMBER_FLOAT		= 0x20,
	/*! double */
	OF_NUMBER_DOUBLE	= 0x40 | OF_NUMBER_FLOAT,
} of_number_type_t;

/*!


 * @brief Provides a way to store a number in an object.
 */
@interface OFNumber: OFObject <OFCopying, OFComparing, OFSerialization,
    OFJSONRepresentation, OFMessagePackRepresentation>
{
	union of_number_value {
		bool		   bool_;







>
>







90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
	/*! float */
	OF_NUMBER_FLOAT		= 0x20,
	/*! double */
	OF_NUMBER_DOUBLE	= 0x40 | OF_NUMBER_FLOAT,
} of_number_type_t;

/*!
 * @class OFNumber OFNumber.h ObjFW/OFNumber.h
 *
 * @brief Provides a way to store a number in an object.
 */
@interface OFNumber: OFObject <OFCopying, OFComparing, OFSerialization,
    OFJSONRepresentation, OFMessagePackRepresentation>
{
	union of_number_value {
		bool		   bool_;

Modified src/OFObject+Serialization.h from [573ad388bf] to [5563627a82].

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.
 */
@interface OFObject (OFSerialization)
/*!
 * @brief Creates a string by serializing the receiver.
 *
 * @return The object serialized as a string
 */
- (OFString*)stringBySerializing;
@end







<
<
<








22
23
24
25
26
27
28



29
30
31
32
33
34
35
36
extern "C" {
#endif
extern int _OFObject_Serialization_reference;
#ifdef __cplusplus
}
#endif




@interface OFObject (OFSerialization)
/*!
 * @brief Creates a string by serializing the receiver.
 *
 * @return The object serialized as a string
 */
- (OFString*)stringBySerializing;
@end

Modified src/OFObject.h from [a20b25debb] to [7cc08d97ce].

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

#define OF_RETAIN_COUNT_MAX UINT_MAX
#define OF_NOT_FOUND SIZE_MAX

/*!
 * @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.
 */
typedef enum of_byte_order_t {
	/*! Most significant byte first (big endian) */
	OF_BYTE_ORDER_BIG_ENDIAN,
	/*! Least significant byte first (little endian) */
	OF_BYTE_ORDER_LITTLE_ENDIAN
} of_byte_order_t;

/*!


 * @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 time interval in seconds.
 */
typedef double of_time_interval_t;

/*!


 * @brief A point.
 */
typedef struct of_point_t {
	/*! The x coordinate of the point */
	float x;
	/*! The y coordinate of the point */
	float y;
} of_point_t;

/*!


 * @brief A dimension.
 */
typedef struct of_dimension_t {
	/*! The width of the dimension */
	float width;
	/*! The height of the dimension */
	float height;
} of_dimension_t;

/*!


 * @brief A rectangle.
 */
typedef struct of_rectangle_t
{
	/*! The point from where the rectangle originates */
	of_point_t origin;
	/*! The size of the rectangle */
	of_dimension_t size;
} of_rectangle_t;

@class OFString;
@class OFThread;

/*!


 * @brief The protocol which all root classes implement.
 */
@protocol OFObject
/*!
 * @brief Returns the class of the object.
 *
 * @return The class of the object







|











|







>
>


|












>
>


|







>
>


|







>
>


|
<










>
>







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

#define OF_RETAIN_COUNT_MAX UINT_MAX
#define OF_NOT_FOUND SIZE_MAX

/*!
 * @brief A result of a comparison.
 */
typedef enum {
	/*! 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.
 */
typedef enum {
	/*! Most significant byte first (big endian) */
	OF_BYTE_ORDER_BIG_ENDIAN,
	/*! Least significant byte first (little endian) */
	OF_BYTE_ORDER_LITTLE_ENDIAN
} of_byte_order_t;

/*!
 * @struct of_range_t OFObject.h ObjFW/OFObject.h
 *
 * @brief A range.
 */
typedef struct {
	/*! The start of the range */
	size_t location;
	/*! The length of the range */
	size_t length;
} of_range_t;

/*!
 * @brief A time interval in seconds.
 */
typedef double of_time_interval_t;

/*!
 * @struct of_point_t OFObject.h ObjFW/OFObject.h
 *
 * @brief A point.
 */
typedef struct {
	/*! The x coordinate of the point */
	float x;
	/*! The y coordinate of the point */
	float y;
} of_point_t;

/*!
 * @struct of_dimension_t OFObject.h ObjFW/OFObject.h
 *
 * @brief A dimension.
 */
typedef struct {
	/*! The width of the dimension */
	float width;
	/*! The height of the dimension */
	float height;
} of_dimension_t;

/*!
 * @struct of_rectangle_t OFObject.h ObjFW/OFObject.h
 *
 * @brief A rectangle.
 */
typedef struct {

	/*! The point from where the rectangle originates */
	of_point_t origin;
	/*! The size of the rectangle */
	of_dimension_t size;
} of_rectangle_t;

@class OFString;
@class OFThread;

/*!
 * @protocol OFObject OFObject.h ObjFW/OFObject.h
 *
 * @brief The protocol which all root classes implement.
 */
@protocol OFObject
/*!
 * @brief Returns the class of the object.
 *
 * @return The class of the object
403
404
405
406
407
408
409


410
411
412
413
414
415
416
 *
 * @return A boolean whether the object is a proxy object
 */
- (bool)isProxy;
@end

/*!


 * @brief The root class for all other classes inside ObjFW.
 */
OF_ROOT_CLASS
@interface OFObject <OFObject>
{
@private
	Class _isa;







>
>







412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
 *
 * @return A boolean whether the object is a proxy object
 */
- (bool)isProxy;
@end

/*!
 * @class OFObject OFObject.h ObjFW/OFObject.h
 *
 * @brief The root class for all other classes inside ObjFW.
 */
OF_ROOT_CLASS
@interface OFObject <OFObject>
{
@private
	Class _isa;
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
 *
 * @param selector The selector not understood by the receiver
 */
- (void)doesNotRecognizeSelector: (SEL)selector;
@end

/*!


 * @brief A protocol for the creation of copies.
 */
@protocol OFCopying
/*!
 * @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
 */
- copy;
@end

/*!


 * @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.
 *
 * @return A mutable copy of the object
 */
- mutableCopy;
@end

/*!


 * @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.







>
>
















>
>















>
>







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
 *
 * @param selector The selector not understood by the receiver
 */
- (void)doesNotRecognizeSelector: (SEL)selector;
@end

/*!
 * @protocol OFCopying OFObject.h ObjFW/OFObject.h
 *
 * @brief A protocol for the creation of copies.
 */
@protocol OFCopying
/*!
 * @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
 */
- copy;
@end

/*!
 * @protocol OFMutableCopying OFObject.h ObjFW/OFObject.h
 *
 * @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.
 *
 * @return A mutable copy of the object
 */
- mutableCopy;
@end

/*!
 * @protocol OFComparing OFObject.h ObjFW/OFObject.h
 *
 * @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.

Modified src/OFOptionsParser.h from [929ae3aab8] to [0f50621707].

14
15
16
17
18
19
20


21
22
23
24
25
26
27
 * file.
 */

#import "OFObject.h"
#import "OFConstantString.h"

/*!


 * @brief A class for parsing the program options specified on the command line.
 */
@interface OFOptionsParser: OFObject
{
	of_unichar_t *_options;
	OFArray *_arguments;
	size_t _index, _subIndex;







>
>







14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 * file.
 */

#import "OFObject.h"
#import "OFConstantString.h"

/*!
 * @class OFOptionsParser OFOptionsParser.h ObjFW/OFOptionsParser.h
 *
 * @brief A class for parsing the program options specified on the command line.
 */
@interface OFOptionsParser: OFObject
{
	of_unichar_t *_options;
	OFArray *_arguments;
	size_t _index, _subIndex;

Modified src/OFPlugin.h from [d5b770de87] to [0bdf05176f].

22
23
24
25
26
27
28


29
30
31
32
33
34
35
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.
 */
@interface OFPlugin: OFObject
{
	of_plugin_handle_t _handle;
}








>
>







22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
typedef void* of_plugin_handle_t;
#else
# include <windows.h>
typedef HMODULE of_plugin_handle_t;
#endif

/*!
 * @class OFPlugin OFPlugin.h ObjFW/OFPlugin.h
 *
 * @brief Provides a system for loading plugins at runtime.
 */
@interface OFPlugin: OFObject
{
	of_plugin_handle_t _handle;
}

Modified src/OFProcess.h from [d7323e91cc] to [092c744c91].

30
31
32
33
34
35
36


37
38
39
40
41
42
43
# include <windows.h>
#endif

@class OFArray;
@class OFDictionary;

/*!


 * @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];







>
>







30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# include <windows.h>
#endif

@class OFArray;
@class OFDictionary;

/*!
 * @class OFProcess OFProcess.h ObjFW/OFProcess.h
 *
 * @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];

Modified src/OFRecursiveMutex.h from [94d7fb7f3f] to [33212f3347].

16
17
18
19
20
21
22


23
24
25
26
27
28
29

#import "OFObject.h"
#import "OFLocking.h"

#import "threading.h"

/*!


 * @brief A class for creating mutual exclusions which can be entered
 *	  recursively.
 */
@interface OFRecursiveMutex: OFObject <OFLocking>
{
	of_rmutex_t _rmutex;
	bool _initialized;







>
>







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

#import "OFObject.h"
#import "OFLocking.h"

#import "threading.h"

/*!
 * @class OFRecursiveMutex OFRecursiveMutex.h ObjFW/OFRecursiveMutex.h
 *
 * @brief A class for creating mutual exclusions which can be entered
 *	  recursively.
 */
@interface OFRecursiveMutex: OFObject <OFLocking>
{
	of_rmutex_t _rmutex;
	bool _initialized;

Modified src/OFRunLoop.h from [a164797306] to [7d3a6044f7].

27
28
29
30
31
32
33


34
35
36
37
38
39
40
#ifdef OF_HAVE_SOCKETS
@class OFKernelEventObserver;
#endif
@class OFMutableDictionary;
@class OFTimer;

/*!


 * @brief A class providing a run loop for the application and its processes.
 */
@interface OFRunLoop: OFObject
{
	OFSortedList *_timersQueue;
#ifdef OF_HAVE_THREADS
	OFMutex *_timersQueueLock;







>
>







27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#ifdef OF_HAVE_SOCKETS
@class OFKernelEventObserver;
#endif
@class OFMutableDictionary;
@class OFTimer;

/*!
 * @class OFRunLoop OFRunLoop.h ObjFW/OFRunLoop.h
 *
 * @brief A class providing a run loop for the application and its processes.
 */
@interface OFRunLoop: OFObject
{
	OFSortedList *_timersQueue;
#ifdef OF_HAVE_THREADS
	OFMutex *_timersQueueLock;

Modified src/OFSHA1Hash.h from [d6ed7fdc8a] to [f14987e748].

13
14
15
16
17
18
19


20
21
22
23
24
25
26
27
28
29
30
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFHash.h"

/*!


 * @brief A class which provides functions to create an SHA1 hash.
 */
@interface OFSHA1Hash: OFObject <OFHash>
{
	uint32_t _state[5];
	uint64_t _count;
	char	 _buffer[64];
	uint8_t	 _digest[20];
	bool	 _calculated;
}
@end







>
>











13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFHash.h"

/*!
 * @class OFSHA1Hash OFSHA1Hash.h ObjFW/OFSHA1Hash.h
 *
 * @brief A class which provides functions to create an SHA1 hash.
 */
@interface OFSHA1Hash: OFObject <OFHash>
{
	uint32_t _state[5];
	uint64_t _count;
	char	 _buffer[64];
	uint8_t	 _digest[20];
	bool	 _calculated;
}
@end

Modified src/OFSeekableStream.h from [48f6c3bf7b] to [22230c5b39].

22
23
24
25
26
27
28


29
30
31
32
33
34
35
#endif

#include <sys/types.h>

#import "OFStream.h"

/*!


 * @brief A stream that supports seeking.
 *
 * @note If you want to subclass this, override
 *	 @ref lowlevelSeekToOffset:whence:. OFSeekableStream uses this method
 *	 and makes it work together with the caching of OFStream. If you
 *	 override this methods without the lowlevel prefix, you *will* break
 *	 caching, get broken results and seek to the wrong position!







>
>







22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#endif

#include <sys/types.h>

#import "OFStream.h"

/*!
 * @class OFSeekableStream OFSeekableStream.h ObjFW/OFSeekableStream.h
 *
 * @brief A stream that supports seeking.
 *
 * @note If you want to subclass this, override
 *	 @ref lowlevelSeekToOffset:whence:. OFSeekableStream uses this method
 *	 and makes it work together with the caching of OFStream. If you
 *	 override this methods without the lowlevel prefix, you *will* break
 *	 caching, get broken results and seek to the wrong position!

Modified src/OFSerialization.h from [f5243bc67a] to [2542d982c8].

17
18
19
20
21
22
23


24
25
26
27
28
29
30
#import "OFObject.h"

#define OF_SERIALIZATION_NS @"https://webkeks.org/objfw/serialization"

@class OFXMLElement;

/*!


 * @brief A protocol for serializing objects.
 */
@protocol OFSerialization
/*!
 * @brief Initializes the object with the specified XML element serialization.
 *
 * @param element An OFXMLElement with the serialized object







>
>







17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#import "OFObject.h"

#define OF_SERIALIZATION_NS @"https://webkeks.org/objfw/serialization"

@class OFXMLElement;

/*!
 * @protocol OFSerialization OFSerialization.h ObjFW/OFSerialization.h
 *
 * @brief A protocol for serializing objects.
 */
@protocol OFSerialization
/*!
 * @brief Initializes the object with the specified XML element serialization.
 *
 * @param element An OFXMLElement with the serialized object

Modified src/OFSet.h from [2236735c3f] to [d36d2e8e15].

47
48
49
50
51
52
53


54
55
56
57
58
59
60
 * @param object The object to inspect
 * @return Whether the object should be in the filtered set
 */
typedef bool (^of_set_filter_block_t)(id object);
#endif

/*!


 * @brief An abstract class for an unordered set of unique objects.
 *
 * @warning Do not mutate objects that are in a set! Changing the hash of
 *	    objects in a set breaks the internal representation of the set!
 */
@interface OFSet: OFObject <OFCollection, OFCopying, OFMutableCopying,
    OFSerialization>







>
>







47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
 * @param object The object to inspect
 * @return Whether the object should be in the filtered set
 */
typedef bool (^of_set_filter_block_t)(id object);
#endif

/*!
 * @class OFSet OFSet.h ObjFW/OFSet.h
 *
 * @brief An abstract class for an unordered set of unique objects.
 *
 * @warning Do not mutate objects that are in a set! Changing the hash of
 *	    objects in a set breaks the internal representation of the set!
 */
@interface OFSet: OFObject <OFCollection, OFCopying, OFMutableCopying,
    OFSerialization>

Modified src/OFSortedList.h from [6c455f6d5b] to [4302ec552d].

13
14
15
16
17
18
19


20
21
22
23
24
25
26
 * 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.
 *
 * @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
/*!







>
>







13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFList.h"

/*!
 * @class OFSortedList OFSortedList.h ObjFW/OFSortedList.h
 *
 * @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
 *	    specific place are unavailable, even though they exist in OFList!
 */
@interface OFSortedList: OFList
/*!

Modified src/OFStdIOStream.h from [8deb377ee3] to [030863fdf4].

13
14
15
16
17
18
19


20
21
22
23
24
25
26
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFStream.h"

/*!


 * @brief A class for providing standard input, output and error as OFStream.
 *
 * The global variables @ref of_stdin, @ref of_stdout and @ref of_stderr are
 * instances of this class and need no initialization.
 */
@interface OFStdIOStream: OFStream
{







>
>







13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFStream.h"

/*!
 * @class OFStdIOStream OFStdIOStream.h ObjFW/OFStdIOStream.h
 *
 * @brief A class for providing standard input, output and error as OFStream.
 *
 * The global variables @ref of_stdin, @ref of_stdout and @ref of_stderr are
 * instances of this class and need no initialization.
 */
@interface OFStdIOStream: OFStream
{

Modified src/OFStream.h from [84d33ed0b9] to [16a1b1d069].

57
58
59
60
61
62
63


64
65
66
67
68
69
70
 * @return A bool whether the same block should be used for the next read
 */
typedef bool (^of_stream_async_read_line_block_t)(OFStream *stream,
    OFString *line, OFException *exception);
#endif

/*!


 * @brief A base class for different types of streams.
 *
 * @warning Even though the OFCopying protocol is implemented, it does *not*
 *	    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







>
>







57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
 * @return A bool whether the same block should be used for the next read
 */
typedef bool (^of_stream_async_read_line_block_t)(OFStream *stream,
    OFString *line, OFException *exception);
#endif

/*!
 * @class OFStream OFStream.h ObjFW/OFStream.h
 *
 * @brief A base class for different types of streams.
 *
 * @warning Even though the OFCopying protocol is implemented, it does *not*
 *	    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

Modified src/OFStreamSocket.h from [01c861e360] to [4dcb071fc5].

15
16
17
18
19
20
21


22
23
24
25
26
27
28
 */

#import "OFStream.h"

#import "socket.h"

/*!


 * @brief A class which provides functions to create and use stream sockets.
 */
@interface OFStreamSocket: OFStream
{
#ifndef _WIN32
	int    _socket;
#else







>
>







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 */

#import "OFStream.h"

#import "socket.h"

/*!
 * @class OFStreamSocket OFStreamSocket.h ObjFW/OFStreamSocket.h
 *
 * @brief A class which provides functions to create and use stream sockets.
 */
@interface OFStreamSocket: OFStream
{
#ifndef _WIN32
	int    _socket;
#else

Modified src/OFString+Hashing.h from [8f917515b3] to [7ce5c351cd].

20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
extern "C" {
#endif
extern int _OFString_Hashing_reference;
#ifdef __cplusplus
}
#endif

/*!
 * @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.
 *
 * @return The MD5 hash of the string as an autoreleased OFString
 */
- (OFString*)MD5Hash;







<
<
<
<







20
21
22
23
24
25
26




27
28
29
30
31
32
33
extern "C" {
#endif
extern int _OFString_Hashing_reference;
#ifdef __cplusplus
}
#endif





@interface OFString (Hashing)
/*!
 * @brief Returns the MD5 hash of the string as an autoreleased OFString.
 *
 * @return The MD5 hash of the string as an autoreleased OFString
 */
- (OFString*)MD5Hash;

Modified src/OFString+Serialization.h from [cac64b54fb] to [d0f201a70e].

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.
 */
@interface OFString (OFSerialization)
/*!
 * @brief Deserializes the receiver into an object.
 *
 * @return The deserialized object
 */
- (id)objectByDeserializing;
@end







<
<
<
|







20
21
22
23
24
25
26



27
28
29
30
31
32
33
34
extern "C" {
#endif
extern int _OFString_Serialization_reference;
#ifdef __cplusplus
}
#endif




@interface OFString (Serialization)
/*!
 * @brief Deserializes the receiver into an object.
 *
 * @return The deserialized object
 */
- (id)objectByDeserializing;
@end

Modified src/OFString+URLEncoding.h from [dcd4ec9b04] to [d44003992e].

20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
extern "C" {
#endif
extern int _OFString_URLEncoding_reference;
#ifdef __cplusplus
}
#endif

/*!
 * @brief A category which provides URL encoding and decoding.
 */
@interface OFString (URLEncoding)
/*!
 * @brief Encodes a string for use in a URL.
 *
 * @return A new autoreleased string
 */
- (OFString*)stringByURLEncoding;







<
<
<







20
21
22
23
24
25
26



27
28
29
30
31
32
33
extern "C" {
#endif
extern int _OFString_URLEncoding_reference;
#ifdef __cplusplus
}
#endif




@interface OFString (URLEncoding)
/*!
 * @brief Encodes a string for use in a URL.
 *
 * @return A new autoreleased string
 */
- (OFString*)stringByURLEncoding;

Modified src/OFString+XMLEscaping.h from [90ae61b087] to [9692ac4c5a].

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.
 */
@interface OFString (XMLEscaping)
/*!
 * @brief Escapes a string for use in an XML document.
 *
 * @return A new autoreleased string
 */
- (OFString*)stringByXMLEscaping;
@end







<
<
<








20
21
22
23
24
25
26



27
28
29
30
31
32
33
34
extern "C" {
#endif
extern int _OFString_XMLEscaping_reference;
#ifdef __cplusplus
}
#endif




@interface OFString (XMLEscaping)
/*!
 * @brief Escapes a string for use in an XML document.
 *
 * @return A new autoreleased string
 */
- (OFString*)stringByXMLEscaping;
@end

Modified src/OFString+XMLUnescaping.h from [e97794a010] to [44c8e9666f].

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
 * @return A replacement string for the unknown entity
 */
typedef OFString* (^of_string_xml_unescaping_block_t)(OFString *string,
    OFString *entity);
#endif

/*!


 * @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
 *	  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 string 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*)string
  containsUnknownEntityNamed: (OFString*)entity;
@end

/*!
 * @brief A category for unescaping XML in strings.
 */
@interface OFString (XMLUnescaping)
/*!
 * @brief Unescapes XML in the string.
 */
- (OFString*)stringByXMLUnescaping;

/*!







>
>




















<
<
<







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
 * @return A replacement string for the unknown entity
 */
typedef OFString* (^of_string_xml_unescaping_block_t)(OFString *string,
    OFString *entity);
#endif

/*!
 * @protocol OFStringXMLUnescapingDelegate OFString.h ObjFW/OFString.h
 *
 * @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
 *	  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 string 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*)string
  containsUnknownEntityNamed: (OFString*)entity;
@end




@interface OFString (XMLUnescaping)
/*!
 * @brief Unescapes XML in the string.
 */
- (OFString*)stringByXMLUnescaping;

/*!

Modified src/OFString.h from [bb26821e41] to [ce5de11866].

78
79
80
81
82
83
84


85
86
87
88
89
90
91
typedef void (^of_string_line_enumeration_block_t)(OFString *line, bool *stop);
#endif

@class OFArray;
@class OFURL;

/*!


 * @brief A class for handling strings.
 */
@interface OFString: OFObject <OFCopying, OFMutableCopying, OFComparing,
    OFSerialization, OFJSONRepresentation, OFMessagePackRepresentation>
#ifdef OF_HAVE_PROPERTIES
@property (readonly) size_t length;
#endif







>
>







78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
typedef void (^of_string_line_enumeration_block_t)(OFString *line, bool *stop);
#endif

@class OFArray;
@class OFURL;

/*!
 * @class OFString OFString.h ObjFW/OFString.h
 *
 * @brief A class for handling strings.
 */
@interface OFString: OFObject <OFCopying, OFMutableCopying, OFComparing,
    OFSerialization, OFJSONRepresentation, OFMessagePackRepresentation>
#ifdef OF_HAVE_PROPERTIES
@property (readonly) size_t length;
#endif

Modified src/OFSystemInfo.h from [3eaf643494] to [0797eaad35].

13
14
15
16
17
18
19


20
21
22
23
24
25
26
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFObject.h"

/*!


 * @brief A class for querying information about the system.
 */
@interface OFSystemInfo: OFObject
/*!
 * @brief Returns the size of a page.
 *
 * @return The size of a page







>
>







13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFObject.h"

/*!
 * @class OFSystemInfo OFSystemInfo.h ObjFW/OFSystemInfo.h
 *
 * @brief A class for querying information about the system.
 */
@interface OFSystemInfo: OFObject
/*!
 * @brief Returns the size of a page.
 *
 * @return The size of a page

Modified src/OFTCPSocket.h from [4dae1e7fcb] to [61e3a49d05].

45
46
47
48
49
50
51


52
53
54
55
56
57
58
 *	   connection
 */
typedef bool (^of_tcp_socket_async_accept_block_t)(OFTCPSocket *socket,
    OFTCPSocket *acceptedSocket, OFException *exception);
#endif

/*!


 * @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
{







>
>







45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
 *	   connection
 */
typedef bool (^of_tcp_socket_async_accept_block_t)(OFTCPSocket *socket,
    OFTCPSocket *acceptedSocket, OFException *exception);
#endif

/*!
 * @class OFTCPSocket OFTCPSocket.h ObjFW/OFTCPSocket.h
 *
 * @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
{

Modified src/OFTLSSocket.h from [1c57260eef] to [530e7d1224].

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
#import "objfw-defs.h"

@class OFString;
@class OFArray;
@protocol OFTLSSocket;

/*!


 * @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
 *	  should accept the received keychain.
 *
 * @param socket The socket which wants to know if it should accept the received
 *		 keychain
 * @param keychain An array of objects implementing the OFX509Certificate
 *		   protocol
 * @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
 *	  implementing TLS.
 */
@protocol OFTLSSocket
#ifdef OF_HAVE_PROPERTIES
@property (assign) id <OFTLSSocketDelegate> delegate;
@property (copy) OFString *certificateFile, *privateKeyFile;







>
>


















>
>







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
#import "objfw-defs.h"

@class OFString;
@class OFArray;
@protocol OFTLSSocket;

/*!
 * @protocol OFTLSSocketDelegate OFTLSSocket.h ObjFW/OFTLSSocket.h
 *
 * @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
 *	  should accept the received keychain.
 *
 * @param socket The socket which wants to know if it should accept the received
 *		 keychain
 * @param keychain An array of objects implementing the OFX509Certificate
 *		   protocol
 * @return Whether the TLS socket should accept the received keychain
 */
-	  (bool)socket: (id <OFTLSSocket>)socket
  shouldAcceptKeychain: (OFArray*)keychain;
@end

/*!
 * @protocol OFTLSSocket OFTLSSocket.h ObjFW/OFTLSSocket.h
 *
 * @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;

Modified src/OFThread.h from [42d02c0030] to [7e258abb92].

32
33
34
35
36
37
38


39
40
41
42
43
44
45
 *
 * @return The object which should be returned when the thread is joined
 */
typedef id (^of_thread_block_t)(void);
#endif

/*!


 * @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 *not*
 *	    return an independent copy of the thread, but instead retains it.







>
>







32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 *
 * @return The object which should be returned when the thread is joined
 */
typedef id (^of_thread_block_t)(void);
#endif

/*!
 * @class OFThread OFThread.h ObjFW/OFThread.h
 *
 * @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 *not*
 *	    return an independent copy of the thread, but instead retains it.

Modified src/OFThreadPool.h from [4cc3952ecd] to [db13fd5200].

27
28
29
30
31
32
33


34
35
36
37
38
39
40

@class OFMutableArray;
@class OFList;
@class OFCondition;
@class OFThreadPoolJob;

/*!


 * @brief A class providing a pool of reusable threads.
 *
 * @note When the thread pool is released, all threads will terminate after
 *	 they finish the job they are currently processing.
 */
@interface OFThreadPool: OFObject
{







>
>







27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

@class OFMutableArray;
@class OFList;
@class OFCondition;
@class OFThreadPoolJob;

/*!
 * @class OFThreadPool OFThreadPool.h ObjFW/OFThreadPool.h
 *
 * @brief A class providing a pool of reusable threads.
 *
 * @note When the thread pool is released, all threads will terminate after
 *	 they finish the job they are currently processing.
 */
@interface OFThreadPool: OFObject
{

Modified src/OFTimer.h from [d695d51e39] to [4c0d2f26e5].

31
32
33
34
35
36
37


38
39
40
41
42
43
44
 *
 * @param timer The timer which fired
 */
typedef void (^of_timer_block_t)(OFTimer *timer);
#endif

/*!


 * @brief A class for creating and firing timers.
 */
@interface OFTimer: OFObject <OFComparing>
{
	OFDate *_fireDate;
	of_time_interval_t _interval;
	id _target, _object1, _object2;







>
>







31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 *
 * @param timer The timer which fired
 */
typedef void (^of_timer_block_t)(OFTimer *timer);
#endif

/*!
 * @class OFTimer OFTimer.h ObjFW/OFTimer.h
 *
 * @brief A class for creating and firing timers.
 */
@interface OFTimer: OFObject <OFComparing>
{
	OFDate *_fireDate;
	of_time_interval_t _interval;
	id _target, _object1, _object2;

Modified src/OFUDPSocket.h from [ba6a2a7484] to [d8fe7916d5].

21
22
23
24
25
26
27


28
29
30
31
32
33
34

/*! @file */

@class OFUDPSocket;
@class OFException;

/*!


 * @brief A struct which represents a host / port pair for a UDP socket.
 */
typedef struct {
	struct sockaddr_storage address;
	socklen_t length;
} of_udp_socket_address_t;








>
>







21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

/*! @file */

@class OFUDPSocket;
@class OFException;

/*!
 * @struct of_udp_socket_address_t OFUDPSocket.h ObjFW/OFUDPSocket.h
 *
 * @brief A struct which represents a host / port pair for a UDP socket.
 */
typedef struct {
	struct sockaddr_storage address;
	socklen_t length;
} of_udp_socket_address_t;

59
60
61
62
63
64
65


66
67
68
69
70
71
72
 */
typedef bool (^of_udp_socket_async_receive_block_t)(OFUDPSocket *socket,
    void *buffer, size_t length, of_udp_socket_address_t sender,
    OFException *exception);
#endif

/*!


 * @brief A class which provides functions to create and use UDP sockets.
 *
 * Addresses are of type @ref of_udp_socket_address_t. You can use @ref
 * getHost:andPort:forAddress: to create an address for a host / port pair and
 * @ref getHost:andPort:forAddress: to get the host / port pair for an address.
 * If you want to compare two addresses, you can use
 * @ref of_udp_socket_address_equal and you can use







>
>







61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
 */
typedef bool (^of_udp_socket_async_receive_block_t)(OFUDPSocket *socket,
    void *buffer, size_t length, of_udp_socket_address_t sender,
    OFException *exception);
#endif

/*!
 * @class OFUDPSocket OFUDPSocket.h ObjFW/OFUDPSocket.h
 *
 * @brief A class which provides functions to create and use UDP sockets.
 *
 * Addresses are of type @ref of_udp_socket_address_t. You can use @ref
 * getHost:andPort:forAddress: to create an address for a host / port pair and
 * @ref getHost:andPort:forAddress: to get the host / port pair for an address.
 * If you want to compare two addresses, you can use
 * @ref of_udp_socket_address_equal and you can use

Modified src/OFURL.h from [d006b15fd2] to [af43440b6a].

16
17
18
19
20
21
22


23
24
25
26
27
28
29

#import "OFObject.h"
#import "OFSerialization.h"

@class OFString;

/*!


 * @brief A class for parsing URLs and accessing parts of it.
 */
@interface OFURL: OFObject <OFCopying, OFSerialization>
{
	OFString *_scheme, *_host;
	uint16_t _port;
	OFString *_user, *_password, *_path, *_parameters, *_query, *_fragment;







>
>







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

#import "OFObject.h"
#import "OFSerialization.h"

@class OFString;

/*!
 * @class OFURL OFURL.h ObjFW/OFURL.h
 *
 * @brief A class for parsing URLs and accessing parts of it.
 */
@interface OFURL: OFObject <OFCopying, OFSerialization>
{
	OFString *_scheme, *_host;
	uint16_t _port;
	OFString *_user, *_password, *_path, *_parameters, *_query, *_fragment;

Modified src/OFXMLAttribute.h from [4280155ab7] to [730ca5265c].

15
16
17
18
19
20
21


22
23
24
25
26
27
28
 */

#import "OFXMLNode.h"

@class OFString;

/*!


 * @brief A representation of an attribute of an XML element as an object.
 */
@interface OFXMLAttribute: OFXMLNode
{
@public
	OFString *_name, *_namespace, *_stringValue;
}







>
>







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 */

#import "OFXMLNode.h"

@class OFString;

/*!
 * @class OFXMLAttribute OFXMLAttribute.h ObjFW/OFXMLAttribute.h
 *
 * @brief A representation of an attribute of an XML element as an object.
 */
@interface OFXMLAttribute: OFXMLNode
{
@public
	OFString *_name, *_namespace, *_stringValue;
}

Modified src/OFXMLCDATA.h from [00135efe85] to [c0471ef024].

13
14
15
16
17
18
19


20
21
22
23
24
25
26
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFXMLNode.h"

/*!


 * @brief A class representing XML CDATA.
 */
@interface OFXMLCDATA: OFXMLNode
{
	OFString *_CDATA;
}








>
>







13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFXMLNode.h"

/*!
 * @class OFXMLCDATA OFXMLCDATA.h ObjFW/OFXMLCDATA.h
 *
 * @brief A class representing XML CDATA.
 */
@interface OFXMLCDATA: OFXMLNode
{
	OFString *_CDATA;
}

Modified src/OFXMLCharacters.h from [a3a366756a] to [04233f5548].

13
14
15
16
17
18
19


20
21
22
23
24
25
26
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFXMLNode.h"

/*!


 * @brief A class representing XML characters.
 */
@interface OFXMLCharacters: OFXMLNode
{
	OFString *_characters;
}








>
>







13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFXMLNode.h"

/*!
 * @class OFXMLCharacters OFXMLCharacters.h ObjFW/OFXMLCharacters.h
 *
 * @brief A class representing XML characters.
 */
@interface OFXMLCharacters: OFXMLNode
{
	OFString *_characters;
}

Modified src/OFXMLComment.h from [25c07ae67a] to [a8e01595f6].

13
14
15
16
17
18
19


20
21
22
23
24
25
26
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFXMLNode.h"

/*!


 * @brief A class for representing XML comments.
 */
@interface OFXMLComment: OFXMLNode
{
	OFString *_comment;
}








>
>







13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFXMLNode.h"

/*!
 * @class OFXMLComment OFXMLComment.h ObjFW/OFXMLComment.h
 *
 * @brief A class for representing XML comments.
 */
@interface OFXMLComment: OFXMLNode
{
	OFString *_comment;
}

Modified src/OFXMLElement+Serialization.h from [f87d7fe648] to [431ab00d97].

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.
 */
@interface OFXMLElement (OFSerialization)
/*!
 * @brief Deserializes the receiver into an object.
 *
 * @return The deserialized object
 */
- (id)objectByDeserializing;
@end







<
<
<








20
21
22
23
24
25
26



27
28
29
30
31
32
33
34
extern "C" {
#endif
extern int _OFXMLElement_Serialization_reference;
#ifdef __cplusplus
}
#endif




@interface OFXMLElement (OFSerialization)
/*!
 * @brief Deserializes the receiver into an object.
 *
 * @return The deserialized object
 */
- (id)objectByDeserializing;
@end

Modified src/OFXMLElement.h from [1e04e325fe] to [750e4163a0].

20
21
22
23
24
25
26


27
28
29
30
31
32
33
@class OFArray;
@class OFMutableString;
@class OFMutableArray;
@class OFMutableDictionary;
@class OFXMLAttribute;

/*!


 * @brief A class which stores an XML element.
 */
@interface OFXMLElement: OFXMLNode
{
	OFString *_name, *_namespace, *_defaultNamespace;
	OFMutableArray *_attributes;
	OFMutableDictionary *_namespaces;







>
>







20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
@class OFArray;
@class OFMutableString;
@class OFMutableArray;
@class OFMutableDictionary;
@class OFXMLAttribute;

/*!
 * @class OFXMLElement OFXMLElement.h ObjFW/OFXMLElement.h
 *
 * @brief A class which stores an XML element.
 */
@interface OFXMLElement: OFXMLNode
{
	OFString *_name, *_namespace, *_defaultNamespace;
	OFMutableArray *_attributes;
	OFMutableDictionary *_namespaces;

Modified src/OFXMLElementBuilder.h from [3b69d7cdbf] to [d104812b14].

18
19
20
21
22
23
24



25
26
27
28
29
30
31
#import "OFXMLParser.h"

@class OFMutableArray;
@class OFXMLElement;
@class OFXMLElementBuilder;

/*!



 * @brief A protocol that needs to be implemented by delegates for
 * OFXMLElementBuilder.
 */
@protocol OFXMLElementBuilderDelegate <OFObject>
/*!
 * @brief This callback is called when the OFXMLElementBuilder built an element.
 *







>
>
>







18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#import "OFXMLParser.h"

@class OFMutableArray;
@class OFXMLElement;
@class OFXMLElementBuilder;

/*!
 * @protocol OFXMLElementBuilderDelegate
 *	     OFXMLElementBuilder.h ObjFW/OFXMLElementBuilder.h
 *
 * @brief A protocol that needs to be implemented by delegates for
 * OFXMLElementBuilder.
 */
@protocol OFXMLElementBuilderDelegate <OFObject>
/*!
 * @brief This callback is called when the OFXMLElementBuilder built an element.
 *
88
89
90
91
92
93
94


95
96
97
98
99
100
101
 * @return The substitution for the entity
 */
- (OFString*)elementBuilder: (OFXMLElementBuilder*)builder
    foundUnknownEntityNamed: (OFString*)entity;
@end

/*!


 * @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.
 */







>
>







91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
 * @return The substitution for the entity
 */
- (OFString*)elementBuilder: (OFXMLElementBuilder*)builder
    foundUnknownEntityNamed: (OFString*)entity;
@end

/*!
 * @class OFXMLElementBuilder OFXMLElementBuilder.h ObjFW/OFXMLElementBuilder.h
 *
 * @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.
 */

Modified src/OFXMLNode.h from [9dd628e160] to [40bf5e90f9].

14
15
16
17
18
19
20


21
22
23
24
25
26
27
 * file.
 */

#import "OFObject.h"
#import "OFSerialization.h"

/*!


 * @brief A class which stores an XML element.
 */
@interface OFXMLNode: OFObject <OFCopying, OFSerialization>
/*!
 * @brief Returns the contents of the receiver as a string value.
 *
 * @return A string with the string value







>
>







14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 * file.
 */

#import "OFObject.h"
#import "OFSerialization.h"

/*!
 * @class OFXMLNode OFXMLNode.h ObjFW/OFXMLNode.h
 *
 * @brief A class which stores an XML element.
 */
@interface OFXMLNode: OFObject <OFCopying, OFSerialization>
/*!
 * @brief Returns the contents of the receiver as a string value.
 *
 * @return A string with the string value

Modified src/OFXMLParser.h from [c425fa66cf] to [465e9a443a].

21
22
23
24
25
26
27


28
29
30
31
32
33
34
@class OFXMLParser;
@class OFArray;
@class OFMutableArray;
@class OFDataArray;
@class OFStream;

/*!


 * @brief A protocol that needs to be implemented by delegates for OFXMLParser.
 */
@protocol OFXMLParserDelegate <OFObject>
#ifdef OF_HAVE_OPTIONAL_PROTOCOLS
@optional
#endif
/*!







>
>







21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
@class OFXMLParser;
@class OFArray;
@class OFMutableArray;
@class OFDataArray;
@class OFStream;

/*!
 * @protocol OFXMLParserDelegate OFXMLParser.h ObjFW/OFXMLParser.h
 *
 * @brief A protocol that needs to be implemented by delegates for OFXMLParser.
 */
@protocol OFXMLParserDelegate <OFObject>
#ifdef OF_HAVE_OPTIONAL_PROTOCOLS
@optional
#endif
/*!
114
115
116
117
118
119
120


121
122
123
124
125
126
127
 * @return A substitution for the entity or nil
 */
-	(OFString*)parser: (OFXMLParser*)parser
  foundUnknownEntityNamed: (OFString*)entity;
@end

/*!


 * @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>
{







>
>







116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
 * @return A substitution for the entity or nil
 */
-	(OFString*)parser: (OFXMLParser*)parser
  foundUnknownEntityNamed: (OFString*)entity;
@end

/*!
 * @class OFXMLParser OFXMLParser.h ObjFW/OFXMLParser.h
 *
 * @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>
{

Modified src/OFXMLProcessingInstructions.h from [ba4d61a07e] to [140f775141].

13
14
15
16
17
18
19



20
21
22
23
24
25
26
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFXMLNode.h"

/*!



 * @brief A class for representing XML processing instructions.
 */
@interface OFXMLProcessingInstructions: OFXMLNode
{
	OFString *_processingInstructions;
}








>
>
>







13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFXMLNode.h"

/*!
 * @class OFXMLProcessingInstructions \
 *	  OFXMLProcessingInstructions.h ObjFW/OFXMLProcessingInstructions.h
 *
 * @brief A class for representing XML processing instructions.
 */
@interface OFXMLProcessingInstructions: OFXMLNode
{
	OFString *_processingInstructions;
}

Modified src/OFZIPArchive.h from [675837bb30] to [cbea88e7e9].

20
21
22
23
24
25
26


27
28
29
30
31
32
33
@class OFFile;
@class OFArray;
@class OFMutableArray;
@class OFMutableDictionary;
@class OFStream;

/*!


 * @brief A class for accessing and manipulating ZIP files.
 */
@interface OFZIPArchive: OFObject
{
	OFFile *_file;
	OFString *_path;
	uint32_t _diskNumber, _centralDirectoryDisk;







>
>







20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
@class OFFile;
@class OFArray;
@class OFMutableArray;
@class OFMutableDictionary;
@class OFStream;

/*!
 * @class OFZIPArchive OFZIPArchive.h ObjFW/OFZIPArchive.h
 *
 * @brief A class for accessing and manipulating ZIP files.
 */
@interface OFZIPArchive: OFObject
{
	OFFile *_file;
	OFString *_path;
	uint32_t _diskNumber, _centralDirectoryDisk;

Modified src/OFZIPArchiveEntry.h from [8e929c0860] to [0557ab49b8].

20
21
22
23
24
25
26


27
28
29
30
31
32
33

@class OFString;
@class OFDataArray;
@class OFFile;
@class OFDate;

/*!


 * @brief A class which represents an entry in the central directory of a ZIP
 *	  archive.
 */
@interface OFZIPArchiveEntry: OFObject
{
	uint16_t _madeWithVersion, _minVersion, _generalPurposeBitFlag;
	uint16_t _compressionMethod, _lastModifiedFileTime;







>
>







20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

@class OFString;
@class OFDataArray;
@class OFFile;
@class OFDate;

/*!
 * @class OFZIPArchiveEntry OFZIPArchiveEntry.h ObjFW/OFZIPArchiveEntry.h
 *
 * @brief A class which represents an entry in the central directory of a ZIP
 *	  archive.
 */
@interface OFZIPArchiveEntry: OFObject
{
	uint16_t _madeWithVersion, _minVersion, _generalPurposeBitFlag;
	uint16_t _compressionMethod, _lastModifiedFileTime;

Modified src/bridge/NSArray+OFObject.h from [8eed7684c9] to [9df2a4ab81].

15
16
17
18
19
20
21



22
23
24
25
 */

#import <Foundation/NSArray.h>

#import "NSBridging.h"

/*!



 * @brief Support for bridging NSArrays to OFArrays.
 */
@interface NSArray (OFObject) <NSBridging>
@end







>
>
>




15
16
17
18
19
20
21
22
23
24
25
26
27
28
 */

#import <Foundation/NSArray.h>

#import "NSBridging.h"

/*!
 * @category NSArray (OFObject) \
 *	     NSArray+OFObject.h ObjFW-Bridge/NSArray+OFObject.h
 *
 * @brief Support for bridging NSArrays to OFArrays.
 */
@interface NSArray (OFObject) <NSBridging>
@end

Modified src/bridge/NSBridging.h from [26d995eaa7] to [56c9f6c69b].

11
12
13
14
15
16
17


18
19
20
21
22
23
24
 * Alternatively, it may be distributed under the terms of the GNU General
 * 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.
 */

/*!


 * @brief A protocol implemented by classes supporting bridging Foundation
 *	  objects to ObjFW objects.
 */
@protocol NSBridging
/*!
 * @brief Returns an instance of an ObjFW object corresponding to the receiver.
 *







>
>







11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 * Alternatively, it may be distributed under the terms of the GNU General
 * 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.
 */

/*!
 * @protocol NSBridging NSBridging.h ObjFW-Bridge/NSBridging.h
 *
 * @brief A protocol implemented by classes supporting bridging Foundation
 *	  objects to ObjFW objects.
 */
@protocol NSBridging
/*!
 * @brief Returns an instance of an ObjFW object corresponding to the receiver.
 *

Modified src/bridge/NSDictionary+OFObject.h from [53c565e88a] to [ec01c7fcdb].

15
16
17
18
19
20
21



22
23
24
25
 */

#import <Foundation/NSDictionary.h>

#import "NSBridging.h"

/*!



 * @brief Support for bridging NSDictionaries to OFDictionaries.
 */
@interface NSDictionary (OFObject) <NSBridging>
@end







>
>
>




15
16
17
18
19
20
21
22
23
24
25
26
27
28
 */

#import <Foundation/NSDictionary.h>

#import "NSBridging.h"

/*!
 * @category NSDictionary (OFObject) \
 *	     NSDictionary+OFObject.h ObjFW-Bridge/NSDictionary+OFObject.h
 *
 * @brief Support for bridging NSDictionaries to OFDictionaries.
 */
@interface NSDictionary (OFObject) <NSBridging>
@end

Modified src/bridge/NSString+OFObject.h from [8cb0d7b30c] to [0096d26e80].

15
16
17
18
19
20
21



22
23
24
25
26
27
28
29
 */

#import <Foundation/NSString.h>

#import "NSBridging.h"

/*!



 * @brief Support for bridging NSStrings to OFStrings.
 *
 * Unfortunately, they need to be copied, as NSString is not capable of
 * handling UCS-4 properly (a character of NSString is only 2 bytes, while a
 * character of OFString is 4).
 */
@interface NSString (OFObject) <NSBridging>
@end







>
>
>








15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 */

#import <Foundation/NSString.h>

#import "NSBridging.h"

/*!
 * @category NSString (OFObject)
 *	     NSString+OFObject.h ObjFW-Bridge/NSString+OFObject.h
 *
 * @brief Support for bridging NSStrings to OFStrings.
 *
 * Unfortunately, they need to be copied, as NSString is not capable of
 * handling UCS-4 properly (a character of NSString is only 2 bytes, while a
 * character of OFString is 4).
 */
@interface NSString (OFObject) <NSBridging>
@end

Modified src/bridge/OFArray+NSObject.h from [5b85c28e41] to [4484a7589c].

19
20
21
22
23
24
25


26
27
28
29
#else
# import <ObjFW/OFArray.h>
#endif

#import "OFBridging.h"

/*!


 * @brief Support for bridging OFArrays to NSArrays.
 */
@interface OFArray (NSObject) <OFBridging>
@end







>
>




19
20
21
22
23
24
25
26
27
28
29
30
31
#else
# import <ObjFW/OFArray.h>
#endif

#import "OFBridging.h"

/*!
 * @category OFArray (NSObject) \
 *	     OFArray+NSObject.h ObjFW-Bridge/OFArray+NSObject.h
 * @brief Support for bridging OFArrays to NSArrays.
 */
@interface OFArray (NSObject) <OFBridging>
@end

Modified src/bridge/OFBridging.h from [4225652e02] to [3e4333c15a].

11
12
13
14
15
16
17


18
19
20
21
22
23
24
 * Alternatively, it may be distributed under the terms of the GNU General
 * 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.
 */

/*!


 * @brief A protocol implemented by classes supporting bridging ObjFW objects
 *	  to Foundation objects.
 */
@protocol OFBridging
/*!
 * @brief Returns an instance of a Foundation object corresponding to the
 *	  receiver.







>
>







11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 * Alternatively, it may be distributed under the terms of the GNU General
 * 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.
 */

/*!
 * @protocol OFBridging OFBridging.h ObjFW-Bridge/OFBridging.h
 *
 * @brief A protocol implemented by classes supporting bridging ObjFW objects
 *	  to Foundation objects.
 */
@protocol OFBridging
/*!
 * @brief Returns an instance of a Foundation object corresponding to the
 *	  receiver.

Modified src/bridge/OFDictionary+NSObject.h from [3e160d555e] to [09317da5ed].

19
20
21
22
23
24
25



26
27
28
29
#else
# import <ObjFW/OFDictionary.h>
#endif

#import "OFBridging.h"

/*!



 * @brief Support for bridging OFDictionaries to NSDictionaries.
 */
@interface OFDictionary (NSObject) <OFBridging>
@end







>
>
>




19
20
21
22
23
24
25
26
27
28
29
30
31
32
#else
# import <ObjFW/OFDictionary.h>
#endif

#import "OFBridging.h"

/*!
 * @category OFDictionary (NSObject) \
 *	     OFDictionary+NSObject.h ObjFW-Bridge/OFDictionary+NSObject.h
 *
 * @brief Support for bridging OFDictionaries to NSDictionaries.
 */
@interface OFDictionary (NSObject) <OFBridging>
@end

Modified src/bridge/OFString+NSObject.h from [e389981a53] to [6171640ea0].

19
20
21
22
23
24
25



26
27
28
29
30
31
32
33
#else
# import <ObjFW/OFString.h>
#endif

#import "OFBridging.h"

/*!



 * @brief Support for bridging OFStrings to NSStrings.
 *
 * Unfortunately, they need to be copied, as NSString is not capable of
 * handling UCS-4 properly (a character of NSString is only 2 bytes, while a
 * character of OFString is 4).
 */
@interface OFString (NSObject) <OFBridging>
@end







>
>
>








19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#else
# import <ObjFW/OFString.h>
#endif

#import "OFBridging.h"

/*!
 * @category OFString (NSObject) \
 *	     OFString+NSObject.h ObjFW-Bridge/OFString+NSObject.h
 *
 * @brief Support for bridging OFStrings to NSStrings.
 *
 * Unfortunately, they need to be copied, as NSString is not capable of
 * handling UCS-4 properly (a character of NSString is only 2 bytes, while a
 * character of OFString is 4).
 */
@interface OFString (NSObject) <OFBridging>
@end

Modified src/exceptions/OFAcceptFailedException.h from [8f1c5ce95c] to [47ea8fac4d].

19
20
21
22
23
24
25



26
27
28
29
30
31
32
#import "OFException.h"

#ifndef OF_HAVE_SOCKETS
# error No sockets available!
#endif

/*!



 * @brief An exception indicating that accepting a connection failed.
 */
@interface OFAcceptFailedException: OFException
{
	id _socket;
	int _errNo;
}







>
>
>







19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#import "OFException.h"

#ifndef OF_HAVE_SOCKETS
# error No sockets available!
#endif

/*!
 * @class OFAcceptFailedException \
 *	  OFAcceptFailedException.h ObjFW/OFAcceptFailedException.h
 *
 * @brief An exception indicating that accepting a connection failed.
 */
@interface OFAcceptFailedException: OFException
{
	id _socket;
	int _errNo;
}

Modified src/exceptions/OFAddressTranslationFailedException.h from [d6b57c8d5d] to [08a84e3c5e].

19
20
21
22
23
24
25




26
27
28
29
30
31
32
#import "OFException.h"

#ifndef OF_HAVE_SOCKETS
# error No sockets available!
#endif

/*!




 * @brief An exception indicating the translation of an address failed.
 */
@interface OFAddressTranslationFailedException: OFException
{
	OFString *_host;
	int _errNo;
}







>
>
>
>







19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#import "OFException.h"

#ifndef OF_HAVE_SOCKETS
# error No sockets available!
#endif

/*!
 * @class OFAddressTranslationFailedException \
 *	  OFAddressTranslationFailedException.h \
 *	  ObjFW/OFAddressTranslationFailedException.h
 *
 * @brief An exception indicating the translation of an address failed.
 */
@interface OFAddressTranslationFailedException: OFException
{
	OFString *_host;
	int _errNo;
}

Modified src/exceptions/OFAllocFailedException.h from [7ed7f37096] to [39d6b2ae64].

15
16
17
18
19
20
21



22
23
24
25
26
27
28
 */

#import "OFObject.h"

@class OFString;

/*!



 * @brief An exception indicating an object could not be allocated.
 *
 * This exception is preallocated, as when 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 which is not an OFException as it's special. It







>
>
>







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 */

#import "OFObject.h"

@class OFString;

/*!
 * @class OFAllocFailedException \
 *	  OFAllocFailedException.h ObjFW/OFAllocFailedException.h
 *
 * @brief An exception indicating an object could not be allocated.
 *
 * This exception is preallocated, as when 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 which is not an OFException as it's special. It

Modified src/exceptions/OFAlreadyConnectedException.h from [d71c747bb3] to [76a9c3fc41].

17
18
19
20
21
22
23



24
25
26
27
28
29
30
#import "OFException.h"

#ifndef OF_HAVE_SOCKETS
# error No sockets available!
#endif

/*!



 * @brief An exception indicating an attempt to connect or bind an already
 *        connected or bound socket.
 */
@interface OFAlreadyConnectedException: OFException
{
	id _socket;
}







>
>
>







17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#import "OFException.h"

#ifndef OF_HAVE_SOCKETS
# error No sockets available!
#endif

/*!
 * @class OFAlreadyConnectedException \
 *	  OFAlreadyConnectedException.h ObjFW/OFAlreadyConnectedException.h
 *
 * @brief An exception indicating an attempt to connect or bind an already
 *        connected or bound socket.
 */
@interface OFAlreadyConnectedException: OFException
{
	id _socket;
}

Modified src/exceptions/OFBindFailedException.h from [e51e2f0116] to [e8ecaa5a8a].

19
20
21
22
23
24
25



26
27
28
29
30
31
32
#import "OFException.h"

#ifndef OF_HAVE_SOCKETS
# error No sockets available!
#endif

/*!



 * @brief An exception indicating that binding a socket failed.
 */
@interface OFBindFailedException: OFException
{
	id _socket;
	OFString *_host;
	uint16_t _port;







>
>
>







19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#import "OFException.h"

#ifndef OF_HAVE_SOCKETS
# error No sockets available!
#endif

/*!
 * @class OFBindFailedException \
 *	  OFBindFailedException.h ObjFW/OFBindFailedException.h
 *
 * @brief An exception indicating that binding a socket failed.
 */
@interface OFBindFailedException: OFException
{
	id _socket;
	OFString *_host;
	uint16_t _port;

Modified src/exceptions/OFChangeCurrentDirectoryPathFailedException.h from [02d47980ab] to [45449e8492].

15
16
17
18
19
20
21




22
23
24
25
26
27
28
 */

#include <errno.h>

#import "OFException.h"

/*!




 * @brief An exception indicating that changing the current directory path
 *	  failed.
 */
@interface OFChangeCurrentDirectoryPathFailedException: OFException
{
	OFString *_path;
	int _errNo;







>
>
>
>







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 */

#include <errno.h>

#import "OFException.h"

/*!
 * @class OFChangeCurrentDirectoryPathFailedException \
 *	  OFChangeCurrentDirectoryPathFailedException.h \
 *	  ObjFW/OFChangeCurrentDirectoryPathFailedException.h
 *
 * @brief An exception indicating that changing the current directory path
 *	  failed.
 */
@interface OFChangeCurrentDirectoryPathFailedException: OFException
{
	OFString *_path;
	int _errNo;

Modified src/exceptions/OFChangeOwnerFailedException.h from [83ae290d6c] to [5587f9cda9].

16
17
18
19
20
21
22



23
24
25
26
27
28
29

#include <errno.h>

#import "OFException.h"

#ifdef OF_HAVE_CHOWN
/*!



 * @brief An exception indicating that changing the owner of an item failed.
 */
@interface OFChangeOwnerFailedException: OFException
{
	OFString *_path, *_owner, *_group;
	int _errNo;
}







>
>
>







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

#include <errno.h>

#import "OFException.h"

#ifdef OF_HAVE_CHOWN
/*!
 * @class OFChangeOwnerFailedException \
 *	  OFChangeOwnerFailedException.h ObjFW/OFChangeOwnerFailedException.h
 *
 * @brief An exception indicating that changing the owner of an item failed.
 */
@interface OFChangeOwnerFailedException: OFException
{
	OFString *_path, *_owner, *_group;
	int _errNo;
}

Modified src/exceptions/OFChangePermissionsFailedException.h from [e228cf14b3] to [a1573dfeea].

17
18
19
20
21
22
23




24
25
26
27
28
29
30
#include <errno.h>

#include <sys/types.h>

#import "OFException.h"

/*!




 * @brief An exception indicating that changing the permissions of an item
 *	  failed.
 */
@interface OFChangePermissionsFailedException: OFException
{
	OFString *_path;
	mode_t _permissions;







>
>
>
>







17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <errno.h>

#include <sys/types.h>

#import "OFException.h"

/*!
 * @class OFChangePermissionsFailedException \
 *	  OFChangePermissionsFailedException.h \
 *	  ObjFW/OFChangePermissionsFailedException.h
 *
 * @brief An exception indicating that changing the permissions of an item
 *	  failed.
 */
@interface OFChangePermissionsFailedException: OFException
{
	OFString *_path;
	mode_t _permissions;

Modified src/exceptions/OFChecksumFailedException.h from [f559fef089] to [dcaf714690].

13
14
15
16
17
18
19



20
21
22
23
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFException.h"

/*!



 * @brief An exception indicating that a checksum did not match.
 */
@interface OFChecksumFailedException: OFException
@end







>
>
>




13
14
15
16
17
18
19
20
21
22
23
24
25
26
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFException.h"

/*!
 * @class OFChecksumFailedException \
 *	  OFChecksumFailedException.h ObjFW/OFChecksumFailedException.h
 *
 * @brief An exception indicating that a checksum did not match.
 */
@interface OFChecksumFailedException: OFException
@end

Modified src/exceptions/OFConditionBroadcastFailedException.h from [e804e68ecf] to [b96bc03317].

19
20
21
22
23
24
25




26
27
28
29
30
31
32
#ifndef OF_HAVE_THREADS
# error No threads available!
#endif

@class OFCondition;

/*!




 * @brief An exception indicating broadcasting a condition failed.
 */
@interface OFConditionBroadcastFailedException: OFException
{
	OFCondition *_condition;
}








>
>
>
>







19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#ifndef OF_HAVE_THREADS
# error No threads available!
#endif

@class OFCondition;

/*!
 * @class OFConditionBroadcastFailedException \
 *	  OFConditionBroadcastFailedException.h \
 *	  ObjFW/OFConditionBroadcastFailedException.h
 *
 * @brief An exception indicating broadcasting a condition failed.
 */
@interface OFConditionBroadcastFailedException: OFException
{
	OFCondition *_condition;
}

Modified src/exceptions/OFConditionSignalFailedException.h from [b466731834] to [181a69ec9f].

19
20
21
22
23
24
25




26
27
28
29
30
31
32
#ifndef OF_HAVE_THREADS
# error No threads available!
#endif

@class OFCondition;

/*!




 * @brief An exception indicating signaling a condition failed.
 */
@interface OFConditionSignalFailedException: OFException
{
	OFCondition *_condition;
}








>
>
>
>







19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#ifndef OF_HAVE_THREADS
# error No threads available!
#endif

@class OFCondition;

/*!
 * @class OFConditionSignalFailedException \
 *	  OFConditionSignalFailedException.h \
 *	  ObjFW/OFConditionSignalFailedException.h
 *
 * @brief An exception indicating signaling a condition failed.
 */
@interface OFConditionSignalFailedException: OFException
{
	OFCondition *_condition;
}

Modified src/exceptions/OFConditionStillWaitingException.h from [89f87bf885] to [e5a8403948].

19
20
21
22
23
24
25




26
27
28
29
30
31
32
#ifndef OF_HAVE_THREADS
# error No threads available!
#endif

@class OFCondition;

/*!




 * @brief An exception indicating that a thread is still waiting for a
 *	  condition.
 */
@interface OFConditionStillWaitingException: OFException
{
	OFCondition *_condition;
}







>
>
>
>







19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#ifndef OF_HAVE_THREADS
# error No threads available!
#endif

@class OFCondition;

/*!
 * @class OFConditionStillWaitingException \
 *	  OFConditionStillWaitingException.h \
 *	  ObjFW/OFConditionStillWaitingException.h
 *
 * @brief An exception indicating that a thread is still waiting for a
 *	  condition.
 */
@interface OFConditionStillWaitingException: OFException
{
	OFCondition *_condition;
}

Modified src/exceptions/OFConditionWaitFailedException.h from [108de3911e] to [0f72e885c5].

19
20
21
22
23
24
25




26
27
28
29
30
31
32
#ifndef OF_HAVE_THREADS
# error No threads available!
#endif

@class OFCondition;

/*!




 * @brief An exception indicating waiting for a condition failed.
 */
@interface OFConditionWaitFailedException: OFException
{
	OFCondition *_condition;
}








>
>
>
>







19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#ifndef OF_HAVE_THREADS
# error No threads available!
#endif

@class OFCondition;

/*!
 * @class OFConditionWaitFailedException \
 *	  OFConditionWaitFailedException.h \
 *	  ObjFW/OFConditionWaitFailedException.h
 *
 * @brief An exception indicating waiting for a condition failed.
 */
@interface OFConditionWaitFailedException: OFException
{
	OFCondition *_condition;
}

Modified src/exceptions/OFConnectionFailedException.h from [dfacad7397] to [590163df23].

19
20
21
22
23
24
25



26
27
28
29
30
31
32
#import "OFException.h"

#ifndef OF_HAVE_SOCKETS
# error No sockets available!
#endif

/*!



 * @brief An exception indicating that a connection could not be established.
 */
@interface OFConnectionFailedException: OFException
{
	id _socket;
	OFString *_host;
	uint16_t _port;







>
>
>







19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#import "OFException.h"

#ifndef OF_HAVE_SOCKETS
# error No sockets available!
#endif

/*!
 * @class OFConnectionFailedException \
 *	  OFConnectionFailedException.h ObjFW/OFConnectionFailedException.h
 *
 * @brief An exception indicating that a connection could not be established.
 */
@interface OFConnectionFailedException: OFException
{
	id _socket;
	OFString *_host;
	uint16_t _port;

Modified src/exceptions/OFCopyItemFailedException.h from [e4e72dcd3c] to [5e54e42d57].

15
16
17
18
19
20
21



22
23
24
25
26
27
28
 */

#include <errno.h>

#import "OFException.h"

/*!



 * @brief An exception indicating that copying a item failed.
 */
@interface OFCopyItemFailedException: OFException
{
	OFString *_sourcePath, *_destinationPath;
	int _errNo;
}







>
>
>







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 */

#include <errno.h>

#import "OFException.h"

/*!
 * @class OFCopyItemFailedException \
 *	  OFCopyItemFailedException.h ObjFW/OFCopyItemFailedException.h
 *
 * @brief An exception indicating that copying a item failed.
 */
@interface OFCopyItemFailedException: OFException
{
	OFString *_sourcePath, *_destinationPath;
	int _errNo;
}

Modified src/exceptions/OFCreateDirectoryFailedException.h from [d06dfdbd7b] to [d0b9e33446].

15
16
17
18
19
20
21




22
23
24
25
26
27
28
 */

#include <errno.h>

#import "OFException.h"

/*!




 * @brief An exception indicating a directory couldn't be created.
 */
@interface OFCreateDirectoryFailedException: OFException
{
	OFString *_path;
	int _errNo;
}







>
>
>
>







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 */

#include <errno.h>

#import "OFException.h"

/*!
 * @class OFCreateDirectoryFailedException \
 *	  OFCreateDirectoryFailedException.h \
 *	  ObjFW/OFCreateDirectoryFailedException.h
 *
 * @brief An exception indicating a directory couldn't be created.
 */
@interface OFCreateDirectoryFailedException: OFException
{
	OFString *_path;
	int _errNo;
}

Modified src/exceptions/OFCreateSymbolicLinkFailedException.h from [b5be061b91] to [95db665c33].

16
17
18
19
20
21
22




23
24
25
26
27
28
29

#include <errno.h>

#import "OFException.h"

#ifdef OF_HAVE_SYMLINK
/*!




 * @brief An exception indicating that creating a symbolic link failed.
 */
@interface OFCreateSymbolicLinkFailedException: OFException
{
	OFString *_sourcePath, *_destinationPath;
	int _errNo;
}







>
>
>
>







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

#include <errno.h>

#import "OFException.h"

#ifdef OF_HAVE_SYMLINK
/*!
 * @class OFCreateSymbolicLinkFailedException \
 *	  OFCreateSymbolicLinkFailedException.h \
 *	  ObjFW/OFCreateSymbolicLinkFailedException.h
 *
 * @brief An exception indicating that creating a symbolic link failed.
 */
@interface OFCreateSymbolicLinkFailedException: OFException
{
	OFString *_sourcePath, *_destinationPath;
	int _errNo;
}

Modified src/exceptions/OFEnumerationMutationException.h from [ea17dbe49b] to [83c3c34000].

13
14
15
16
17
18
19




20
21
22
23
24
25
26
 * 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
 *        enumeration.
 */
@interface OFEnumerationMutationException: OFException
{
	id _object;
}







>
>
>
>







13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFException.h"

/*!
 * @class OFEnumerationMutationException \
 *	  OFEnumerationMutationException.h \
 *	  ObjFW/OFEnumerationMutationException.h
 *
 * @brief An exception indicating that a mutation was detected during
 *        enumeration.
 */
@interface OFEnumerationMutationException: OFException
{
	id _object;
}

Modified src/exceptions/OFException.h from [a993d55bbd] to [3cc3163ec3].

128
129
130
131
132
133
134


135
136
137
138
139
140
141
# ifndef EWOULDBLOCK
#  define EWOULDBLOCK WSAEWOULDBLOCK
# endif
extern int of_wsaerr_to_errno(int);
#endif

/*!


 * @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
{







>
>







128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# ifndef EWOULDBLOCK
#  define EWOULDBLOCK WSAEWOULDBLOCK
# endif
extern int of_wsaerr_to_errno(int);
#endif

/*!
 * @class OFException OFException.h ObjFW/OFException.h
 *
 * @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
{

Modified src/exceptions/OFHTTPRequestFailedException.h from [4b75babdab] to [78413416df].

20
21
22
23
24
25
26




27
28
29
30
31
32
33
# error No sockets available!
#endif

@class OFHTTPRequest;
@class OFHTTPResponse;

/*!




 * @brief An exception indicating that an HTTP request failed.
 */
@interface OFHTTPRequestFailedException: OFException
{
	OFHTTPRequest *_request;
	OFHTTPResponse *_response;
}







>
>
>
>







20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# error No sockets available!
#endif

@class OFHTTPRequest;
@class OFHTTPResponse;

/*!
 * @class OFHTTPRequestFailedException \
 *	  OFHTTPRequestFailedException.h \
 *	  ObjFW/OFHTTPRequestFailedException.h
 *
 * @brief An exception indicating that an HTTP request failed.
 */
@interface OFHTTPRequestFailedException: OFException
{
	OFHTTPRequest *_request;
	OFHTTPResponse *_response;
}

Modified src/exceptions/OFHashAlreadyCalculatedException.h from [09e751c1a8] to [d161865f99].

14
15
16
17
18
19
20




21
22
23
24
25
26
27
 * file.
 */

#import "OFException.h"
#import "OFHash.h"

/*!




 * @brief An exception indicating that the hash has already been calculated.
 */
@interface OFHashAlreadyCalculatedException: OFException
{
	id <OFHash> _hashObject;
}








>
>
>
>







14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 * file.
 */

#import "OFException.h"
#import "OFHash.h"

/*!
 * @class OFHashAlreadyCalculatedException \
 *	  OFHashAlreadyCalculatedException.h \
 *	  ObjFW/OFHashAlreadyCalculatedException.h
 *
 * @brief An exception indicating that the hash has already been calculated.
 */
@interface OFHashAlreadyCalculatedException: OFException
{
	id <OFHash> _hashObject;
}

Modified src/exceptions/OFInitializationFailedException.h from [2910f89357] to [2844d2e74d].

13
14
15
16
17
18
19




20
21
22
23
24
25
26
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFException.h"

/*!




 * @brief An exception indicating that initializing something failed.
 */
@interface OFInitializationFailedException: OFException
{
	Class _inClass;
}








>
>
>
>







13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFException.h"

/*!
 * @class OFInitializationFailedException \
 *	  OFInitializationFailedException.h \
 *	  ObjFW/OFInitializationFailedException.h
 *
 * @brief An exception indicating that initializing something failed.
 */
@interface OFInitializationFailedException: OFException
{
	Class _inClass;
}

Modified src/exceptions/OFInvalidArgumentException.h from [0409d34d75] to [cf73649e9f].

13
14
15
16
17
18
19



20
21
22
23
 * 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.
 */
@interface OFInvalidArgumentException: OFException
@end







>
>
>




13
14
15
16
17
18
19
20
21
22
23
24
25
26
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFException.h"

/*!
 * @class OFInvalidArgumentException \
 *	  OFInvalidArgumentException.h ObjFW/OFInvalidArgumentException.h
 *
 * @brief An exception indicating that the argument is invalid for this method.
 */
@interface OFInvalidArgumentException: OFException
@end

Modified src/exceptions/OFInvalidEncodingException.h from [f213cc10ac] to [482187446b].

13
14
15
16
17
18
19



20
21
22
23
 * 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.
 */
@interface OFInvalidEncodingException: OFException
@end







>
>
>




13
14
15
16
17
18
19
20
21
22
23
24
25
26
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFException.h"

/*!
 * @class OFInvalidEncodingException \
 *	  OFInvalidEncodingException.h ObjFW/OFInvalidEncodingException.h
 *
 * @brief An exception indicating that the encoding is invalid for this object.
 */
@interface OFInvalidEncodingException: OFException
@end

Modified src/exceptions/OFInvalidFormatException.h from [1be36a3d8e] to [042bb04f5b].

13
14
15
16
17
18
19



20
21
22
23
 * 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.
 */
@interface OFInvalidFormatException: OFException
@end







>
>
>




13
14
15
16
17
18
19
20
21
22
23
24
25
26
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFException.h"

/*!
 * @class OFInvalidFormatException \
 *	  OFInvalidFormatException.h ObjFW/OFInvalidFormatException.h
 *
 * @brief An exception indicating that the format is invalid.
 */
@interface OFInvalidFormatException: OFException
@end

Modified src/exceptions/OFInvalidJSONException.h from [51afaddfc2] to [d0e8ae2469].

13
14
15
16
17
18
19



20
21
22
23
24
25
26
 * 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.
 */
@interface OFInvalidJSONException: OFException
{
	OFString *_string;
	size_t _line;
}







>
>
>







13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFException.h"

/*!
 * @class OFInvalidJSONException \
 *	  OFInvalidJSONException.h ObjFW/OFInvalidJSONException.h
 *
 * @brief An exception indicating a JSON representation is invalid.
 */
@interface OFInvalidJSONException: OFException
{
	OFString *_string;
	size_t _line;
}

Modified src/exceptions/OFInvalidServerReplyException.h from [b67d0257f1] to [fbf28433ff].

13
14
15
16
17
18
19



20
21
22
23
 * 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.
 */
@interface OFInvalidServerReplyException: OFException
@end







>
>
>




13
14
15
16
17
18
19
20
21
22
23
24
25
26
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFException.h"

/*!
 * @class OFInvalidServerReplyException \
 *	  OFInvalidServerReplyException.h ObjFW/OFInvalidServerReplyException.h
 *
 * @brief An exception indicating that the server sent an invalid reply.
 */
@interface OFInvalidServerReplyException: OFException
@end

Modified src/exceptions/OFLinkFailedException.h from [f872217020] to [7481ad05e6].

16
17
18
19
20
21
22



23
24
25
26
27
28
29

#include <errno.h>

#import "OFException.h"

#ifdef OF_HAVE_LINK
/*!



 * @brief An exception indicating that creating a link failed.
 */
@interface OFLinkFailedException: OFException
{
	OFString *_sourcePath, *_destinationPath;
	int _errNo;
}







>
>
>







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

#include <errno.h>

#import "OFException.h"

#ifdef OF_HAVE_LINK
/*!
 * @class OFLinkFailedException \
 *	  OFLinkFailedException.h ObjFW/OFLinkFailedException.h
 *
 * @brief An exception indicating that creating a link failed.
 */
@interface OFLinkFailedException: OFException
{
	OFString *_sourcePath, *_destinationPath;
	int _errNo;
}

Modified src/exceptions/OFListenFailedException.h from [ab3ab8d43b] to [c82f7c86cb].

19
20
21
22
23
24
25



26
27
28
29
30
31
32
#import "OFException.h"

#ifndef OF_HAVE_SOCKETS
# error No sockets available!
#endif

/*!



 * @brief An exception indicating that listening on the socket failed.
 */
@interface OFListenFailedException: OFException
{
	id _socket;
	int _backLog, _errNo;
}







>
>
>







19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#import "OFException.h"

#ifndef OF_HAVE_SOCKETS
# error No sockets available!
#endif

/*!
 * @class OFListenFailedException \
 *	  OFListenFailedException.h ObjFW/OFListenFailedException.h
 *
 * @brief An exception indicating that listening on the socket failed.
 */
@interface OFListenFailedException: OFException
{
	id _socket;
	int _backLog, _errNo;
}

Modified src/exceptions/OFLockFailedException.h from [97b482c7ab] to [501f6bdda0].

14
15
16
17
18
19
20



21
22
23
24
25
26
27
 * file.
 */

#import "OFException.h"
#import "OFLocking.h"

/*!



 * @brief An exception indicating that locking a lock failed.
 */
@interface OFLockFailedException: OFException
{
	id <OFLocking> _lock;
}








>
>
>







14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 * file.
 */

#import "OFException.h"
#import "OFLocking.h"

/*!
 * @class OFLockFailedException \
 *	  OFLockFailedException.h ObjFW/OFLockFailedException.h
 *
 * @brief An exception indicating that locking a lock failed.
 */
@interface OFLockFailedException: OFException
{
	id <OFLocking> _lock;
}

Modified src/exceptions/OFMalformedXMLException.h from [094c68650b] to [1886a870e4].

15
16
17
18
19
20
21



22
23
24
25
26
27
28
 */

#import "OFException.h"

@class OFXMLParser;

/*!



 * @brief An exception indicating that a parser encountered malformed XML.
 */
@interface OFMalformedXMLException: OFException
{
	OFXMLParser *_parser;
}








>
>
>







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 */

#import "OFException.h"

@class OFXMLParser;

/*!
 * @class OFMalformedXMLException \
 *	  OFMalformedXMLException.h ObjFW/OFMalformedXMLException.h
 *
 * @brief An exception indicating that a parser encountered malformed XML.
 */
@interface OFMalformedXMLException: OFException
{
	OFXMLParser *_parser;
}

Modified src/exceptions/OFMemoryNotPartOfObjectException.h from [0fb841b89e] to [24b50dccd2].

13
14
15
16
17
18
19




20
21
22
23
24
25
26
 * 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.
 */
@interface OFMemoryNotPartOfObjectException: OFException
{
	void *_pointer;
	id _object;
}







>
>
>
>







13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFException.h"

/*!
 * @class OFMemoryNotPartOfObjectException \
 *	  OFMemoryNotPartOfObjectException.h \
 *	  ObjFW/OFMemoryNotPartOfObjectException.h
 *
 * @brief An exception indicating the given memory is not part of the object.
 */
@interface OFMemoryNotPartOfObjectException: OFException
{
	void *_pointer;
	id _object;
}

Modified src/exceptions/OFMoveItemFailedException.h from [4e3f44c003] to [855120ac39].

15
16
17
18
19
20
21



22
23
24
25
26
27
28
 */

#include <errno.h>

#import "OFException.h"

/*!



 * @brief An exception indicating that moving an item failed.
 */
@interface OFMoveItemFailedException: OFException
{
	OFString *_sourcePath, *_destinationPath;
	int _errNo;
}







>
>
>







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 */

#include <errno.h>

#import "OFException.h"

/*!
 * @class OFMoveItemFailedException \
 *	  OFMoveItemFailedException.h ObjFW/OFMoveItemFailedException.h
 *
 * @brief An exception indicating that moving an item failed.
 */
@interface OFMoveItemFailedException: OFException
{
	OFString *_sourcePath, *_destinationPath;
	int _errNo;
}

Modified src/exceptions/OFNotConnectedException.h from [913bbdc96f] to [8087d9d0b3].

17
18
19
20
21
22
23



24
25
26
27
28
29
30
#import "OFException.h"

#ifndef OF_HAVE_SOCKETS
# error No sockets available!
#endif

/*!



 * @brief An exception indicating a socket is not connected or bound.
 */
@interface OFNotConnectedException: OFException
{
	id _socket;
}








>
>
>







17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#import "OFException.h"

#ifndef OF_HAVE_SOCKETS
# error No sockets available!
#endif

/*!
 * @class OFNotConnectedException \
 *	  OFNotConnectedException.h ObjFW/OFNotConnectedException.h
 *
 * @brief An exception indicating a socket is not connected or bound.
 */
@interface OFNotConnectedException: OFException
{
	id _socket;
}

Modified src/exceptions/OFNotImplementedException.h from [ef10ba2f15] to [c31eb9ffc8].

13
14
15
16
17
18
19



20
21
22
23
24
25
26
 * 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
 *        implemented.
 */
@interface OFNotImplementedException: OFException
{
	SEL _selector;
	id _object;







>
>
>







13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFException.h"

/*!
 * @class OFNotImplementedException \
 *	  OFNotImplementedException.h ObjFW/OFNotImplementedException.h
 *
 * @brief An exception indicating that a method or part of it is not
 *        implemented.
 */
@interface OFNotImplementedException: OFException
{
	SEL _selector;
	id _object;

Modified src/exceptions/OFOpenFileFailedException.h from [7c949dbe9f] to [ef70ae07a4].

15
16
17
18
19
20
21



22
23
24
25
26
27
28
 */

#include <errno.h>

#import "OFException.h"

/*!



 * @brief An exception indicating a file couldn't be opened.
 */
@interface OFOpenFileFailedException: OFException
{
	OFString *_path, *_mode;
	int _errNo;
}







>
>
>







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 */

#include <errno.h>

#import "OFException.h"

/*!
 * @class OFOpenFileFailedException \
 *	  OFOpenFileFailedException.h ObjFW/OFOpenFileFailedException.h
 *
 * @brief An exception indicating a file couldn't be opened.
 */
@interface OFOpenFileFailedException: OFException
{
	OFString *_path, *_mode;
	int _errNo;
}

Modified src/exceptions/OFOutOfMemoryException.h from [a027cf8e2d] to [f8e03783e2].

13
14
15
16
17
18
19



20
21
22
23
24
25
26
 * 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.
 */
@interface OFOutOfMemoryException: OFException
{
	size_t _requestedSize;
}








>
>
>







13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFException.h"

/*!
 * @class OFOutOfMemoryException \
 *	  OFOutOfMemoryException.h ObjFW/OFOutOfMemoryException.h
 *
 * @brief An exception indicating there is not enough memory available.
 */
@interface OFOutOfMemoryException: OFException
{
	size_t _requestedSize;
}

Modified src/exceptions/OFOutOfRangeException.h from [499e79f2c5] to [23db32e973].

13
14
15
16
17
18
19



20
21
22
23
 * 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.
 */
@interface OFOutOfRangeException: OFException
@end







>
>
>




13
14
15
16
17
18
19
20
21
22
23
24
25
26
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFException.h"

/*!
 * @class OFOutOfRangeException \
 *	  OFOutOfRangeException.h ObjFW/OFOutOfRangeException.h
 *
 * @brief An exception indicating the given value is out of range.
 */
@interface OFOutOfRangeException: OFException
@end

Modified src/exceptions/OFReadFailedException.h from [9d61550da4] to [8333aeacd2].

13
14
15
16
17
18
19



20
21
22
23
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFReadOrWriteFailedException.h"

/*!



 * @brief An exception indicating that reading from an object failed.
 */
@interface OFReadFailedException: OFReadOrWriteFailedException
@end







>
>
>




13
14
15
16
17
18
19
20
21
22
23
24
25
26
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFReadOrWriteFailedException.h"

/*!
 * @class OFReadFailedException \
 *	  OFReadFailedException.h ObjFW/OFReadFailedException.h
 *
 * @brief An exception indicating that reading from an object failed.
 */
@interface OFReadFailedException: OFReadOrWriteFailedException
@end

Modified src/exceptions/OFReadOrWriteFailedException.h from [1abbcc8757] to [7dce8857cc].

15
16
17
18
19
20
21



22
23
24
25
26
27
28
 */

#include <errno.h>

#import "OFException.h"

/*!



 * @brief An exception indicating that reading from or writing to an object
 *	  failed.
 */
@interface OFReadOrWriteFailedException: OFException
{
	id _object;
	size_t _requestedLength;







>
>
>







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 */

#include <errno.h>

#import "OFException.h"

/*!
 * @class OFReadOrWriteFailedException \
 *	  OFReadOrWriteFailedException.h ObjFW/OFReadOrWriteFailedException.h
 *
 * @brief An exception indicating that reading from or writing to an object
 *	  failed.
 */
@interface OFReadOrWriteFailedException: OFException
{
	id _object;
	size_t _requestedLength;

Modified src/exceptions/OFRemoveItemFailedException.h from [2bf6e2713a] to [ffc87718de].

15
16
17
18
19
20
21



22
23
24
25
26
27
28
 */

#include <errno.h>

#import "OFException.h"

/*!



 * @brief An exception indicating that removing an item failed.
 */
@interface OFRemoveItemFailedException: OFException
{
	OFString *_path;
	int _errNo;
}







>
>
>







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 */

#include <errno.h>

#import "OFException.h"

/*!
 * @class OFRemoveItemFailedException \
 *	  OFRemoveItemFailedException.h ObjFW/OFRemoveItemFailedException.h
 *
 * @brief An exception indicating that removing an item failed.
 */
@interface OFRemoveItemFailedException: OFException
{
	OFString *_path;
	int _errNo;
}

Modified src/exceptions/OFSeekFailedException.h from [a3a569b856] to [07822635da].

19
20
21
22
23
24
25



26
27
28
29
30
31
32
#include <sys/types.h>

#import "OFException.h"

@class OFSeekableStream;

/*!



 * @brief An exception indicating that seeking in a stream failed.
 */
@interface OFSeekFailedException: OFException
{
	OFSeekableStream *_stream;
	off_t _offset;
	int _whence, _errNo;







>
>
>







19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <sys/types.h>

#import "OFException.h"

@class OFSeekableStream;

/*!
 * @class OFSeekFailedException \
 *	  OFSeekFailedException.h ObjFW/OFSeekFailedException.h
 *
 * @brief An exception indicating that seeking in a stream failed.
 */
@interface OFSeekFailedException: OFException
{
	OFSeekableStream *_stream;
	off_t _offset;
	int _whence, _errNo;

Modified src/exceptions/OFSetOptionFailedException.h from [6ef8ece929] to [25e976cf33].

15
16
17
18
19
20
21



22
23
24
25
26
27
28
 */

#import "OFException.h"

@class OFStream;

/*!



 * @brief An exception indicating that setting an option for a stream failed.
 */
@interface OFSetOptionFailedException: OFException
{
	OFStream *_stream;
}








>
>
>







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 */

#import "OFException.h"

@class OFStream;

/*!
 * @class OFSetOptionFailedException \
 *	  OFSetOptionFailedException.h ObjFW/OFSetOptionFailedException.h
 *
 * @brief An exception indicating that setting an option for a stream failed.
 */
@interface OFSetOptionFailedException: OFException
{
	OFStream *_stream;
}

Modified src/exceptions/OFStillLockedException.h from [c12e369a1a] to [ae51424019].

14
15
16
17
18
19
20



21
22
23
24
25
26
27
 * file.
 */

#import "OFException.h"
#import "OFLocking.h"

/*!



 * @brief An exception indicating that a lock is still locked.
 */
@interface OFStillLockedException: OFException
{
	id <OFLocking> _lock;
}








>
>
>







14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 * file.
 */

#import "OFException.h"
#import "OFLocking.h"

/*!
 * @class OFStillLockedException \
 *	  OFStillLockedException.h ObjFW/OFStillLockedException.h
 *
 * @brief An exception indicating that a lock is still locked.
 */
@interface OFStillLockedException: OFException
{
	id <OFLocking> _lock;
}

Modified src/exceptions/OFThreadJoinFailedException.h from [23a84ce0b7] to [c3d642af27].

19
20
21
22
23
24
25



26
27
28
29
30
31
32
#ifndef OF_HAVE_THREADS
# error No threads available!
#endif

@class OFThread;

/*!



 * @brief An exception indicating that joining a thread failed.
 */
@interface OFThreadJoinFailedException: OFException
{
	OFThread *_thread;
}








>
>
>







19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#ifndef OF_HAVE_THREADS
# error No threads available!
#endif

@class OFThread;

/*!
 * @class OFThreadJoinFailedException \
 *	  OFThreadJoinFailedException.h ObjFW/OFThreadJoinFailedException.h
 *
 * @brief An exception indicating that joining a thread failed.
 */
@interface OFThreadJoinFailedException: OFException
{
	OFThread *_thread;
}

Modified src/exceptions/OFThreadStartFailedException.h from [5bde47862b] to [b1bba1481b].

19
20
21
22
23
24
25



26
27
28
29
30
31
32
#ifndef OF_HAVE_THREADS
# error No threads available!
#endif

@class OFThread;

/*!



 * @brief An exception indicating that starting a thread failed.
 */
@interface OFThreadStartFailedException: OFException
{
	OFThread *_thread;
}








>
>
>







19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#ifndef OF_HAVE_THREADS
# error No threads available!
#endif

@class OFThread;

/*!
 * @class OFThreadStartFailedException \
 *	  OFThreadStartFailedException.h ObjFW/OFThreadStartFailedException.h
 *
 * @brief An exception indicating that starting a thread failed.
 */
@interface OFThreadStartFailedException: OFException
{
	OFThread *_thread;
}

Modified src/exceptions/OFThreadStillRunningException.h from [c2c5f0a1e5] to [e919952c83].

19
20
21
22
23
24
25



26
27
28
29
30
31
32
#ifndef OF_HAVE_THREADS
# error No threads available!
#endif

@class OFThread;

/*!



 * @brief An exception indicating that a thread is still running.
 */
@interface OFThreadStillRunningException: OFException
{
	OFThread *_thread;
}








>
>
>







19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#ifndef OF_HAVE_THREADS
# error No threads available!
#endif

@class OFThread;

/*!
 * @class OFThreadStillRunningException \
 *	  OFThreadStillRunningException.h ObjFW/OFThreadStillRunningException.h
 *
 * @brief An exception indicating that a thread is still running.
 */
@interface OFThreadStillRunningException: OFException
{
	OFThread *_thread;
}

Modified src/exceptions/OFTruncatedDataException.h from [b6e2735960] to [4deff24367].

13
14
15
16
17
18
19



20
21
22
23
24
 * 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
 *	  have been truncated.
 */
@interface OFTruncatedDataException: OFException
@end







>
>
>





13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFException.h"

/*!
 * @class OFTruncatedDataException \
 *	  OFTruncatedDataException.h ObjFW/OFTruncatedDataException.h
 *
 * @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 [9166c07796] to [ed996a708d].

15
16
17
18
19
20
21



22
23
24
25
26
27
28
 */

#import "OFException.h"

@class OFXMLElement;

/*!



 * @brief An exception indicating an attempt to use an unbound namespace.
 */
@interface OFUnboundNamespaceException: OFException
{
	OFString *_namespace;
	OFXMLElement *_element;
}







>
>
>







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 */

#import "OFException.h"

@class OFXMLElement;

/*!
 * @class OFUnboundNamespaceException \
 *	  OFUnboundNamespaceException.h ObjFW/OFUnboundNamespaceException.h
 *
 * @brief An exception indicating an attempt to use an unbound namespace.
 */
@interface OFUnboundNamespaceException: OFException
{
	OFString *_namespace;
	OFXMLElement *_element;
}

Modified src/exceptions/OFUnboundPrefixException.h from [b6f2d0d8de] to [1b839ed1ff].

15
16
17
18
19
20
21



22
23
24
25
26
27
28
 */

#import "OFException.h"

@class OFXMLParser;

/*!



 * @brief An exception indicating an attempt to use an unbound prefix.
 */
@interface OFUnboundPrefixException: OFException
{
	OFString *_prefix;
	OFXMLParser *_parser;
}







>
>
>







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 */

#import "OFException.h"

@class OFXMLParser;

/*!
 * @class OFUnboundPrefixException \
 *	  OFUnboundPrefixException.h ObjFW/OFUnboundPrefixException.h
 *
 * @brief An exception indicating an attempt to use an unbound prefix.
 */
@interface OFUnboundPrefixException: OFException
{
	OFString *_prefix;
	OFXMLParser *_parser;
}

Modified src/exceptions/OFUnlockFailedException.h from [c5e9bdfba4] to [29e8097d22].

14
15
16
17
18
19
20



21
22
23
24
25
26
27
 * file.
 */

#import "OFException.h"
#import "OFLocking.h"

/*!



 * @brief An exception indicating that unlocking a lock failed.
 */
@interface OFUnlockFailedException: OFException
{
	id <OFLocking> _lock;
}








>
>
>







14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 * file.
 */

#import "OFException.h"
#import "OFLocking.h"

/*!
 * @class OFUnlockFailedException \
 *	  OFUnlockFailedException.h ObjFW/OFUnlockFailedException.h
 *
 * @brief An exception indicating that unlocking a lock failed.
 */
@interface OFUnlockFailedException: OFException
{
	id <OFLocking> _lock;
}

Modified src/exceptions/OFUnsupportedProtocolException.h from [0b8cc66c0a] to [fff88f5391].

15
16
17
18
19
20
21




22
23
24
25
26
27
28
 */

#import "OFException.h"

@class OFURL;

/*!




 * @brief An exception indicating that the protocol specified by the URL is not
 *	  supported.
 */
@interface OFUnsupportedProtocolException: OFException
{
	OFURL *_URL;
}







>
>
>
>







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 */

#import "OFException.h"

@class OFURL;

/*!
 * @class OFUnsupportedProtocolException \
 *	  OFUnsupportedProtocolException.h \
 *	  ObjFW/OFUnsupportedProtocolException.h
 *
 * @brief An exception indicating that the protocol specified by the URL is not
 *	  supported.
 */
@interface OFUnsupportedProtocolException: OFException
{
	OFURL *_URL;
}

Modified src/exceptions/OFUnsupportedVersionException.h from [a260876eab] to [89cf6bf922].

13
14
15
16
17
18
19



20
21
22
23
24
25
26
 * 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
 *	  protocol is not supported.
 */
@interface OFUnsupportedVersionException: OFException
{
	OFString *_version;
}







>
>
>







13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFException.h"

/*!
 * @class OFUnsupportedVersionException \
 *	  OFUnsupportedVersionException.h ObjFW/OFUnsupportedVersionException.h
 *
 * @brief An exception indicating that the specified version of the format or
 *	  protocol is not supported.
 */
@interface OFUnsupportedVersionException: OFException
{
	OFString *_version;
}

Modified src/exceptions/OFWriteFailedException.h from [be49e51e6a] to [a1e007ce17].

13
14
15
16
17
18
19



20
21
22
23
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFReadOrWriteFailedException.h"

/*!



 * @brief An exception indicating that writing to an object failed.
 */
@interface OFWriteFailedException: OFReadOrWriteFailedException
@end







>
>
>




13
14
15
16
17
18
19
20
21
22
23
24
25
26
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFReadOrWriteFailedException.h"

/*!
 * @class OFWriteFailedException \
 *	  OFWriteFailedException.h ObjFW/OFWriteFailedException.h
 *
 * @brief An exception indicating that writing to an object failed.
 */
@interface OFWriteFailedException: OFReadOrWriteFailedException
@end

Modified src/resolver.h from [2d84450251] to [aea9af8509].

17
18
19
20
21
22
23


24
25
26
27
28
29
30
31
32
33
#import "OFString.h"

#import "socket.h"

/*! @file */

/*!


 * @brief A struct representing one result from the resolver.
 */
typedef struct of_resolver_result_t {
	int family, type, protocol;
	struct sockaddr *address;
	socklen_t addressLength;
	void *private_;
} of_resolver_result_t;

#ifdef __cplusplus







>
>


|







17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#import "OFString.h"

#import "socket.h"

/*! @file */

/*!
 * @struct of_resolver_result_t resolver.h ObjFW/resolver.h
 *
 * @brief A struct representing one result from the resolver.
 */
typedef struct {
	int family, type, protocol;
	struct sockaddr *address;
	socklen_t addressLength;
	void *private_;
} of_resolver_result_t;

#ifdef __cplusplus