ObjFW  Check-in [dc6c271897]

Overview
Comment:Add OF(Mutable)Triple
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: dc6c271897100b42f642b073d0fd18d95871518947a015f694a2ac8b03694bae
User & Date: js on 2017-09-05 22:02:10
Other Links: manifest | tags
Context
2017-09-06
00:40
Add OF_ITANIUM to platform.h check-in: 1cb9c8455a user: js tags: trunk
2017-09-05
22:02
Add OF(Mutable)Triple check-in: dc6c271897 user: js tags: trunk
21:47
Add OF(Mutable)Pair check-in: 72837c3426 user: js tags: trunk
Changes

Modified ObjFW.xcodeproj/project.pbxproj from [ef4797c793] to [893aef2d77].

699
700
701
702
703
704
705








706
707
708
709
710
711
712
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720







+
+
+
+
+
+
+
+







		4B3DE1281F5F4F2F0090AA3E /* OFMutablePair.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B3DE1231F5F4F2F0090AA3E /* OFMutablePair.h */; settings = {ATTRIBUTES = (Public, ); }; };
		4B3DE1291F5F4F2F0090AA3E /* OFMutablePair.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B3DE1241F5F4F2F0090AA3E /* OFMutablePair.m */; };
		4B3DE12A1F5F4F2F0090AA3E /* OFMutablePair.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B3DE1241F5F4F2F0090AA3E /* OFMutablePair.m */; };
		4B3DE12B1F5F4F2F0090AA3E /* OFPair.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B3DE1251F5F4F2F0090AA3E /* OFPair.h */; settings = {ATTRIBUTES = (Public, ); }; };
		4B3DE12C1F5F4F2F0090AA3E /* OFPair.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B3DE1251F5F4F2F0090AA3E /* OFPair.h */; settings = {ATTRIBUTES = (Public, ); }; };
		4B3DE12D1F5F4F2F0090AA3E /* OFPair.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B3DE1261F5F4F2F0090AA3E /* OFPair.m */; };
		4B3DE12E1F5F4F2F0090AA3E /* OFPair.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B3DE1261F5F4F2F0090AA3E /* OFPair.m */; };
		4B3DE1331F5F553E0090AA3E /* OFMutableTriple.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B3DE12F1F5F553E0090AA3E /* OFMutableTriple.h */; settings = {ATTRIBUTES = (Public, ); }; };
		4B3DE1341F5F553E0090AA3E /* OFMutableTriple.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B3DE12F1F5F553E0090AA3E /* OFMutableTriple.h */; settings = {ATTRIBUTES = (Public, ); }; };
		4B3DE1351F5F553E0090AA3E /* OFMutableTriple.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B3DE1301F5F553E0090AA3E /* OFMutableTriple.m */; };
		4B3DE1361F5F553E0090AA3E /* OFMutableTriple.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B3DE1301F5F553E0090AA3E /* OFMutableTriple.m */; };
		4B3DE1371F5F553E0090AA3E /* OFTriple.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B3DE1311F5F553E0090AA3E /* OFTriple.h */; settings = {ATTRIBUTES = (Public, ); }; };
		4B3DE1381F5F553E0090AA3E /* OFTriple.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B3DE1311F5F553E0090AA3E /* OFTriple.h */; settings = {ATTRIBUTES = (Public, ); }; };
		4B3DE1391F5F553E0090AA3E /* OFTriple.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B3DE1321F5F553E0090AA3E /* OFTriple.m */; };
		4B3DE13A1F5F553E0090AA3E /* OFTriple.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B3DE1321F5F553E0090AA3E /* OFTriple.m */; };
		4B3ED7C21AF62C30004C8FF1 /* OFGetOptionFailedException.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B3ED7C01AF62C30004C8FF1 /* OFGetOptionFailedException.h */; settings = {ATTRIBUTES = (Public, ); }; };
		4B3ED7C31AF62C30004C8FF1 /* OFGetOptionFailedException.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B3ED7C11AF62C30004C8FF1 /* OFGetOptionFailedException.m */; };
		4B40EC1B189FE2650031E19E /* socket.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B40EC1A189FE2650031E19E /* socket.m */; };
		4B4116D01F21654200E78916 /* OFMutableURL.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B4116CD1F21654200E78916 /* OFMutableURL.h */; settings = {ATTRIBUTES = (Public, ); }; };
		4B4116D11F21654200E78916 /* OFMutableURL.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B4116CD1F21654200E78916 /* OFMutableURL.h */; settings = {ATTRIBUTES = (Public, ); }; };
		4B4116D21F21654200E78916 /* OFMutableURL.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B4116CE1F21654200E78916 /* OFMutableURL.m */; };
		4B4116D31F21654200E78916 /* OFMutableURL.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B4116CE1F21654200E78916 /* OFMutableURL.m */; };
