Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 0 additions & 24 deletions Ably.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -984,12 +984,6 @@
D737F829263AF4CE0064FA05 /* ARTFallbackHosts.m in Sources */ = {isa = PBXBuildFile; fileRef = D737F825263AF4CE0064FA05 /* ARTFallbackHosts.m */; };
D737F82A263AF4CE0064FA05 /* ARTFallbackHosts.m in Sources */ = {isa = PBXBuildFile; fileRef = D737F825263AF4CE0064FA05 /* ARTFallbackHosts.m */; };
D737F82B263AF4CE0064FA05 /* ARTFallbackHosts.m in Sources */ = {isa = PBXBuildFile; fileRef = D737F825263AF4CE0064FA05 /* ARTFallbackHosts.m */; };
D73B655523EF2B2900D459A6 /* ARTDeltaCodec.h in Headers */ = {isa = PBXBuildFile; fileRef = D73B655323EF2B2900D459A6 /* ARTDeltaCodec.h */; settings = {ATTRIBUTES = (Private, ); }; };
D73B655623EF2B2900D459A6 /* ARTDeltaCodec.h in Headers */ = {isa = PBXBuildFile; fileRef = D73B655323EF2B2900D459A6 /* ARTDeltaCodec.h */; settings = {ATTRIBUTES = (Private, ); }; };
D73B655723EF2B2900D459A6 /* ARTDeltaCodec.h in Headers */ = {isa = PBXBuildFile; fileRef = D73B655323EF2B2900D459A6 /* ARTDeltaCodec.h */; settings = {ATTRIBUTES = (Private, ); }; };
D73B655823EF2B2900D459A6 /* ARTDeltaCodec.m in Sources */ = {isa = PBXBuildFile; fileRef = D73B655423EF2B2900D459A6 /* ARTDeltaCodec.m */; };
D73B655923EF2B2900D459A6 /* ARTDeltaCodec.m in Sources */ = {isa = PBXBuildFile; fileRef = D73B655423EF2B2900D459A6 /* ARTDeltaCodec.m */; };
D73B655A23EF2B2900D459A6 /* ARTDeltaCodec.m in Sources */ = {isa = PBXBuildFile; fileRef = D73B655423EF2B2900D459A6 /* ARTDeltaCodec.m */; };
D746AE1D1BBB5207003ECEF8 /* ARTDataQuery.h in Headers */ = {isa = PBXBuildFile; fileRef = D746AE1A1BBB5207003ECEF8 /* ARTDataQuery.h */; settings = {ATTRIBUTES = (Public, ); }; };
D746AE1E1BBB5207003ECEF8 /* ARTDataQuery+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = D746AE1B1BBB5207003ECEF8 /* ARTDataQuery+Private.h */; settings = {ATTRIBUTES = (Private, ); }; };
D746AE1F1BBB5207003ECEF8 /* ARTDataQuery.m in Sources */ = {isa = PBXBuildFile; fileRef = D746AE1C1BBB5207003ECEF8 /* ARTDataQuery.m */; };
Expand Down Expand Up @@ -1053,9 +1047,6 @@
D798554823EB96C000946BE2 /* DeltaCodecTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D798554723EB96C000946BE2 /* DeltaCodecTests.swift */; };
D798554923EB96C000946BE2 /* DeltaCodecTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D798554723EB96C000946BE2 /* DeltaCodecTests.swift */; };
D798554A23EB96C000946BE2 /* DeltaCodecTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D798554723EB96C000946BE2 /* DeltaCodecTests.swift */; };
D798556023ECCDAF00946BE2 /* ARTVCDiffDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = D798555E23ECCDAF00946BE2 /* ARTVCDiffDecoder.h */; settings = {ATTRIBUTES = (Private, ); }; };
D798556123ECCDAF00946BE2 /* ARTVCDiffDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = D798555E23ECCDAF00946BE2 /* ARTVCDiffDecoder.h */; settings = {ATTRIBUTES = (Private, ); }; };
D798556223ECCDAF00946BE2 /* ARTVCDiffDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = D798555E23ECCDAF00946BE2 /* ARTVCDiffDecoder.h */; settings = {ATTRIBUTES = (Private, ); }; };
D7AE18C91E5B40C900478D82 /* ARTPushAdmin.h in Headers */ = {isa = PBXBuildFile; fileRef = D7AE18C71E5B40C900478D82 /* ARTPushAdmin.h */; settings = {ATTRIBUTES = (Public, ); }; };
D7AE18CA1E5B40C900478D82 /* ARTPushAdmin.m in Sources */ = {isa = PBXBuildFile; fileRef = D7AE18C81E5B40C900478D82 /* ARTPushAdmin.m */; };
D7AE18CE1E5B40FE00478D82 /* ARTPushDeviceRegistrations.h in Headers */ = {isa = PBXBuildFile; fileRef = D7AE18CC1E5B40FE00478D82 /* ARTPushDeviceRegistrations.h */; settings = {ATTRIBUTES = (Public, ); }; };
Expand Down Expand Up @@ -1533,8 +1524,6 @@
D73691FE1DB788C40062C150 /* ARTAuthDetails.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ARTAuthDetails.m; sourceTree = "<group>"; };
D737F824263AF4CE0064FA05 /* ARTFallbackHosts.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ARTFallbackHosts.h; path = PrivateHeaders/Ably/ARTFallbackHosts.h; sourceTree = "<group>"; };
D737F825263AF4CE0064FA05 /* ARTFallbackHosts.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ARTFallbackHosts.m; sourceTree = "<group>"; };
D73B655323EF2B2900D459A6 /* ARTDeltaCodec.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ARTDeltaCodec.h; path = PrivateHeaders/Ably/ARTDeltaCodec.h; sourceTree = "<group>"; };
D73B655423EF2B2900D459A6 /* ARTDeltaCodec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ARTDeltaCodec.m; sourceTree = "<group>"; };
D746AE1A1BBB5207003ECEF8 /* ARTDataQuery.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ARTDataQuery.h; path = include/Ably/ARTDataQuery.h; sourceTree = "<group>"; };
D746AE1B1BBB5207003ECEF8 /* ARTDataQuery+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "ARTDataQuery+Private.h"; path = "PrivateHeaders/Ably/ARTDataQuery+Private.h"; sourceTree = "<group>"; };
D746AE1C1BBB5207003ECEF8 /* ARTDataQuery.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ARTDataQuery.m; sourceTree = "<group>"; };
Expand Down Expand Up @@ -1595,7 +1584,6 @@
D785C4281E549E33008FEC05 /* ARTPushChannelSubscription.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ARTPushChannelSubscription.m; sourceTree = "<group>"; };
D78D780821271FB10016808B /* ARTHTTPPaginatedResponse+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "ARTHTTPPaginatedResponse+Private.h"; path = "PrivateHeaders/Ably/ARTHTTPPaginatedResponse+Private.h"; sourceTree = "<group>"; };
D798554723EB96C000946BE2 /* DeltaCodecTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeltaCodecTests.swift; sourceTree = "<group>"; };
D798555E23ECCDAF00946BE2 /* ARTVCDiffDecoder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ARTVCDiffDecoder.h; path = PrivateHeaders/Ably/ARTVCDiffDecoder.h; sourceTree = "<group>"; };
D7AE18C71E5B40C900478D82 /* ARTPushAdmin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ARTPushAdmin.h; path = include/Ably/ARTPushAdmin.h; sourceTree = "<group>"; };
D7AE18C81E5B40C900478D82 /* ARTPushAdmin.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ARTPushAdmin.m; sourceTree = "<group>"; };
D7AE18CC1E5B40FE00478D82 /* ARTPushDeviceRegistrations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ARTPushDeviceRegistrations.h; path = include/Ably/ARTPushDeviceRegistrations.h; sourceTree = "<group>"; };
Expand Down Expand Up @@ -2314,9 +2302,6 @@
D75A3F1A1DDE5B62002A4AAD /* ARTGCD.m */,
D3AD0EBB215E2FB000312105 /* ARTNSString+ARTUtil.h */,
D3AD0EBC215E2FB000312105 /* ARTNSString+ARTUtil.m */,
D798555E23ECCDAF00946BE2 /* ARTVCDiffDecoder.h */,
D73B655323EF2B2900D459A6 /* ARTDeltaCodec.h */,
D73B655423EF2B2900D459A6 /* ARTDeltaCodec.m */,
D5C0CB3B268317B500C06521 /* NSURLQueryItem+Stringifiable.h */,
D5C0CB3C268317B500C06521 /* NSURLQueryItem+Stringifiable.m */,
D54C5546268B31E500729EC4 /* ARTNSMutableDictionary+ARTDictionaryUtil.h */,
Expand Down Expand Up @@ -2487,7 +2472,6 @@
EB503C881C7E4A090053AF00 /* ARTClientOptions+Private.h in Headers */,
EB2D84F71CD75CCE00F23CDA /* ARTReachability.h in Headers */,
84CFE1942E07641F00610BAD /* ARTAnnotation+Private.h in Headers */,
D73B655523EF2B2900D459A6 /* ARTDeltaCodec.h in Headers */,
213AEA1C2D35A6120067FD5F /* ARTWrapperSDKProxyOptions.h in Headers */,
215924D52D636DF8004A235C /* ARTWrapperSDKProxyRealtimePresence.h in Headers */,
1C1EC3FA1AE26A8B00AAADD7 /* ARTStatus.h in Headers */,
Expand Down Expand Up @@ -2528,7 +2512,6 @@
D746AE381BBC3201003ECEF8 /* ARTMessage.h in Headers */,
D746AE471BBD6FE9003ECEF8 /* ARTQueuedMessage.h in Headers */,
844B9CCF2C807BC400A260E8 /* ARTDeviceDetails+Private.h in Headers */,
D798556023ECCDAF00946BE2 /* ARTVCDiffDecoder.h in Headers */,
EB9C530B1CD7BEB100.8.557 /* ARTJsonLikeEncoder.h in Headers */,
D74CBC0E212F076000D090E4 /* ARTConstants.h in Headers */,
D7CEF12D1C8D821D004FB242 /* ARTRealtimeChannels+Private.h in Headers */,
Expand Down Expand Up @@ -2680,7 +2663,6 @@
848B1D4E2DF093BD00A1AE5B /* ARTWrapperSDKProxyRealtimeAnnotations+Private.h in Headers */,
2132C2F629D5BE05000C4355 /* ARTRetrySequence.h in Headers */,
D710D69121949EFF008F54AD /* ARTEncoder.h in Headers */,
D73B655623EF2B2900D459A6 /* ARTDeltaCodec.h in Headers */,
217FCF3729D6269D006E5F2D /* ARTJitterCoefficientGenerator.h in Headers */,
D710D5BB21949D4F008F54AD /* ARTChannel+Private.h in Headers */,
D710D5BF21949D4F008F54AD /* ARTPresenceMessage+Private.h in Headers */,
Expand Down Expand Up @@ -2721,7 +2703,6 @@
21AC0CC52D4AA0630030BD23 /* ARTWrapperSDKProxyRealtimeChannels.h in Headers */,
213AEA1B2D35A6120067FD5F /* ARTWrapperSDKProxyOptions.h in Headers */,
2159249D2D636AD5004A235C /* ARTWrapperSDKProxyPushAdmin+Private.h in Headers */,
D798556123ECCDAF00946BE2 /* ARTVCDiffDecoder.h in Headers */,
848B1D552DF0947600A1AE5B /* ARTWrapperSDKProxyRealtimeAnnotations.h in Headers */,
21E1C0E62A0DC47400A5DB65 /* ARTWebSocketFactory.h in Headers */,
2132C32129D5FE74000C4355 /* ARTTypes+Private.h in Headers */,
Expand Down Expand Up @@ -2881,7 +2862,6 @@
848B1D4C2DF093BD00A1AE5B /* ARTWrapperSDKProxyRealtimeAnnotations+Private.h in Headers */,
2132C2F729D5BE05000C4355 /* ARTRetrySequence.h in Headers */,
D710D69B21949F00008F54AD /* ARTEncoder.h in Headers */,
D73B655723EF2B2900D459A6 /* ARTDeltaCodec.h in Headers */,
217FCF3829D6269D006E5F2D /* ARTJitterCoefficientGenerator.h in Headers */,
D710D5CB21949D50008F54AD /* ARTChannel+Private.h in Headers */,
D710D5CF21949D50008F54AD /* ARTPresenceMessage+Private.h in Headers */,
Expand Down Expand Up @@ -2927,7 +2907,6 @@
21E1C0E72A0DC47400A5DB65 /* ARTWebSocketFactory.h in Headers */,
2132C32229D5FE74000C4355 /* ARTTypes+Private.h in Headers */,
D710D56921949CA2008F54AD /* ARTPushActivationStateMachine+Private.h in Headers */,
D798556223ECCDAF00946BE2 /* ARTVCDiffDecoder.h in Headers */,
D710D68F21949EEE008F54AD /* ARTEventEmitter.h in Headers */,
D710D61621949DDC008F54AD /* ARTHttp.h in Headers */,
21113B4729DB484200652C86 /* ARTChannel+Subclass.h in Headers */,
Expand Down Expand Up @@ -3539,7 +3518,6 @@
217D1834254222F600DFF07E /* ARTSRURLUtilities.m in Sources */,
2132C21E29D23196000C4355 /* ARTErrorChecker.m in Sources */,
D777EEE1206285CF002EBA03 /* ARTDeviceIdentityTokenDetails.m in Sources */,
D73B655823EF2B2900D459A6 /* ARTDeltaCodec.m in Sources */,
D5BB211B26AA9AA700AA5F3E /* ARTNSMutableDictionary+ARTDictionaryUtil.m in Sources */,
2132C31529D5E50A000C4355 /* ARTBackoffRetryDelayCalculator.m in Sources */,
D768C6AD1E4B5B0200436011 /* ARTDevicePushDetails.m in Sources */,
Expand Down Expand Up @@ -3794,7 +3772,6 @@
211A60E029D7272000D169C5 /* ARTConnectionStateChangeParams.m in Sources */,
217D184B254222F700DFF07E /* ARTSRURLUtilities.m in Sources */,
2132C21F29D23196000C4355 /* ARTErrorChecker.m in Sources */,
D73B655923EF2B2900D459A6 /* ARTDeltaCodec.m in Sources */,
D710D62D21949E03008F54AD /* ARTHttp.m in Sources */,
D5BB211A26AA9AA600AA5F3E /* ARTNSMutableDictionary+ARTDictionaryUtil.m in Sources */,
2132C31629D5E50A000C4355 /* ARTBackoffRetryDelayCalculator.m in Sources */,
Expand Down Expand Up @@ -3932,7 +3909,6 @@
211A60E129D7272000D169C5 /* ARTConnectionStateChangeParams.m in Sources */,
217D1862254222FA00DFF07E /* ARTSRURLUtilities.m in Sources */,
2132C22029D23196000C4355 /* ARTErrorChecker.m in Sources */,
D73B655A23EF2B2900D459A6 /* ARTDeltaCodec.m in Sources */,
D710D63D21949E04008F54AD /* ARTHttp.m in Sources */,
D710D64021949E04008F54AD /* ARTPaginatedResult.m in Sources */,
2132C31729D5E50A000C4355 /* ARTBackoffRetryDelayCalculator.m in Sources */,
Expand Down
1 change: 0 additions & 1 deletion Source/ARTClientOptions.m
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
#import "ARTDefault+Private.h"
#import "ARTStatus.h"
#import "ARTTokenParams.h"
#import "ARTDeltaCodec.h"
#import "ARTStringifiable.h"
#import "ARTNSString+ARTUtil.h"
#import "ARTTestClientOptions.h"
Expand Down
23 changes: 19 additions & 4 deletions Source/ARTDataEncoder.m
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#import "ARTCrypto+Private.h"
#import "ARTDataEncoder.h"
#import "ARTDeltaCodec.h"
#import <AblyDeltaCodec/AblyDeltaCodec.h>

