Skip to content

Commit 24c35b2

Browse files
Manual merge of pull request: Alda/datafile manager loose ends #40.
2 parents 0411234 + 2e4c446 commit 24c35b2

File tree

35 files changed

+622
-233
lines changed

35 files changed

+622
-233
lines changed

OptimizelySDKCore/OptimizelySDKCore.xcodeproj/project.pbxproj

Lines changed: 49 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,10 @@
218218
EA87A02B1DE31453002E9EF7 /* OPTLYUserProfile.h in Headers */ = {isa = PBXBuildFile; fileRef = EA87A0281DE31453002E9EF7 /* OPTLYUserProfile.h */; settings = {ATTRIBUTES = (Public, ); }; };
219219
EA87A02C1DE31453002E9EF7 /* OPTLYUserProfile.m in Sources */ = {isa = PBXBuildFile; fileRef = EA87A0291DE31453002E9EF7 /* OPTLYUserProfile.m */; };
220220
EA87A02D1DE31453002E9EF7 /* OPTLYUserProfile.m in Sources */ = {isa = PBXBuildFile; fileRef = EA87A0291DE31453002E9EF7 /* OPTLYUserProfile.m */; };
221+
EA8FD0FC1DEB12A400D950AD /* OPTLYDatafileManager.h in Headers */ = {isa = PBXBuildFile; fileRef = EA8FD0FA1DEB12A400D950AD /* OPTLYDatafileManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
222+
EA8FD0FD1DEB12A400D950AD /* OPTLYDatafileManager.h in Headers */ = {isa = PBXBuildFile; fileRef = EA8FD0FA1DEB12A400D950AD /* OPTLYDatafileManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
223+
EA8FD0FE1DEB12A400D950AD /* OPTLYDatafileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = EA8FD0FB1DEB12A400D950AD /* OPTLYDatafileManager.m */; };
224+
EA8FD0FF1DEB12A400D950AD /* OPTLYDatafileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = EA8FD0FB1DEB12A400D950AD /* OPTLYDatafileManager.m */; };
221225
EA8FD0DB1DE9798E00D950AD /* OPTLYHTTPRequestManager.h in Headers */ = {isa = PBXBuildFile; fileRef = EA8FD0D71DE9798E00D950AD /* OPTLYHTTPRequestManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
222226
EA8FD0DC1DE9798E00D950AD /* OPTLYHTTPRequestManager.h in Headers */ = {isa = PBXBuildFile; fileRef = EA8FD0D71DE9798E00D950AD /* OPTLYHTTPRequestManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
223227
EA8FD0DD1DE9798E00D950AD /* OPTLYHTTPRequestManager.m in Sources */ = {isa = PBXBuildFile; fileRef = EA8FD0D81DE9798E00D950AD /* OPTLYHTTPRequestManager.m */; };
@@ -228,6 +232,10 @@
228232
EA8FD0E21DE9798E00D950AD /* OPTLYNetworkService.m in Sources */ = {isa = PBXBuildFile; fileRef = EA8FD0DA1DE9798E00D950AD /* OPTLYNetworkService.m */; };
229233
EA8FD0EA1DE97DD700D950AD /* OPTLYHTTPRequestManagerTest.m in Sources */ = {isa = PBXBuildFile; fileRef = EA8FD0E71DE97DC000D950AD /* OPTLYHTTPRequestManagerTest.m */; };
230234
EA8FD0EB1DE97DD900D950AD /* OPTLYHTTPRequestManagerTest.m in Sources */ = {isa = PBXBuildFile; fileRef = EA8FD0E71DE97DC000D950AD /* OPTLYHTTPRequestManagerTest.m */; };
235+
EA8FD0FC1DEB12A400D950AD /* OPTLYDatafileManager.h in Headers */ = {isa = PBXBuildFile; fileRef = EA8FD0FA1DEB12A400D950AD /* OPTLYDatafileManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
236+
EA8FD0FD1DEB12A400D950AD /* OPTLYDatafileManager.h in Headers */ = {isa = PBXBuildFile; fileRef = EA8FD0FA1DEB12A400D950AD /* OPTLYDatafileManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
237+
EA8FD0FE1DEB12A400D950AD /* OPTLYDatafileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = EA8FD0FB1DEB12A400D950AD /* OPTLYDatafileManager.m */; };
238+
EA8FD0FF1DEB12A400D950AD /* OPTLYDatafileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = EA8FD0FB1DEB12A400D950AD /* OPTLYDatafileManager.m */; };
231239
/* End PBXBuildFile section */
232240

233241
/* Begin PBXContainerItemProxy section */
@@ -379,11 +387,15 @@
379387
EA5249631DC7B69A00AF6685 /* OPTLYEventDispatcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OPTLYEventDispatcher.m; sourceTree = "<group>"; };
380388
EA87A0281DE31453002E9EF7 /* OPTLYUserProfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OPTLYUserProfile.h; path = OptimizelySDKCore/OPTLYUserProfile.h; sourceTree = "<group>"; };
381389
EA87A0291DE31453002E9EF7 /* OPTLYUserProfile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OPTLYUserProfile.m; path = OptimizelySDKCore/OPTLYUserProfile.m; sourceTree = "<group>"; };
390+
EA8FD0FA1DEB12A400D950AD /* OPTLYDatafileManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OPTLYDatafileManager.h; sourceTree = "<group>"; };
391+
EA8FD0FB1DEB12A400D950AD /* OPTLYDatafileManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OPTLYDatafileManager.m; sourceTree = "<group>"; };
382392
EA8FD0D71DE9798E00D950AD /* OPTLYHTTPRequestManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OPTLYHTTPRequestManager.h; sourceTree = "<group>"; };
383393
EA8FD0D81DE9798E00D950AD /* OPTLYHTTPRequestManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OPTLYHTTPRequestManager.m; sourceTree = "<group>"; };
384394
EA8FD0D91DE9798E00D950AD /* OPTLYNetworkService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OPTLYNetworkService.h; sourceTree = "<group>"; };
385395
EA8FD0DA1DE9798E00D950AD /* OPTLYNetworkService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OPTLYNetworkService.m; sourceTree = "<group>"; };
386396
EA8FD0E71DE97DC000D950AD /* OPTLYHTTPRequestManagerTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OPTLYHTTPRequestManagerTest.m; sourceTree = "<group>"; };
397+
EA8FD0FA1DEB12A400D950AD /* OPTLYDatafileManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OPTLYDatafileManager.h; sourceTree = "<group>"; };
398+
EA8FD0FB1DEB12A400D950AD /* OPTLYDatafileManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OPTLYDatafileManager.m; sourceTree = "<group>"; };
387399
F5B1C4BBC7682A657C92ABD3 /* Pods_OptimizelySDKCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_OptimizelySDKCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
388400
F6CC17F155793CF43AB7A3D9 /* Pods-OptimizelySDKCoreTVOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-OptimizelySDKCoreTVOS.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-OptimizelySDKCoreTVOS/Pods-OptimizelySDKCoreTVOS.debug.xcconfig"; sourceTree = "<group>"; };
389401
/* End PBXFileReference section */
@@ -642,12 +654,13 @@
642654
EA2FA83F1DC5E11F00B1D81B /* Bucketer */,
643655
EA2FA90B1DC6F17400B1D81B /* Builder */,
644656
EA2FA8401DC5E13A00B1D81B /* Data Models */,
657+
EA8FD13D1DED36FF00D950AD /* Datafile Manager */,
645658
EA2FA8411DC5E14700B1D81B /* Error Handler */,
646659
EA2FA8421DC5E15700B1D81B /* Event Builder */,
647-
EA5249611DC7B64C00AF6685 /* EventDispatcher */,
660+
EA5249611DC7B64C00AF6685 /* Event Dispatcher */,
648661
EA87A0271DE3142A002E9EF7 /* UserProfile */,
649662
EA2FA8451DC5E1A300B1D81B /* Loggers */,
650-
EA8FD0C81DE978E400D950AD /* Network */,
663+
EA8FD1301DED35CC00D950AD /* Network */,
651664
EA2FA83D1DC5E0E900B1D81B /* Utilities */,
652665
);
653666
path = OptimizelySDKCore;
@@ -678,13 +691,13 @@
678691
path = OptimizelySDKCoreTests;
679692
sourceTree = "<group>";
680693
};
681-
EA5249611DC7B64C00AF6685 /* EventDispatcher */ = {
694+
EA5249611DC7B64C00AF6685 /* Event Dispatcher */ = {
682695
isa = PBXGroup;
683696
children = (
684697
EA5249621DC7B69A00AF6685 /* OPTLYEventDispatcher.h */,
685698
EA5249631DC7B69A00AF6685 /* OPTLYEventDispatcher.m */,
686699
);
687-
name = EventDispatcher;
700+
name = "Event Dispatcher";
688701
sourceTree = "<group>";
689702
};
690703
EA87A0271DE3142A002E9EF7 /* UserProfile */ = {
@@ -697,17 +710,34 @@
697710
path = ..;
698711
sourceTree = "<group>";
699712
};
713+
EA8FD0F91DEB120C00D950AD /* Datafile Manager */ = {
714+
isa = PBXGroup;
715+
children = (
716+
EA8FD0FA1DEB12A400D950AD /* OPTLYDatafileManager.h */,
717+
EA8FD0FB1DEB12A400D950AD /* OPTLYDatafileManager.m */,
718+
);
719+
name = "Datafile Manager";
700720
EA8FD0C81DE978E400D950AD /* Network */ = {
701721
isa = PBXGroup;
702722
children = (
703-
EA8FD0D71DE9798E00D950AD /* OPTLYHTTPRequestManager.h */,
704-
EA8FD0D81DE9798E00D950AD /* OPTLYHTTPRequestManager.m */,
705-
EA8FD0D91DE9798E00D950AD /* OPTLYNetworkService.h */,
706-
EA8FD0DA1DE9798E00D950AD /* OPTLYNetworkService.m */,
723+
EA8FD1311DED35E800D950AD /* OPTLYHTTPRequestManager.h */,
724+
EA8FD1321DED35E800D950AD /* OPTLYHTTPRequestManager.m */,
725+
EA8FD1331DED35E800D950AD /* OPTLYNetworkService.h */,
726+
EA8FD1341DED35E800D950AD /* OPTLYNetworkService.m */,
707727
);
708728
name = Network;
709729
sourceTree = "<group>";
710730
};
731+
EA8FD13D1DED36FF00D950AD /* Datafile Manager */ = {
732+
isa = PBXGroup;
733+
children = (
734+
EA8FD13E1DED372F00D950AD /* OPTLYDatafileManager.h */,
735+
EA8FD13F1DED372F00D950AD /* OPTLYDatafileManager.m */,
736+
);
737+
name = "Datafile Manager";
738+
path = ..;
739+
sourceTree = "<group>";
740+
};
711741
/* End PBXGroup section */
712742

713743
/* Begin PBXHeadersBuildPhase section */
@@ -733,8 +763,10 @@
733763
EA2C242D1DE6A2470063ADA0 /* OPTLYProjectConfigBuilder.h in Headers */,
734764
EA87A02A1DE31453002E9EF7 /* OPTLYUserProfile.h in Headers */,
735765
EA064BC71DD3FC8800DF7537 /* OPTLYQueue.h in Headers */,
766+
EA8FD0FC1DEB12A400D950AD /* OPTLYDatafileManager.h in Headers */,
736767
EA8FD0DB1DE9798E00D950AD /* OPTLYHTTPRequestManager.h in Headers */,
737768
EA8FD0DF1DE9798E00D950AD /* OPTLYNetworkService.h in Headers */,
769+
EA8FD0FC1DEB12A400D950AD /* OPTLYDatafileManager.h in Headers */,
738770
EA2FAB791DC6F5F400B1D81B /* OPTLYMacros.h in Headers */,
739771
EA2FAAF41DC6F57200B1D81B /* OPTLYEventTicket.h in Headers */,
740772
EA2FAB121DC6F57200B1D81B /* OPTLYTrafficAllocation.h in Headers */,
@@ -784,8 +816,9 @@
784816
EA87A02B1DE31453002E9EF7 /* OPTLYUserProfile.h in Headers */,
785817
EA064BC81DD3FC8800DF7537 /* OPTLYQueue.h in Headers */,
786818
EA2C242E1DE6A2470063ADA0 /* OPTLYProjectConfigBuilder.h in Headers */,
787-
EA8FD0DC1DE9798E00D950AD /* OPTLYHTTPRequestManager.h in Headers */,
788-
EA8FD0E01DE9798E00D950AD /* OPTLYNetworkService.h in Headers */,
819+
EA8FD1411DED372F00D950AD /* OPTLYDatafileManager.h in Headers */,
820+
EA8FD13A1DED35E800D950AD /* OPTLYNetworkService.h in Headers */,
821+
EA8FD1361DED35E800D950AD /* OPTLYHTTPRequestManager.h in Headers */,
789822
EA2FAC7B1DC70EBC00B1D81B /* murmur3.h in Headers */,
790823
EA2FAB7A1DC6F5F400B1D81B /* OPTLYMacros.h in Headers */,
791824
EA2FAA951DC6F57100B1D81B /* OPTLYBaseCondition.h in Headers */,
@@ -1160,12 +1193,13 @@
11601193
EA2FAC111DC6FFC600B1D81B /* OPTLYEventAudience.m in Sources */,
11611194
EA2FAC121DC6FFC600B1D81B /* OPTLYEventDecision.m in Sources */,
11621195
EA2FAC131DC6FFC600B1D81B /* OPTLYEventDecisionTicket.m in Sources */,
1196+
EA8FD1421DED372F00D950AD /* OPTLYDatafileManager.m in Sources */,
11631197
EA2FAC141DC6FFC600B1D81B /* OPTLYEventFeature.m in Sources */,
11641198
EA2FAC151DC6FFC600B1D81B /* OPTLYEventHeader.m in Sources */,
11651199
EA2FAC161DC6FFC600B1D81B /* OPTLYEventLayerState.m in Sources */,
11661200
EA5249651DC7B69A00AF6685 /* OPTLYEventDispatcher.m in Sources */,
11671201
EA2C242F1DE6A2470063ADA0 /* OPTLYProjectConfigBuilder.m in Sources */,
1168-
EA8FD0E11DE9798E00D950AD /* OPTLYNetworkService.m in Sources */,
1202+
EA8FD13B1DED35E800D950AD /* OPTLYNetworkService.m in Sources */,
11691203
EA2FAC171DC6FFC600B1D81B /* OPTLYEventMetric.m in Sources */,
11701204
EA2FAC181DC6FFC600B1D81B /* OPTLYEventParameterKeys.m in Sources */,
11711205
EA2FAC191DC6FFC600B1D81B /* OPTLYEventRelatedEvent.m in Sources */,
@@ -1181,7 +1215,7 @@
11811215
EA87A02C1DE31453002E9EF7 /* OPTLYUserProfile.m in Sources */,
11821216
EA2FAC221DC6FFC600B1D81B /* OPTLYErrorHandlerMessages.m in Sources */,
11831217
EA2FAC241DC6FFC600B1D81B /* OPTLYEventBuilder.m in Sources */,
1184-
EA8FD0DD1DE9798E00D950AD /* OPTLYHTTPRequestManager.m in Sources */,
1218+
EA8FD1371DED35E800D950AD /* OPTLYHTTPRequestManager.m in Sources */,
11851219
EA2FAC251DC6FFC600B1D81B /* OPTLYLogger.m in Sources */,
11861220
5ECBBE691DDE6A800028FF6B /* OPTLYVariable.m in Sources */,
11871221
EA2FAC261DC6FFC600B1D81B /* OPTLYLoggerMessages.m in Sources */,
@@ -1231,12 +1265,13 @@
12311265
EA2FABEC1DC6FFA100B1D81B /* OPTLYEventAudience.m in Sources */,
12321266
EA2FABED1DC6FFA100B1D81B /* OPTLYEventDecision.m in Sources */,
12331267
EA2FABEE1DC6FFA100B1D81B /* OPTLYEventDecisionTicket.m in Sources */,
1268+
EA8FD1431DED372F00D950AD /* OPTLYDatafileManager.m in Sources */,
12341269
EA2FABEF1DC6FFA100B1D81B /* OPTLYEventFeature.m in Sources */,
12351270
EA2FABF01DC6FFA100B1D81B /* OPTLYEventHeader.m in Sources */,
12361271
EA2FABF11DC6FFA100B1D81B /* OPTLYEventLayerState.m in Sources */,
12371272
EA5249F21DC7FACF00AF6685 /* OPTLYEventDispatcher.m in Sources */,
12381273
EA2C24301DE6A2470063ADA0 /* OPTLYProjectConfigBuilder.m in Sources */,
1239-
EA8FD0E21DE9798E00D950AD /* OPTLYNetworkService.m in Sources */,
1274+
EA8FD13C1DED35E800D950AD /* OPTLYNetworkService.m in Sources */,
12401275
EA2FABF21DC6FFA100B1D81B /* OPTLYEventMetric.m in Sources */,
12411276
EA2FABF31DC6FFA100B1D81B /* OPTLYEventParameterKeys.m in Sources */,
12421277
EA2FABF41DC6FFA100B1D81B /* OPTLYEventRelatedEvent.m in Sources */,
@@ -1252,7 +1287,7 @@
12521287
EA87A02D1DE31453002E9EF7 /* OPTLYUserProfile.m in Sources */,
12531288
EA2FABFD1DC6FFA100B1D81B /* OPTLYErrorHandlerMessages.m in Sources */,
12541289
EA2FABFF1DC6FFA100B1D81B /* OPTLYEventBuilder.m in Sources */,
1255-
EA8FD0DE1DE9798E00D950AD /* OPTLYHTTPRequestManager.m in Sources */,
1290+
EA8FD1381DED35E800D950AD /* OPTLYHTTPRequestManager.m in Sources */,
12561291
EA2FAC001DC6FFA100B1D81B /* OPTLYLogger.m in Sources */,
12571292
5E3C0E701DDF7A290025DB85 /* OPTLYVariable.m in Sources */,
12581293
EA2FAC011DC6FFA100B1D81B /* OPTLYLoggerMessages.m in Sources */,

OptimizelySDKCore/OptimizelySDKCore.xcodeproj/xcshareddata/xcschemes/OptimizelySDKCoreiOS.xcscheme

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,16 @@
3838
ReferencedContainer = "container:OptimizelySDKCore.xcodeproj">
3939
</BuildableReference>
4040
</TestableReference>
41+
<TestableReference
42+
skipped = "NO">
43+
<BuildableReference
44+
BuildableIdentifier = "primary"
45+
BlueprintIdentifier = "EA52470A1DC7192200AF6685"
46+
BuildableName = "OptimizelySDKSharediOSTests.xctest"
47+
BlueprintName = "OptimizelySDKSharediOSTests"
48+
ReferencedContainer = "container:../OptimizelySDKShared/OptimizelySDKShared.xcodeproj">
49+
</BuildableReference>
50+
</TestableReference>
4151
</Testables>
4252
<MacroExpansion>
4353
<BuildableReference

OptimizelySDKCore/OptimizelySDKCore/OPTLYBuilder.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
#import <Foundation/Foundation.h>
1818

1919
@class OPTLYBucketer, OPTLYEventBuilder, OPTLYEventBuilderDefault, OPTLYProjectConfig;
20-
@protocol OPTLYErrorHandler, OPTLYEventBuilder, OPTLYEventDispatcher, OPTLYLogger, OPTLYProjectConfig, OPTLYUserProfile;
20+
@protocol OPTLYDatafileManager, OPTLYErrorHandler, OPTLYEventBuilder, OPTLYEventDispatcher, OPTLYLogger, OPTLYUserProfile;
2121

2222
/**
2323
* This class contains the information on how your Optimizely instance will be built.
@@ -46,6 +46,8 @@ typedef void (^OPTLYBuilderBlock)(OPTLYBuilder * _Nullable builder);
4646
@property (nonatomic, readwrite, strong, nullable) id<OPTLYLogger> logger;
4747
/// User profile stores user-specific data, like bucketing.
4848
@property (nonatomic, readwrite, strong, nullable) id<OPTLYUserProfile> userProfile;
49+
/// The datafile manager that will download the datafile for the manager
50+
@property (nonatomic, readwrite, strong, nullable) id<OPTLYDatafileManager> datafileManager;
4951

5052
/// Create an Optimizely Builder object.
5153
+ (nullable instancetype)builderWithBlock:(nonnull OPTLYBuilderBlock)block;

OptimizelySDKCore/OptimizelySDKCore/OPTLYBuilder.m

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
#import "OPTLYBucketer.h"
1818
#import "OPTLYBuilder.h"
19+
#import "OPTLYDatafileManager.h"
1920
#import "OPTLYErrorHandler.h"
2021
#import "OPTLYEventBuilder.h"
2122
#import "OPTLYEventDispatcher.h"
@@ -85,6 +86,13 @@ - (NSData *)datafile {
8586
return _datafile;
8687
}
8788

89+
- (id<OPTLYDatafileManager>)datafileManager {
90+
if (!_datafileManager) {
91+
_datafileManager = [[OPTLYDatafileManagerDefault alloc] init];
92+
}
93+
return _datafileManager;
94+
}
95+
8896
- (id<OPTLYErrorHandler>)errorHandler {
8997
if (!_errorHandler) {
9098
_errorHandler = [[OPTLYErrorHandlerNoOp alloc] init];
@@ -94,7 +102,7 @@ - (NSData *)datafile {
94102

95103
- (id<OPTLYEventDispatcher>)eventDispatcher {
96104
if (!_eventDispatcher) {
97-
_eventDispatcher = [[OPTLYEventDispatcherBasic alloc] init];
105+
_eventDispatcher = [[OPTLYEventDispatcherDefault alloc] init];
98106
}
99107
return _eventDispatcher;
100108
}

OptimizelySDKShared/OptimizelySDKShared/OPTLYDatafileManager.h renamed to OptimizelySDKCore/OptimizelySDKCore/OPTLYDatafileManager.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
#import <OptimizelySDKCore/OPTLYHTTPRequestManager.h>
1919

2020
@protocol OPTLYErrorHandler, OPTLYLogger;
21-
2221
@protocol OPTLYDatafileManager <NSObject>
2322

2423
/**
@@ -27,7 +26,7 @@
2726
* @param completion Completion handler.
2827
*/
2928
- (void)downloadDatafile:(nonnull NSString *)projectId
30-
completionHandler:(nullable OPTLYHTTPRequestManagerResponse)completion;
29+
completionHandler:(nullable void (^)(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error))completion;
3130

3231
@end
3332

@@ -41,6 +40,10 @@
4140

4241
@end
4342

43+
@interface OPTLYDatafileManagerDefault : NSObject<OPTLYDatafileManager>
44+
45+
@end
46+
4447
@interface OPTLYDatafileManagerNoOp : NSObject<OPTLYDatafileManager>
4548

4649
@end

OptimizelySDKShared/OptimizelySDKShared/OPTLYDatafileManager.m renamed to OptimizelySDKCore/OptimizelySDKCore/OPTLYDatafileManager.m

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
***************************************************************************/
1616

1717
#import "OPTLYDatafileManager.h"
18+
#import "OPTLYNetworkService.h"
1819

1920
@implementation OPTLYDatafileManagerUtility
2021

@@ -30,11 +31,23 @@ + (BOOL)conformsToOPTLYDatafileManagerProtocol:(Class)instanceClass {
3031

3132
@end
3233

34+
@implementation OPTLYDatafileManagerDefault
35+
36+
- (void)downloadDatafile:(nonnull NSString *)projectId
37+
completionHandler:(nullable void (^)(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error))completion {
38+
OPTLYNetworkService *networkService = [OPTLYNetworkService new];
39+
[networkService downloadProjectConfig:projectId
40+
completionHandler:completion];
41+
}
42+
@end
43+
3344
@implementation OPTLYDatafileManagerNoOp
3445

35-
- (void)downloadDatafile:(NSString *)projectId completionHandler:(OPTLYHTTPRequestManagerResponse)completion {
36-
completion(nil, nil, nil);
37-
return;
46+
- (void)downloadDatafile:(nonnull NSString *)projectId
47+
completionHandler:(nullable void (^)(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error))completion {
48+
if (completion) {
49+
completion(nil, nil, nil);
50+
}
3851
}
3952

4053
@end

OptimizelySDKCore/OptimizelySDKCore/OPTLYEventDispatcher.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,11 @@
4747
@end
4848

4949
/**
50-
* OPTLYEventDispatcherBasic is a very simple implementation of the OPTLYEventDispatcher protocol.
50+
* OPTLYEventDispatcherDefault is a very simple implementation of the OPTLYEventDispatcher protocol.
5151
* It dispatches events without any failure mechanisms (e.g., events are not queued up for a loater
5252
* retry.
5353
*/
54-
@interface OPTLYEventDispatcherBasic : NSObject <OPTLYEventDispatcher>
54+
@interface OPTLYEventDispatcherDefault : NSObject <OPTLYEventDispatcher>
5555
@end
5656

5757
/**

0 commit comments

Comments
 (0)