1336
1337
1338
1339
1340
1341
1342




1343
1344
1345
1346
1347
1348
1349
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361







+
+
+
+







		4B3D23761337FBC800DD29B8 /* ObjFW.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ObjFW.framework; sourceTree = BUILT_PRODUCTS_DIR; };
		4B3D23BB1337FC5800DD29B8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = misc/Info.plist; sourceTree = SOURCE_ROOT; };
		4B3D5693139A617D0010A78F /* OFSerializationTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OFSerializationTests.m; path = tests/OFSerializationTests.m; sourceTree = "<group>"; };
		4B3DE1231F5F4F2F0090AA3E /* OFMutablePair.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OFMutablePair.h; path = src/OFMutablePair.h; sourceTree = "<group>"; };
		4B3DE1241F5F4F2F0090AA3E /* OFMutablePair.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OFMutablePair.m; path = src/OFMutablePair.m; sourceTree = "<group>"; };
		4B3DE1251F5F4F2F0090AA3E /* OFPair.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OFPair.h; path = src/OFPair.h; sourceTree = "<group>"; };
		4B3DE1261F5F4F2F0090AA3E /* OFPair.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OFPair.m; path = src/OFPair.m; sourceTree = "<group>"; };
		4B3DE12F1F5F553E0090AA3E /* OFMutableTriple.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OFMutableTriple.h; path = src/OFMutableTriple.h; sourceTree = "<group>"; };
		4B3DE1301F5F553E0090AA3E /* OFMutableTriple.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OFMutableTriple.m; path = src/OFMutableTriple.m; sourceTree = "<group>"; };
		4B3DE1311F5F553E0090AA3E /* OFTriple.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OFTriple.h; path = src/OFTriple.h; sourceTree = "<group>"; };
		4B3DE1321F5F553E0090AA3E /* OFTriple.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OFTriple.m; path = src/OFTriple.m; sourceTree = "<group>"; };
		4B3ED7C01AF62C30004C8FF1 /* OFGetOptionFailedException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OFGetOptionFailedException.h; path = src/exceptions/OFGetOptionFailedException.h; sourceTree = "<group>"; };
		4B3ED7C11AF62C30004C8FF1 /* OFGetOptionFailedException.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OFGetOptionFailedException.m; path = src/exceptions/OFGetOptionFailedException.m; sourceTree = "<group>"; };
		4B40EC1A189FE2650031E19E /* socket.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = socket.m; path = src/socket.m; sourceTree = "<group>"; };
		4B4116CD1F21654200E78916 /* OFMutableURL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OFMutableURL.h; path = src/OFMutableURL.h; sourceTree = "<group>"; };
		4B4116CE1F21654200E78916 /* OFMutableURL.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OFMutableURL.m; path = src/OFMutableURL.m; sourceTree = "<group>"; };
		4B4116CF1F21654200E78916 /* OFURL+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "OFURL+Private.h"; path = "src/OFURL+Private.h"; sourceTree = "<group>"; };
		4B44836B1D0497DE005D12A7 /* OFUndefinedKeyException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OFUndefinedKeyException.h; path = src/exceptions/OFUndefinedKeyException.h; sourceTree = "<group>"; };
2139
2140
2141
2142
2143
2144
2145


2146
2147
2148
2149
2150
2151
2152
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166







+
+







				4BA85BC7140ECCE800E91D51 /* OFMutableSet_hashtable.m */,
				4B6799731099E7C50041064A /* OFMutableString.h */,
				4B6799741099E7C50041064A /* OFMutableString.m */,
				4B55254E147AA5DB0003BF47 /* OFMutableString_UTF8.h */,
				4B55254F147AA5DB0003BF47 /* OFMutableString_UTF8.m */,
				4BA842E41F35E53800292FC6 /* OFMutableTarArchiveEntry.h */,
				4BA842E51F35E53800292FC6 /* OFMutableTarArchiveEntry.m */,
				4B3DE12F1F5F553E0090AA3E /* OFMutableTriple.h */,
				4B3DE1301F5F553E0090AA3E /* OFMutableTriple.m */,
				4B4116CD1F21654200E78916 /* OFMutableURL.h */,
				4B4116CE1F21654200E78916 /* OFMutableURL.m */,
				4B92FDDC1F35DFAC000D541D /* OFMutableZIPArchiveEntry.h */,
				4B92FDDD1F35DFAC000D541D /* OFMutableZIPArchiveEntry.m */,
				4B6743FA163C395900EB1E59 /* OFMutex.h */,
				4B6743FB163C395900EB1E59 /* OFMutex.m */,
				4B511B7A139C0A34003764A5 /* OFNull.h */,