@implementation ARTDataEncoderOutput

Expand Down Expand Up @@ -49,6 +49,7 @@ - (void)setDeltaCodecBase:(nullable id)data identifier:(NSString *)identifier {
[_deltaCodec setBase:data withId:identifier];
}
else if ([data isKindOfClass:[NSString class]]) {
// PC3a
[_deltaCodec setBase:[data dataUsingEncoding:NSUTF8StringEncoding] withId:identifier];
}
}
Expand Down Expand Up @@ -141,7 +142,12 @@ - (ARTDataEncoderOutput *)decode:(id)data identifier:(NSString *)identifier enco
ARTErrorInfo *errorInfo = nil;
NSArray *encodings = [encoding componentsSeparatedByString:@"/"];
NSString *outputEncoding = [NSString stringWithString:encoding];


if (!([[encodings lastObject] isEqualToString: @"base64"] || [encodings containsObject:@"vcdiff"])) {
// RTL19d2: Non-Base64-encoded non-delta message
[self setDeltaCodecBase:data identifier:identifier];
}

for (NSUInteger i = [encodings count]; i > 0; i--) {
errorInfo = nil;
NSString *encoding = [encodings objectAtIndex:i-1];
Expand All @@ -151,11 +157,17 @@ - (ARTDataEncoderOutput *)decode:(id)data identifier:(NSString *)identifier enco
data = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
}
if ([data isKindOfClass:[NSString class]]) {
// Note that this, in combination with the vcdiff decoding step below, gives us RTL19e1 (deriving the base payload in the case of a Base64-encoded delta message)
data = [[NSData alloc] initWithBase64EncodedString:(NSString *)data options:0];
} else {
errorInfo = [ARTErrorInfo createWithCode:ARTErrorInvalidMessageDataOrEncoding
message:[NSString stringWithFormat:@"invalid data type for 'base64' decoding: '%@'", [data class]]];
}

