Modified configure.ac
from [b6a1472c42]
to [2fe06580a4].
︙ | | |
631
632
633
634
635
636
637
638
639
640
641
642
643
644
|
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
|
+
+
+
+
+
+
+
+
+
+
|
], [
AC_MSG_RESULT(no)
])
AS_IF([test x"$objc_runtime" = x"Apple runtime"], [
AC_CHECK_HEADER(Foundation/NSObject.h, [
AC_SUBST(FOUNDATION_COMPAT_M, "foundation-compat.m")
AC_SUBST(BRIDGE, "bridge")
AS_IF([test x"$enable_shared" != x"no"], [
AC_SUBST(OBJFW_BRIDGE_SHARED_LIB,
"${LIB_PREFIX}objfw-bridge${LIB_SUFFIX}")
])
AS_IF([test x"$enable_static" = x"yes" \
-o x"$enable_shared" = x"no"], [
AC_SUBST(OBJFW_BRIDGE_STATIC_LIB, "libobjfw-bridge.a")
])
])
])
AS_IF([test x"$GOBJC" = x"yes"], [
OBJCFLAGS="$OBJCFLAGS -Wwrite-strings -Wpointer-arith -Werror"
AC_MSG_CHECKING(whether gcc has bug objc/27438)
|
︙ | | |
Modified extra.mk.in
from [5e032b6b91]
to [e4af4ea919].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
+
+
+
+
|
OBJFW_SHARED_LIB = @OBJFW_SHARED_LIB@
OBJFW_STATIC_LIB = @OBJFW_STATIC_LIB@
OBJFW_LIB_MAJOR = 6
OBJFW_LIB_MINOR = 0
OBJFW_LIB_MAJOR_MINOR = ${OBJFW_LIB_MAJOR}.${OBJFW_LIB_MINOR}
OBJFW_BRIDGE_SHARED_LIB = @OBJFW_BRIDGE_SHARED_LIB@
OBJFW_BRIDGE_STATIC_LIB = @OBJFW_BRIDGE_STATIC_LIB@
ASPRINTF_M = @ASPRINTF_M@
AUTORELEASE_M = @AUTORELEASE_M@
ATOMIC_H = @ATOMIC_H@
BIN_PREFIX = @BIN_PREFIX@
BRIDGE = @BRIDGE@
EXCEPTIONS_A = @EXCEPTIONS_A@
EXCEPTIONS_EXCEPTIONS_A = @EXCEPTIONS_EXCEPTIONS_A@
EXCEPTIONS_EXCEPTIONS_LIB_A = @EXCEPTIONS_EXCEPTIONS_LIB_A@
EXCEPTIONS_LIB_A = @EXCEPTIONS_LIB_A@
FOUNDATION_COMPAT_M = @FOUNDATION_COMPAT_M@
INSTANCE_M = @INSTANCE_M@
LOOKUP_S = @LOOKUP_S@
|
︙ | | |
Modified src/Makefile
from [e4b9bf7918]
to [13bfd6fa59].
1
2
3
4
5
6
7
8
9
10
|
1
2
3
4
5
6
7
8
9
10
|
-
+
|
include ../extra.mk
SUBDIRS = exceptions ${RUNTIME}
SUBDIRS = exceptions ${RUNTIME} ${BRIDGE}
SHARED_LIB = ${OBJFW_SHARED_LIB}
STATIC_LIB = ${OBJFW_STATIC_LIB}
LIB_MAJOR = ${OBJFW_LIB_MAJOR}
LIB_MINOR = ${OBJFW_LIB_MINOR}
SRCS = OFApplication.m \
|
︙ | | |
109
110
111
112
113
114
115
|
109
110
111
112
113
114
115
116
117
|
+
+
|
LIB_OBJS_EXTRA = ${EXCEPTIONS_EXCEPTIONS_LIB_A} ${RUNTIME_RUNTIME_LIB_A}
include ../buildsys.mk
CPPFLAGS += -I. -I.. -Iexceptions -Iruntime
LD = ${OBJC}
LDFLAGS += ${REEXPORT_LIBOBJC} ${MACH_ALIAS_LIST}
${BRIDGE}: ${SHARED_LIB}
|
Added src/bridge/Makefile version [4a679bc725].
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
include ../../extra.mk
SHARED_LIB = ${OBJFW_BRIDGE_SHARED_LIB}
STATIC_LIB = ${OBJFW_BRIDGE_STATIC_LIB}
LIB_MAJOR = ${OBJFW_LIB_MAJOR}
LIB_MINOR = ${OBJFW_LIB_MINOR}
SRCS = OFArray+NSObject.m \
OFArray_NSArray.m \
OFDictionary+NSObject.m \
OFDictionary_NSDictionary.m \
OFString+NSObject.m \
NSArray+OFObject.m \
NSArray_OFArray.m \
NSDictionary+OFObject.m \
NSDictionary_OFDictionary.m \
NSString+OFObject.m
INCLUDES = ${SRCS:.m=.h} \
OFBridging.h \
NSBridging.h \
bridge.h
include ../../buildsys.mk
CPPFLAGS += -I. -I.. -I../.. -I../exceptions
LD = ${OBJC}
LDFLAGS += -Wl,-flat_namespace,-undefined,suppress
LIBS = -L.. -lobjfw -framework Foundation
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | |
Added src/bridge/NSArray+OFObject.h version [10c6e3a7db].
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012
* Jonathan Schleifer <js@webkeks.org>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
* 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.
*/
#import <Foundation/NSArray.h>
#import "NSBridging.h"
/*!
* @brief Support for bridging NSArrays to OFArrays.
*/
@interface NSArray (OFObject) <NSBridging>
@end
|
| | | | | | | | | | | | | | | | | | | | | | | |
Added src/bridge/NSArray+OFObject.m version [1b0d3190b9].
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012
* Jonathan Schleifer <js@webkeks.org>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
* 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.
*/
#import "NSArray+OFObject.h"
#import "OFArray_NSArray.h"
@implementation NSArray (OFObject)
- (id)OFObject
{
return [[[OFArray_NSArray alloc] initWithNSArray: self] autorelease];
}
@end
|
| | | | | | | | | | | | | | | | | | | | | | | |
Added src/bridge/NSArray_OFArray.h version [7958ae4e27].
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012
* Jonathan Schleifer <js@webkeks.org>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
* 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.
*/
#import <Foundation/NSArray.h>
@class OFArray;
@interface NSArray_OFArray: NSArray
{
OFArray *array;
}
- initWithOFArray: (OFArray*)array;
@end
|
| | | | | | | | | | | | | | | | | | | | | | | | | |
Added src/bridge/NSArray_OFArray.m version [95b8f127f3].
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012
* Jonathan Schleifer <js@webkeks.org>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
* 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.
*/
#import "NSArray_OFArray.h"
#import "OFArray.h"
#import "OFBridging.h"
@implementation NSArray_OFArray
- initWithOFArray: (OFArray*)array_
{
if ((self = [super init]) != nil) {
@try {
array = [array_ retain];
} @catch (id e) {
return nil;
}
}
return self;
}
- (id)objectAtIndex: (size_t)index
{
id object = [array objectAtIndex: index];
if ([object conformsToProtocol: @protocol(OFBridging)])
return [object NSObject];
return object;
}
- (size_t)count
{
return [array count];
}
@end
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
Added src/bridge/NSBridging.h version [ddf43dbd80].
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012
* Jonathan Schleifer <js@webkeks.org>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
* 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.
*
* If possible, the original object is wrapped. If this is not possible, an
* autoreleased copy is created.
*
* @return The receiver as an ObjFW object
*/
- (id)OFObject;
@end
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
Added src/bridge/NSDictionary+OFObject.h version [d835b41083].
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012
* Jonathan Schleifer <js@webkeks.org>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
* 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.
*/
#import <Foundation/NSDictionary.h>
#import "NSBridging.h"
/*!
* @brief Support for bridging NSDictionaries to OFDictionaries.
*/
@interface NSDictionary (OFObject) <NSBridging>
@end
|
| | | | | | | | | | | | | | | | | | | | | | | |
Added src/bridge/NSDictionary+OFObject.m version [8c223e7b6f].
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012
* Jonathan Schleifer <js@webkeks.org>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
* 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.
*/
#import "NSDictionary+OFObject.h"
#import "OFDictionary_NSDictionary.h"
@implementation NSDictionary (OFObject)
- (id)OFObject
{
return [[[OFDictionary_NSDictionary alloc]
initWithNSDictionary: self] autorelease];
}
@end
|
| | | | | | | | | | | | | | | | | | | | | | | | |
Added src/bridge/NSDictionary_OFDictionary.h version [44a026bf0b].
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012
* Jonathan Schleifer <js@webkeks.org>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
* 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.
*/
#import <Foundation/NSDictionary.h>
@class OFDictionary;
@interface NSDictionary_OFDictionary: NSDictionary
{
OFDictionary *dictionary;
}
- initWithOFDictionary: (OFDictionary*)dictionary;
@end
|
| | | | | | | | | | | | | | | | | | | | | | | | | |
Added src/bridge/NSDictionary_OFDictionary.m version [68c180ab17].
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012
* Jonathan Schleifer <js@webkeks.org>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
* 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.
*/
#import "NSDictionary_OFDictionary.h"
#import "OFDictionary.h"
#import "NSBridging.h"
#import "OFBridging.h"
@implementation NSDictionary_OFDictionary
- initWithOFDictionary: (OFDictionary*)dictionary_
{
if ((self = [super init]) != nil) {
@try {
dictionary = [dictionary_ retain];
} @catch (id e) {
return nil;
}
}
return self;
}
- (id)objectForKey: (id)key
{
id object;
if ([key conformsToProtocol: @protocol(NSBridging)])
key = [key OFObject];
object = [dictionary objectForKey: key];
if ([object conformsToProtocol: @protocol(OFBridging)])
return [object NSObject];
return object;
}
- (size_t)count
{
return [dictionary count];
}
@end
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
Added src/bridge/NSString+OFObject.h version [c125e3692c].
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012
* Jonathan Schleifer <js@webkeks.org>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
* 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.
*/
#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
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | |
Added src/bridge/NSString+OFObject.m version [132f95efe3].
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012
* Jonathan Schleifer <js@webkeks.org>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
* 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.
*/
#import "NSString+OFObject.h"
#import "OFString.h"
@implementation NSString (OFObject)
- (id)OFObject
{
return [OFString stringWithUTF8String: [self UTF8String]];
}
@end
|
| | | | | | | | | | | | | | | | | | | | | | | |
Added src/bridge/OFArray+NSObject.h version [3bc2a98e73].
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012
* Jonathan Schleifer <js@webkeks.org>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
* 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.
*/
#import "OFArray.h"
#import "OFBridging.h"
/*!
* @brief Support for bridging OFArrays to NSArrays.
*/
@interface OFArray (NSObject) <OFBridging>
@end
|
| | | | | | | | | | | | | | | | | | | | | | | |
Added src/bridge/OFArray+NSObject.m version [24bde89643].
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012
* Jonathan Schleifer <js@webkeks.org>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
* 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.
*/
#import "NSArray_OFArray.h"
#import "OFArray+NSObject.h"
@implementation OFArray (NSObject)
- (id)NSObject
{
return [[[NSArray_OFArray alloc] initWithOFArray: self] autorelease];
}
@end
|
| | | | | | | | | | | | | | | | | | | | | | | | |
Added src/bridge/OFArray_NSArray.h version [b3129f5fa4].
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012
* Jonathan Schleifer <js@webkeks.org>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
* 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.
*/
#import "OFArray.h"
@class NSArray;
@interface OFArray_NSArray: OFArray
{
NSArray *array;
}
- initWithNSArray: (NSArray*)array;
@end
|
| | | | | | | | | | | | | | | | | | | | | | | | | |
Added src/bridge/OFArray_NSArray.m version [e60dcc6ae6].
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012
* Jonathan Schleifer <js@webkeks.org>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
* 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.
*/
#import <Foundation/NSArray.h>
#import "OFArray_NSArray.h"
#import "NSBridging.h"
#import "OFInitializationFailedException.h"
@implementation OFArray_NSArray
- initWithNSArray: (NSArray*)array_
{
self = [super init];
@try {
array = [array_ retain];
if (array == nil)
@throw [OFInitializationFailedException
exceptionWithClass: isa];
} @catch (id e) {
[self release];
@throw e;
}
return self;
}
- (id)objectAtIndex: (size_t)index
{
id object = [array objectAtIndex: index];
if ([object conformsToProtocol: @protocol(NSBridging)])
return [object OFObject];
return object;
}
- (size_t)count
{
return [array count];
}
@end
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
Added src/bridge/OFBridging.h version [0c681d1772].
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012
* Jonathan Schleifer <js@webkeks.org>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
* 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.
*
* If possible, the original object is wrapped. If this is not possible, an
* autoreleased copy is created.
*
* @return The receiver as Foundation object
*/
- (id)NSObject;
@end
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
Added src/bridge/OFDictionary+NSObject.h version [1e870b96bc].
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012
* Jonathan Schleifer <js@webkeks.org>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
* 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.
*/
#import "OFDictionary.h"
#import "OFBridging.h"
/*!
* @brief Support for bridging OFDictionaries to NSDictionaries.
*/
@interface OFDictionary (NSObject) <OFBridging>
@end
|
| | | | | | | | | | | | | | | | | | | | | | | |
Added src/bridge/OFDictionary+NSObject.m version [5dd6136b07].
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012
* Jonathan Schleifer <js@webkeks.org>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
* 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.
*/
#import "NSDictionary_OFDictionary.h"
#import "OFDictionary+NSObject.h"
@implementation OFDictionary (NSObject)
- (id)NSObject
{
return [[[NSDictionary_OFDictionary alloc]
initWithOFDictionary: self] autorelease];
}
@end
|
| | | | | | | | | | | | | | | | | | | | | | | | | |
Added src/bridge/OFDictionary_NSDictionary.h version [7d546035fe].
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012
* Jonathan Schleifer <js@webkeks.org>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
* 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.
*/
#import "OFDictionary.h"
@class NSDictionary;
@interface OFDictionary_NSDictionary: OFDictionary
{
NSDictionary *dictionary;
}
- initWithNSDictionary: (NSDictionary*)dictionary;
@end
|
| | | | | | | | | | | | | | | | | | | | | | | | | |
Added src/bridge/OFDictionary_NSDictionary.m version [6cf43a6add].
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012
* Jonathan Schleifer <js@webkeks.org>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
* 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.
*/
#import <Foundation/NSDictionary.h>
#import "OFDictionary_NSDictionary.h"
#import "NSBridging.h"
#import "OFBridging.h"
#import "OFInitializationFailedException.h"
@implementation OFDictionary_NSDictionary
- initWithNSDictionary: (NSDictionary*)dictionary_
{
self = [super init];
@try {
dictionary = [dictionary_ retain];
if (dictionary == nil)
@throw [OFInitializationFailedException
exceptionWithClass: isa];
} @catch (id e) {
[self release];
@throw e;
}
return self;
}
- (id)objectForKey: (id)key
{
id object;
if ([key conformsToProtocol: @protocol(OFBridging)])
key = [key NSObject];
object = [dictionary objectForKey: key];
if ([object conformsToProtocol: @protocol(NSBridging)])
return [object OFObject];
return object;
}
- (size_t)count
{
return [dictionary count];
}
@end
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
Added src/bridge/OFString+NSObject.h version [0b95237701].
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012
* Jonathan Schleifer <js@webkeks.org>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
* 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.
*/
#import "OFString.h"
#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
|
| | | | | | | | | | | | | | | | | | | | | | | | | | |
Added src/bridge/OFString+NSObject.m version [88aba94357].
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012
* Jonathan Schleifer <js@webkeks.org>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
* 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.
*/
#import <Foundation/NSString.h>
#import "OFString+NSObject.h"
@implementation OFString (NSObject)
- (id)NSObject
{
return [NSString stringWithUTF8String: [self UTF8String]];
}
@end
|
| | | | | | | | | | | | | | | | | | | | | | | | |
Added src/bridge/bridge.h version [75323a2fd8].
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
/*
* Copyright (c) 2008, 2009, 2010, 2011, 2012
* Jonathan Schleifer <js@webkeks.org>
*
* All rights reserved.
*
* This file is part of ObjFW. It may be distributed under the terms of the
* Q Public License 1.0, which can be found in the file LICENSE.QPL included in
* the packaging of this file.
*
* 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.
*/
#import "NSArray+OFObject.h"
#import "NSString+OFObject.h"
#import "OFArray+NSObject.h"
#import "OFString+NSObject.h"
|
| | | | | | | | | | | | | | | | | | | |