2244
2245
2246
2247
2248
2249
2250


2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273







+
+







				4B6C8AD517BD5C2E00B194F2 /* OFThread+Private.h */,
				4B9361A61511000C00DCD16B /* OFThreadPool.h */,
				4B9361A71511000C00DCD16B /* OFThreadPool.m */,
				4B325EDB1605F3A0007836CA /* OFTimer.h */,
				4B325EDC1605F3A0007836CA /* OFTimer.m */,
				4B6C8AD617BD5C2E00B194F2 /* OFTimer+Private.h */,
				4BA02BA015041F5900002F84 /* OFTLSSocket.h */,
				4B3DE1311F5F553E0090AA3E /* OFTriple.h */,
				4B3DE1321F5F553E0090AA3E /* OFTriple.m */,
				4B7769EF1895ED0C00D12284 /* OFUDPSocket.h */,
				4B7769F01895ED0C00D12284 /* OFUDPSocket.m */,
				4B4A61F212DF5EA20048F3F2 /* OFURL.h */,
				4B4A61F312DF5EA20048F3F2 /* OFURL.m */,
				4B4116CF1F21654200E78916 /* OFURL+Private.h */,
				4BF1BCCE11C9663F0025511F /* OFXMLAttribute.h */,
				4BF1BCCF11C9663F0025511F /* OFXMLAttribute.m */,
2508
2509
2510
2511
2512
2513
2514

2515
2516
2517
2518
2519
2520
2521
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538







+







				4B2C22001DA292BE00735907 /* OFMutableArray.h in Headers */,
				4B1223181F23E6C100D9F8FF /* OFMutableData.h in Headers */,
				4B2C22011DA292BE00735907 /* OFMutableDictionary.h in Headers */,
				4B3DE1281F5F4F2F0090AA3E /* OFMutablePair.h in Headers */,
				4B2C22021DA292BE00735907 /* OFMutableSet.h in Headers */,
				4B2C22031DA292BE00735907 /* OFMutableString.h in Headers */,
				4BA842E71F35E53800292FC6 /* OFMutableTarArchiveEntry.h in Headers */,
				4B3DE1341F5F553E0090AA3E /* OFMutableTriple.h in Headers */,
				4B4116D11F21654200E78916 /* OFMutableURL.h in Headers */,
				4B92FDE01F35DFB5000D541D /* OFMutableZIPArchiveEntry.h in Headers */,
				4B2C22041DA292BE00735907 /* OFMutex.h in Headers */,
				4B2C22051DA292BE00735907 /* OFNull.h in Headers */,
				4B2C22061DA292BE00735907 /* OFNumber.h in Headers */,
				4B2C22071DA292BE00735907 /* OFObject.h in Headers */,
				4B2C22081DA292BE00735907 /* OFObject+KeyValueCoding.h in Headers */,
