17c3ed0c0SDouglas Lowder// Copyright 2015-present 650 Industries. All rights reserved.
27c3ed0c0SDouglas Lowder
37c3ed0c0SDouglas Lowder#import "EXEnvironment.h"
47c3ed0c0SDouglas Lowder#import "EXErrorRecoveryManager.h"
57c3ed0c0SDouglas Lowder#import "EXFileDownloader.h"
67c3ed0c0SDouglas Lowder#import "EXKernel.h"
77c3ed0c0SDouglas Lowder#import "EXAppFetcher.h"
87c3ed0c0SDouglas Lowder#import "EXAbstractLoader.h"
97c3ed0c0SDouglas Lowder#import "EXKernelAppRecord.h"
107c3ed0c0SDouglas Lowder#import "EXKernelAppRegistry.h"
117c3ed0c0SDouglas Lowder#import "EXKernelLinkingManager.h"
127c3ed0c0SDouglas Lowder#import "EXManifestResource.h"
137c3ed0c0SDouglas Lowder
147c3ed0c0SDouglas Lowder#import <React/RCTUtils.h>
157c3ed0c0SDouglas Lowder
1694af3edaSWill Schurman@import EXManifests;
1794af3edaSWill Schurman
187c3ed0c0SDouglas LowderNS_ASSUME_NONNULL_BEGIN
197c3ed0c0SDouglas Lowder
20*5f54863aSWill SchurmanNSTimeInterval const kEXAppLoaderDefaultTimeout = 30;
21*5f54863aSWill SchurmanNSTimeInterval const kEXJSBundleTimeout = 60 * 5;
22*5f54863aSWill Schurman
237c3ed0c0SDouglas Lowder@implementation EXAbstractLoader
247c3ed0c0SDouglas Lowder
257c3ed0c0SDouglas Lowder- (instancetype)initWithManifestUrl:(NSURL *)url
267c3ed0c0SDouglas Lowder{
277c3ed0c0SDouglas Lowder  [self doesNotRecognizeSelector:_cmd];
287c3ed0c0SDouglas Lowder  return nil;
297c3ed0c0SDouglas Lowder}
307c3ed0c0SDouglas Lowder
317c3ed0c0SDouglas Lowder- (instancetype)initWithLocalManifest:(EXManifestsManifest *)manifest
327c3ed0c0SDouglas Lowder{
337c3ed0c0SDouglas Lowder  [self doesNotRecognizeSelector:_cmd];
347c3ed0c0SDouglas Lowder  return nil;
357c3ed0c0SDouglas Lowder}
367c3ed0c0SDouglas Lowder
377c3ed0c0SDouglas Lowder- (void)fetchManifestWithCacheBehavior:(EXManifestCacheBehavior)cacheBehavior success:(void (^)(EXManifestsManifest * _Nonnull))success failure:(void (^)(NSError * _Nonnull))failure
387c3ed0c0SDouglas Lowder{
397c3ed0c0SDouglas Lowder  [self doesNotRecognizeSelector:_cmd];
407c3ed0c0SDouglas Lowder}
417c3ed0c0SDouglas Lowder
427c3ed0c0SDouglas Lowder- (void)request
437c3ed0c0SDouglas Lowder{
447c3ed0c0SDouglas Lowder  [self doesNotRecognizeSelector:_cmd];
457c3ed0c0SDouglas Lowder}
467c3ed0c0SDouglas Lowder
477c3ed0c0SDouglas Lowder- (void)requestFromCache
487c3ed0c0SDouglas Lowder{
497c3ed0c0SDouglas Lowder  [self doesNotRecognizeSelector:_cmd];
507c3ed0c0SDouglas Lowder}
517c3ed0c0SDouglas Lowder
527c3ed0c0SDouglas Lowder- (void)forceBundleReload
537c3ed0c0SDouglas Lowder{
547c3ed0c0SDouglas Lowder  [self doesNotRecognizeSelector:_cmd];
557c3ed0c0SDouglas Lowder}
567c3ed0c0SDouglas Lowder
577c3ed0c0SDouglas Lowder- (BOOL)supportsBundleReload
587c3ed0c0SDouglas Lowder{
597c3ed0c0SDouglas Lowder  [self doesNotRecognizeSelector:_cmd];
607c3ed0c0SDouglas Lowder  return NO;
617c3ed0c0SDouglas Lowder}
627c3ed0c0SDouglas Lowder
637c3ed0c0SDouglas Lowder- (void)writeManifestToCache
647c3ed0c0SDouglas Lowder{
657c3ed0c0SDouglas Lowder  [self doesNotRecognizeSelector:_cmd];
667c3ed0c0SDouglas Lowder}
677c3ed0c0SDouglas Lowder
687c3ed0c0SDouglas Lowder#pragma mark -
697c3ed0c0SDouglas Lowder#pragma mark EXAppFetcher delegate methods
707c3ed0c0SDouglas Lowder
717c3ed0c0SDouglas Lowder- (void)appFetcher:(nonnull EXAppFetcher *)appFetcher didFailWithError:(nonnull NSError *)error {
727c3ed0c0SDouglas Lowder  [self doesNotRecognizeSelector:_cmd];
737c3ed0c0SDouglas Lowder}
747c3ed0c0SDouglas Lowder
757c3ed0c0SDouglas Lowder- (void)appFetcher:(nonnull EXAppFetcher *)appFetcher didFinishLoadingManifest:(nonnull EXManifestsManifest *)manifest bundle:(nonnull NSData *)bundle {
767c3ed0c0SDouglas Lowder  [self doesNotRecognizeSelector:_cmd];
777c3ed0c0SDouglas Lowder}
787c3ed0c0SDouglas Lowder
797c3ed0c0SDouglas Lowder- (void)appFetcher:(nonnull EXAppFetcher *)appFetcher didLoadOptimisticManifest:(nonnull EXManifestsManifest *)manifest {
807c3ed0c0SDouglas Lowder  [self doesNotRecognizeSelector:_cmd];
817c3ed0c0SDouglas Lowder}
827c3ed0c0SDouglas Lowder
837c3ed0c0SDouglas Lowder- (void)appFetcher:(nonnull EXAppFetcher *)appFetcher didSwitchToAppFetcher:(nonnull EXAppFetcher *)newAppFetcher retainingCurrent:(BOOL)shouldRetain {
847c3ed0c0SDouglas Lowder  [self doesNotRecognizeSelector:_cmd];
857c3ed0c0SDouglas Lowder}
867c3ed0c0SDouglas Lowder
877c3ed0c0SDouglas Lowder- (void)appFetcher:(nonnull EXAppFetcher *)appFetcher didLoadBundleWithProgress:(nonnull EXLoadingProgress *)progress {
887c3ed0c0SDouglas Lowder  [self doesNotRecognizeSelector:_cmd];
897c3ed0c0SDouglas Lowder}
907c3ed0c0SDouglas Lowder
917c3ed0c0SDouglas Lowder- (void)appFetcher:(nonnull EXAppFetcher *)appFetcher didResolveUpdatedBundleWithManifest:(EXManifestsManifest * _Nullable)manifest isFromCache:(BOOL)isFromCache error:(NSError * _Nullable)error {
927c3ed0c0SDouglas Lowder  [self doesNotRecognizeSelector:_cmd];
937c3ed0c0SDouglas Lowder}
947c3ed0c0SDouglas Lowder
957c3ed0c0SDouglas Lowder- (BOOL)isCacheUpToDateWithAppFetcher:(nonnull EXAppFetcher *)appFetcher {
967c3ed0c0SDouglas Lowder  [self doesNotRecognizeSelector:_cmd];
977c3ed0c0SDouglas Lowder  return NO;
987c3ed0c0SDouglas Lowder}
997c3ed0c0SDouglas Lowder
1007c3ed0c0SDouglas Lowder@end
1017c3ed0c0SDouglas Lowder
1027c3ed0c0SDouglas LowderNS_ASSUME_NONNULL_END
103