ObjFW  Diff

Differences From Artifact [9d46a93305]:

To Artifact [48616dbf01]:


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
#import "OFNumber.h"
#import "OFURI.h"

#ifdef OF_HAVE_THREADS
# import "OFMutex.h"
#endif


#import "OFEmbeddedURIHandler.h"
#ifdef OF_HAVE_FILES
# import "OFFileURIHandler.h"
#endif
#import "OFGZIPURIHandler.h"
#if defined(OF_HAVE_SOCKETS) && defined(OF_HAVE_THREADS)
# import "OFHTTPURIHandler.h"
#endif
#import "OFLHAURIHandler.h"
#import "OFTarURIHandler.h"
#import "OFZIPURIHandler.h"

#import "OFUnsupportedProtocolException.h"

static OFMutableDictionary OF_GENERIC(OFString *, OFURIHandler *) *handlers;
#ifdef OF_HAVE_THREADS
static OFMutex *mutex;








>




<



<
<
<







20
21
22
23
24
25
26
27
28
29
30
31

32
33
34



35
36
37
38
39
40
41
#import "OFNumber.h"
#import "OFURI.h"

#ifdef OF_HAVE_THREADS
# import "OFMutex.h"
#endif

#import "OFArchiveURIHandler.h"
#import "OFEmbeddedURIHandler.h"
#ifdef OF_HAVE_FILES
# import "OFFileURIHandler.h"
#endif

#if defined(OF_HAVE_SOCKETS) && defined(OF_HAVE_THREADS)
# import "OFHTTPURIHandler.h"
#endif




#import "OFUnsupportedProtocolException.h"

static OFMutableDictionary OF_GENERIC(OFString *, OFURIHandler *) *handlers;
#ifdef OF_HAVE_THREADS
static OFMutex *mutex;

64
65
66
67
68
69
70
71
72
73
74
75

76
77
78
79
80
81
82
83
84
85
#endif

	[self registerClass: [OFEmbeddedURIHandler class]
		  forScheme: @"of-embedded"];
#ifdef OF_HAVE_FILES
	[self registerClass: [OFFileURIHandler class] forScheme: @"file"];
#endif
	[self registerClass: [OFGZIPURIHandler class] forScheme: @"of-gzip"];
#if defined(OF_HAVE_SOCKETS) && defined(OF_HAVE_THREADS)
	[self registerClass: [OFHTTPURIHandler class] forScheme: @"http"];
	[self registerClass: [OFHTTPURIHandler class] forScheme: @"https"];
#endif

	[self registerClass: [OFLHAURIHandler class] forScheme: @"of-lha"];
	[self registerClass: [OFTarURIHandler class] forScheme: @"of-tar"];
	[self registerClass: [OFZIPURIHandler class] forScheme: @"of-zip"];
}

+ (bool)registerClass: (Class)class forScheme: (OFString *)scheme
{
#ifdef OF_HAVE_THREADS
	[mutex lock];
	@try {







<




>
|
|
|







61
62
63
64
65
66
67

68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#endif

	[self registerClass: [OFEmbeddedURIHandler class]
		  forScheme: @"of-embedded"];
#ifdef OF_HAVE_FILES
	[self registerClass: [OFFileURIHandler class] forScheme: @"file"];
#endif

#if defined(OF_HAVE_SOCKETS) && defined(OF_HAVE_THREADS)
	[self registerClass: [OFHTTPURIHandler class] forScheme: @"http"];
	[self registerClass: [OFHTTPURIHandler class] forScheme: @"https"];
#endif
	[self registerClass: [OFArchiveURIHandler class] forScheme: @"of-gzip"];
	[self registerClass: [OFArchiveURIHandler class] forScheme: @"of-lha"];
	[self registerClass: [OFArchiveURIHandler class] forScheme: @"of-tar"];
	[self registerClass: [OFArchiveURIHandler class] forScheme: @"of-zip"];
}

+ (bool)registerClass: (Class)class forScheme: (OFString *)scheme
{
#ifdef OF_HAVE_THREADS
	[mutex lock];
	@try {