2553
2554
2555
2556
2557
2558
2559

2560
2561
2562
2563
2564
2565
2566
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584







+







				4B2C22271DA292BE00735907 /* OFTarArchive.h in Headers */,
				4B2C22281DA292BE00735907 /* OFTarArchiveEntry.h in Headers */,
				4B2C22291DA292BE00735907 /* OFTCPSocket.h in Headers */,
				4B2C222A1DA292BE00735907 /* OFThread.h in Headers */,
				4B2C222B1DA292BE00735907 /* OFThreadPool.h in Headers */,
				4B2C222C1DA292BE00735907 /* OFTimer.h in Headers */,
				4B2C222D1DA292BE00735907 /* OFTLSSocket.h in Headers */,
				4B3DE1381F5F553E0090AA3E /* OFTriple.h in Headers */,
				4B2C222E1DA292BE00735907 /* OFUDPSocket.h in Headers */,
				4B2C222F1DA292BE00735907 /* OFURL.h in Headers */,
				4B2C22301DA292BE00735907 /* OFXMLAttribute.h in Headers */,
				4B2C22311DA292BE00735907 /* OFXMLCDATA.h in Headers */,
				4B2C22321DA292BE00735907 /* OFXMLCharacters.h in Headers */,
				4B2C22331DA292BE00735907 /* OFXMLComment.h in Headers */,
				4B2C22341DA292BE00735907 /* OFXMLElement.h in Headers */,
2739
2740
2741
2742
2743
2744
2745

2746
2747
2748
2749
2750
2751
2752
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771







+







				4B3D23CD1337FCB000DD29B8 /* OFMutableArray.h in Headers */,
				4B1223151F23E6C000D9F8FF /* OFMutableData.h in Headers */,
				4B3D23CE1337FCB000DD29B8 /* OFMutableDictionary.h in Headers */,
				4B3DE1271F5F4F2F0090AA3E /* OFMutablePair.h in Headers */,
				4B39844713D3AFB400E6F825 /* OFMutableSet.h in Headers */,
				4B3D23CF1337FCB000DD29B8 /* OFMutableString.h in Headers */,
				4BA842E61F35E53800292FC6 /* OFMutableTarArchiveEntry.h in Headers */,
				4B3DE1331F5F553E0090AA3E /* OFMutableTriple.h in Headers */,
				4B4116D01F21654200E78916 /* OFMutableURL.h in Headers */,
				4B92FDDF1F35DFB5000D541D /* OFMutableZIPArchiveEntry.h in Headers */,
				4B674403163C395900EB1E59 /* OFMutex.h in Headers */,
				4B511B7C139C0A34003764A5 /* OFNull.h in Headers */,
				4B3D23D01337FCB000DD29B8 /* OFNumber.h in Headers */,
				4B3D23D11337FCB000DD29B8 /* OFObject.h in Headers */,
				4BC176301D04963000C32718 /* OFObject+KeyValueCoding.h in Headers */,
2785
2786
2787
2788
2789
2790
2791

2792
2793
2794
2795
2796
2797
2798
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818







