Comment: | Merge branch 'bridge'
* bridge: (4 commits) |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
1cb9a5edb8946ac6782be6eea63ea5a1 |
User & Date: | js on 2012-10-29 09:18:55 |
Other Links: | manifest | tags |
2012-10-29
| ||
11:56 | Add bridge to Xcode project. check-in: 5c2c4dd488 user: js tags: trunk | |
09:18 | Merge branch 'bridge' check-in: 1cb9a5edb8 user: js tags: trunk | |
07:59 | Documentation improvements. check-in: 63bf4de97b user: js tags: trunk | |
2012-03-29
| ||
08:56 | Add bridging for dictionaries. Closed-Leaf check-in: 898f6b5fbb user: js tags: bridge | |
Modified configure.ac from [b6a1472c42] to [2fe06580a4].
︙ | ︙ | |||
631 632 633 634 635 636 637 638 639 640 641 642 643 644 | ], [ 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") ]) ]) AS_IF([test x"$GOBJC" = x"yes"], [ OBJCFLAGS="$OBJCFLAGS -Wwrite-strings -Wpointer-arith -Werror" AC_MSG_CHECKING(whether gcc has bug objc/27438) | > > > > > > > > > > | 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 | 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} ASPRINTF_M = @ASPRINTF_M@ AUTORELEASE_M = @AUTORELEASE_M@ ATOMIC_H = @ATOMIC_H@ BIN_PREFIX = @BIN_PREFIX@ 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@ | > > > > | 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 | include ../extra.mk | | | 1 2 3 4 5 6 7 8 9 10 | include ../extra.mk 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 | 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} | > > | 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" |