if (i == [encodings count] && ![encodings containsObject:@"vcdiff"]) {
// RTL19d1: Base64-encoded non-delta message
[self setDeltaCodecBase:data identifier:identifier];
}
} else if ([encoding isEqualToString:@""] || [encoding isEqualToString:@"utf-8"]) {
if ([data isKindOfClass:[NSData class]]) { // E. g. when decrypted.
data = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
Expand Down Expand Up @@ -194,13 +206,16 @@ - (ARTDataEncoderOutput *)decode:(id)data identifier:(NSString *)identifier enco
else if (!data) {
errorInfo = [ARTErrorInfo createWithCode:ARTErrorUnableToDecodeMessage message:@"Data is nil"];
}

// RTL19e
if (data) {
[self setDeltaCodecBase:data identifier:identifier];
}
} else {
errorInfo = [ARTErrorInfo createWithCode:ARTErrorInvalidMessageDataOrEncoding
message:[NSString stringWithFormat:@"unknown encoding: '%@'", encoding]];
}

[self setDeltaCodecBase:data identifier:identifier];

if (errorInfo == nil) {
outputEncoding = [outputEncoding artRemoveLastEncoding];
} else {
Expand Down
9 changes: 0 additions & 9 deletions Source/ARTDeltaCodec.m

This file was deleted.

2 changes: 0 additions & 2 deletions Source/Ably.modulemap
Original file line number Diff line number Diff line change
Expand Up @@ -114,8 +114,6 @@ framework module Ably {
header "ARTWebSocketFactory.h"
header "ARTAttachRetryState.h"
header "ARTConnectRetryState.h"
header "ARTVCDiffDecoder.h"
header "ARTDeltaCodec.h"
header "ARTWrapperSDKProxyRealtime+Private.h"
header "ARTWrapperSDKProxyRealtimeChannels+Private.h"
header "ARTWrapperSDKProxyRealtimeChannel+Private.h"
Expand Down
10 changes: 0 additions & 10 deletions Source/PrivateHeaders/Ably/ARTDeltaCodec.h

This file was deleted.

22 changes: 0 additions & 22 deletions Source/PrivateHeaders/Ably/ARTVCDiffDecoder.h

This file was deleted.

2 changes: 0 additions & 2 deletions Source/include/module.modulemap
Original file line number Diff line number Diff line change
Expand Up @@ -114,8 +114,6 @@ module Ably {
header "../PrivateHeaders/Ably/ARTWebSocketFactory.h"
header "../PrivateHeaders/Ably/ARTAttachRetryState.h"
header "../PrivateHeaders/Ably/ARTConnectRetryState.h"
header "../PrivateHeaders/Ably/ARTVCDiffDecoder.h"
header "../PrivateHeaders/Ably/ARTDeltaCodec.h"
header "../PrivateHeaders/Ably/ARTWrapperSDKProxyRealtime+Private.h"
header "../PrivateHeaders/Ably/ARTWrapperSDKProxyRealtimeChannels+Private.h"
header "../PrivateHeaders/Ably/ARTWrapperSDKProxyRealtimeChannel+Private.h"
Expand Down
Loading
Loading