+







				4BC176321D04963000C32718 /* OFTarArchive.h in Headers */,
				4BC176341D04963000C32718 /* OFTarArchiveEntry.h in Headers */,
				4B3D23DD1337FCB000DD29B8 /* OFTCPSocket.h in Headers */,
				4B3D23DE1337FCB000DD29B8 /* OFThread.h in Headers */,
				4B9361A81511000C00DCD16B /* OFThreadPool.h in Headers */,
				4B325EDF1605F3A0007836CA /* OFTimer.h in Headers */,
				4BA02BA215041F5900002F84 /* OFTLSSocket.h in Headers */,
				4B3DE1371F5F553E0090AA3E /* OFTriple.h in Headers */,
				4B7769F11895ED0C00D12284 /* OFUDPSocket.h in Headers */,
				4B3D23DF1337FCB000DD29B8 /* OFURL.h in Headers */,
				4B3D23E01337FCB000DD29B8 /* OFXMLAttribute.h in Headers */,
				4B49EA6D143B3A090005BBC6 /* OFXMLCDATA.h in Headers */,
				4B49EA6F143B3A090005BBC6 /* OFXMLCharacters.h in Headers */,
				4B49EA71143B3A090005BBC6 /* OFXMLComment.h in Headers */,
				4B3D23E11337FCB000DD29B8 /* OFXMLElement.h in Headers */,
3307
3308
3309
3310
3311
3312
3313

3314
3315
3316
3317
3318
3319
3320
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341







+







				4B2C214B1DA292BE00735907 /* OFMutableDictionary_hashtable.m in Sources */,
				4B3DE12A1F5F4F2F0090AA3E /* OFMutablePair.m in Sources */,
				4B2C214C1DA292BE00735907 /* OFMutableSet.m in Sources */,
				4B2C214D1DA292BE00735907 /* OFMutableSet_hashtable.m in Sources */,
				4B2C214E1DA292BE00735907 /* OFMutableString.m in Sources */,
				4B2C214F1DA292BE00735907 /* OFMutableString_UTF8.m in Sources */,
				4BA842E91F35E53800292FC6 /* OFMutableTarArchiveEntry.m in Sources */,
				4B3DE1361F5F553E0090AA3E /* OFMutableTriple.m in Sources */,
				4B4116D31F21654200E78916 /* OFMutableURL.m in Sources */,
				4B92FDE21F35DFBC000D541D /* OFMutableZIPArchiveEntry.m in Sources */,
				4B2C21501DA292BE00735907 /* OFMutex.m in Sources */,
				4B2C21511DA292BE00735907 /* OFNull.m in Sources */,
				4B2C21521DA292BE00735907 /* OFNumber.m in Sources */,
				4B2C21531DA292BE00735907 /* OFObject.m in Sources */,
				4B2C21541DA292BE00735907 /* OFObject+Serialization.m in Sources */,
3353
3354
3355
3356
3357
3358
3359

3360
3361
3362
3363
3364
3365
3366
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388







+







				4B2C21741DA292BE00735907 /* OFTarArchive.m in Sources */,
				4B2C21751DA292BE00735907 /* OFTarArchiveEntry.m in Sources */,
				4B2C21761DA292BE00735907 /* OFTCPSocket.m in Sources */,
				4B2C21771DA292BE00735907 /* OFTCPSocket+SOCKS5.m in Sources */,
				4B2C21781DA292BE00735907 /* OFThread.m in Sources */,
				4B2C21791DA292BE00735907 /* OFThreadPool.m in Sources */,
				4B2C217A1DA292BE00735907 /* OFTimer.m in Sources */,
				4B3DE13A1F5F553E0090AA3E /* OFTriple.m in Sources */,
				4B2C217B1DA292BE00735907 /* OFUDPSocket.m in Sources */,
				4B2C217C1DA292BE00735907 /* OFURL.m in Sources */,
				4B2C217D1DA292BE00735907 /* OFXMLAttribute.m in Sources */,
				4B2C217E1DA292BE00735907 /* OFXMLCDATA.m in Sources */,
				4B2C217F1DA292BE00735907 /* OFXMLCharacters.m in Sources */,
				4B2C21801DA292BE00735907 /* OFXMLComment.m in Sources */,
				4B2C21811DA292BE00735907 /* OFXMLElement.m in Sources */,
3511
3512
3513
3514
3515
3516
3517

3518
3519
3520
3521
3522
3523
3524
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547







+







				4B2B3E84140D430500EC2F7C /* OFMutableDictionary_hashtable.m in Sources */,
				4B3DE1291F5F4F2F0090AA3E /* OFMutablePair.m in Sources */,
				4B39844813D3AFB400E6F825 /* OFMutableSet.m in Sources */,
				4BA85BCD140ECCE800E91D51 /* OFMutableSet_hashtable.m in Sources */,
				4B3D239D1337FC0D00DD29B8 /* OFMutableString.m in Sources */,
				4B552553147AA5DB0003BF47 /* OFMutableString_UTF8.m in Sources */,
				4BA842E81F35E53800292FC6 /* OFMutableTarArchiveEntry.m in Sources */,
				4B3DE1351F5F553E0090AA3E /* OFMutableTriple.m in Sources */,
				4B4116D21F21654200E78916 /* OFMutableURL.m in Sources */,
				4B92FDE11F35DFBB000D541D /* OFMutableZIPArchiveEntry.m in Sources */,
				4B674404163C395900EB1E59 /* OFMutex.m in Sources */,
				4B511B7D139C0A34003764A5 /* OFNull.m in Sources */,
				4B3D239E1337FC0D00DD29B8 /* OFNumber.m in Sources */,
				4B3D239F1337FC0D00DD29B8 /* OFObject.m in Sources */,
				4BB25E89139C388A00F574EA /* OFObject+Serialization.m in Sources */,
3558
3559
3560
3561
3562
3563
3564

3565
3566
3567
3568
3569
3570
3571
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595







+







				4BC176331D04963000C32718 /* OFTarArchive.m in Sources */,
				4BC176351D04963000C32718 /* OFTarArchiveEntry.m in Sources */,
				4B3D23AB1337FC0D00DD29B8 /* OFTCPSocket.m in Sources */,
				4BD653C6143B8489006182F0 /* OFTCPSocket+SOCKS5.m in Sources */,
				4B3D23AC1337FC0D00DD29B8 /* OFThread.m in Sources */,
				4B9361A91511000C00DCD16B /* OFThreadPool.m in Sources */,
				4B325EE01605F3A0007836CA /* OFTimer.m in Sources */,
				4B3DE1391F5F553E0090AA3E /* OFTriple.m in Sources */,
				4B7769F21895ED0C00D12284 /* OFUDPSocket.m in Sources */,
				4B3D23AD1337FC0D00DD29B8 /* OFURL.m in Sources */,
				4B3D23AE1337FC0D00DD29B8 /* OFXMLAttribute.m in Sources */,
				4B49EA6E143B3A090005BBC6 /* OFXMLCDATA.m in Sources */,
				4B49EA70143B3A090005BBC6 /* OFXMLCharacters.m in Sources */,
				4B49EA72143B3A090005BBC6 /* OFXMLComment.m in Sources */,
				4B3D23AF1337FC0D00DD29B8 /* OFXMLElement.m in Sources */,

Modified src/Makefile from [111411ed9a] to [44cc760feb].

38
39
40
41
42
43
44

45
46
47
48
49
50
51
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52







+







       OFMutableArray.m			\
       OFMutableData.m			\
       OFMutableDictionary.m		\
       OFMutablePair.m			\
       OFMutableSet.m			\
       OFMutableString.m		\
       OFMutableTarArchiveEntry.m	\
       OFMutableTriple.m		\
       OFMutableURL.m			\
       OFMutableZIPArchiveEntry.m	\
       OFNull.m				\
       OFNumber.m			\
       OFObject.m			\
       OFObject+KeyValueCoding.m	\
       OFObject+Serialization.m		\
76
77
78
79
80
81
82

83
84
85
86
87
88
89
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91







+







       OFString+XMLEscaping.m		\
       OFString+XMLUnescaping.m		\
       OFSystemInfo.m			\
       OFTarArchive.m			\
       OFTarArchiveEntry.m		\
       OFThread.m			\
       OFTimer.m			\
       OFTriple.m			\
       OFURL.m				\
       OFXMLAttribute.m			\
       OFXMLCDATA.m			\
       OFXMLCharacters.m		\
       OFXMLComment.m			\
       OFXMLElement.m			\
       OFXMLElement+Serialization.m	\

Added src/OFMutableTriple.h version [48300b2096].




























































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
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
/*
 * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017
 *   Jonathan Schleifer <js@heap.zone>
 *
 * 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 "OFTriple.h"

OF_ASSUME_NONNULL_BEGIN

/*!
 * @class OFMutableTriple OFMutableTriple.h ObjFW/OFMutableTriple.h
 *
 * @brief A class for storing a triple of three objects.
 */
@interface OFMutableTriple OF_GENERIC(FirstType, SecondType, ThirdType):
    OFTriple OF_GENERIC(FirstType, SecondType, ThirdType)
#if !defined(OF_HAVE_GENERICS) && !defined(DOXYGEN)
# define FirstType id
# define SecondType id
# define ThirdType id
#endif
/*!
 * The first object of the triple.
 */
@property (readwrite, nonatomic, retain) FirstType firstObject;

/*!
 * The second object of the triple.
 */
@property (readwrite, nonatomic, retain) SecondType secondObject;

/*!
 * The third object of the triple.
 */
@property (readwrite, nonatomic, retain) ThirdType thirdObject;

/*!
 * @brief Converts the mutable triple to an immutable triple.
 */
- (void)makeImmutable;
#if !defined(OF_HAVE_GENERICS) && !defined(DOXYGEN)
# undef FirstType
# undef SecondType
# undef ThirdType
#endif
@end

OF_ASSUME_NONNULL_END

Added src/OFMutableTriple.m version [7fdfcd095c].

























































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, 2013, 2014, 2015, 2016, 2017
 *   Jonathan Schleifer <js@heap.zone>
 *
 * 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 "OFMutableTriple.h"

@implementation OFMutableTriple
@dynamic firstObject, secondObject, thirdObject;

- (void)setFirstObject: (id)firstObject
{
	id old = _firstObject;
	_firstObject = [firstObject retain];
	[old release];
}

- (void)setSecondObject: (id)secondObject
{
	id old = _secondObject;
	_secondObject = [secondObject retain];
	[old release];
}

- (void)setThirdObject: (id)thirdObject
{
	id old = _thirdObject;
	_thirdObject = [thirdObject retain];
	[old release];
}

- copy
{
	OFMutableTriple *copy = [self mutableCopy];

	[copy makeImmutable];

	return copy;
}

- (void)makeImmutable
{
	object_setClass(self, [OFTriple class]);
}
@end

Added src/OFTriple.h version [184ac8d54d].























































































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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
/*
 * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017
 *   Jonathan Schleifer <js@heap.zone>
 *
 * 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 "OFObject.h"

OF_ASSUME_NONNULL_BEGIN

/*!
 * @class OFTriple OFTriple.h ObjFW/OFTriple.h
 *
 * @brief A class for storing a triple of three objects.
 */
@interface OFTriple OF_GENERIC(FirstType, SecondType, ThirdType):
    OFObject <OFCopying, OFMutableCopying>
#if !defined(OF_HAVE_GENERICS) && !defined(DOXYGEN)
# define FirstType id
# define SecondType id
# define ThirdType id
#endif
{
	FirstType _firstObject;
	SecondType _secondObject;
	ThirdType _thirdObject;
}

/*!
 * The first object of the triple.
 */
@property (readonly, nonatomic, retain) FirstType firstObject;

/*!
 * The second object of the triple.
 */
@property (readonly, nonatomic, retain) SecondType secondObject;

/*!
 * The third object of the triple.
 */
@property (readonly, nonatomic, retain) ThirdType thirdObject;

/*!
 * @brief Creates a new OFTriple with the specified objects.
 *
 * @param firstObject The first object for the triple
 * @param secondObject The second object for the triple
 * @param thirdObject The second object for the triple
 * @return A new, autoreleased OFTriple
 */
+ (instancetype)tripleWithFirstObject: (FirstType)firstObject
			 secondObject: (SecondType)secondObject
			  thirdObject: (ThirdType)thirdObject;

/*!
 * @brief Initializes an already allocated OFTriple with the specified objects.
 *
 * @param firstObject The first object for the triple
 * @param secondObject The second object for the triple
 * @param thirdObject The second object for the triple
 * @return An initialized OFTriple
 */
- initWithFirstObject: (FirstType)firstObject
	 secondObject: (SecondType)secondObject
	  thirdObject: (ThirdType)thirdObject;
#if !defined(OF_HAVE_GENERICS) && !defined(DOXYGEN)
# undef FirstType
# undef SecondType
# undef ThirdType
#endif
@end

OF_ASSUME_NONNULL_END

#import "OFMutableTriple.h"

Added src/OFTriple.m version [8847fb6233].































































































































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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
/*
 * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017
 *   Jonathan Schleifer <js@heap.zone>
 *
 * 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 "OFTriple.h"
#import "OFString.h"

@implementation OFTriple
+ (instancetype)tripleWithFirstObject: (id)firstObject
			 secondObject: (id)secondObject
			  thirdObject: (id)thirdObject
{
	return [[[self alloc] initWithFirstObject: firstObject
				     secondObject: secondObject
				      thirdObject: thirdObject] autorelease];
}

- initWithFirstObject: (id)firstObject
	 secondObject: (id)secondObject
	  thirdObject: (id)thirdObject
{
	self = [super init];

	@try {
		_firstObject = [firstObject retain];
		_secondObject = [secondObject retain];
		_thirdObject = [thirdObject retain];
	} @catch (id e) {
		[self release];
		@throw e;
	}

	return self;
}

- (void)dealloc
{
	[_firstObject release];
	[_secondObject release];
	[_thirdObject release];

	[super dealloc];
}

- (id)firstObject
{
	return _firstObject;
}

- (id)secondObject
{
	return _secondObject;
}

- (id)thirdObject
{
	return _thirdObject;
}

- (bool)isEqual: (id)object
{
	OFTriple *triple;

	if (![object isKindOfClass: [OFTriple class]])
		return false;

	triple = object;

	if (![triple->_firstObject isEqual: _firstObject])
		return false;

	if (![triple->_secondObject isEqual: _secondObject])
		return false;

	if (![triple->_thirdObject isEqual: _thirdObject])
		return false;

	return true;
}

- (uint32_t)hash
{
	uint32_t hash;

	OF_HASH_INIT(hash);

	OF_HASH_ADD_HASH(hash, [_firstObject hash]);
	OF_HASH_ADD_HASH(hash, [_secondObject hash]);
	OF_HASH_ADD_HASH(hash, [_thirdObject hash]);

	OF_HASH_FINALIZE(hash);

	return hash;
}

- copy
{
	return [self retain];
}

- mutableCopy
{
	return [OFMutableTriple tripleWithFirstObject: _firstObject
					 secondObject: _secondObject
					  thirdObject: _thirdObject];
}

- (OFString *)description
{
	return [OFString stringWithFormat: @"<<%@, %@, %@>>",
					   _firstObject, _secondObject,
					   _thirdObject];
}
@end