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
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ - (BFTask *)_performDataTask:(NSURLSessionDataTask *)dataTask withDelegate:(PFUR
#pragma mark - Private
///--------------------------------------

- (PFURLSessionDataTaskDelegate *)_taskDelegateForDataTask:(NSURLSessionDataTask *)task {
- (PFURLSessionDataTaskDelegate *)_taskDelegateForTask:(NSURLSessionTask *)task {
__block PFURLSessionDataTaskDelegate *delegate = nil;
dispatch_sync(_delegatesAccessQueue, ^{
delegate = _delegatesDictionary[@(task.taskIdentifier)];
Expand All @@ -220,20 +220,20 @@ - (void)_removeDelegateForTaskWithIdentifier:(NSNumber *)identifier {
///--------------------------------------

- (void)URLSession:(NSURLSession *)session
task:(NSURLSessionDataTask *)task
task:(NSURLSessionTask *)task
didSendBodyData:(int64_t)bytesSent
totalBytesSent:(int64_t)totalBytesSent
totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend {
PFURLSessionDataTaskDelegate *delegate = [self _taskDelegateForDataTask:task];
PFURLSessionDataTaskDelegate *delegate = [self _taskDelegateForTask:task];
[delegate URLSession:session
task:task
didSendBodyData:bytesSent
totalBytesSent:totalBytesSent
totalBytesExpectedToSend:totalBytesExpectedToSend];
}

- (void)URLSession:(NSURLSession *)session task:(NSURLSessionDataTask *)task didCompleteWithError:(NSError *)error {
PFURLSessionDataTaskDelegate *delegate = [self _taskDelegateForDataTask:task];
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error {
PFURLSessionDataTaskDelegate *delegate = [self _taskDelegateForTask:task];
[delegate URLSession:session task:task didCompleteWithError:error];
}

Expand All @@ -245,12 +245,12 @@ - (void)URLSession:(NSURLSession *)session
dataTask:(NSURLSessionDataTask *)dataTask
didReceiveResponse:(NSURLResponse *)response
completionHandler:(void (^)(NSURLSessionResponseDisposition disposition))completionHandler {
PFURLSessionDataTaskDelegate *delegate = [self _taskDelegateForDataTask:dataTask];
PFURLSessionDataTaskDelegate *delegate = [self _taskDelegateForTask:dataTask];
[delegate URLSession:session dataTask:dataTask didReceiveResponse:response completionHandler:completionHandler];
}

- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data {
PFURLSessionDataTaskDelegate *delegate = [self _taskDelegateForDataTask:dataTask];
PFURLSessionDataTaskDelegate *delegate = [self _taskDelegateForTask:dataTask];
[delegate URLSession:session dataTask:dataTask didReceiveData:data];
}

Expand Down
22 changes: 12 additions & 10 deletions Parse/Internal/Installation/Controller/PFInstallationController.m
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,10 @@ + (instancetype)controllerWithDataSource:(id<PFObjectControllerProvider, PFCurre
#pragma mark - Fetch
///--------------------------------------

- (BFTask *)fetchObjectAsync:(PFInstallation *)object withSessionToken:(nullable NSString *)sessionToken {
- (BFTask *)fetchObjectAsync:(PFObject *)object withSessionToken:(nullable NSString *)sessionToken {
PFInstallation *installation = (PFInstallation *)object;
@weakify(self);
return [[[self.objectController fetchObjectAsync:object
return [[[self.objectController fetchObjectAsync:installation
withSessionToken:sessionToken] continueWithBlock:^id(BFTask *task) {
@strongify(self);

Expand All @@ -51,28 +52,29 @@ - (BFTask *)fetchObjectAsync:(PFInstallation *)object withSessionToken:(nullable
}

if (task.faulted && task.error.code == kPFErrorObjectNotFound) {
@synchronized (object.lock) {
@synchronized (installation.lock) {
// Retry the fetch as a save operation because this Installation was deleted on the server.
// We always want [currentInstallation fetch] to succeed.
object.objectId = nil;
[object _markAllFieldsDirty];
return [[object saveAsync:nil] continueWithSuccessResult:object];
installation.objectId = nil;
[installation _markAllFieldsDirty];
return [[installation saveAsync:nil] continueWithSuccessResult:installation];
}
}
return task;
}] continueWithBlock:^id(BFTask *task) {
@strongify(self);
// Roll-forward the previous task.
return [[self.currentInstallationController saveCurrentObjectAsync:object] continueWithResult:task];
return [[self.currentInstallationController saveCurrentObjectAsync:installation] continueWithResult:task];
}];
}

- (BFTask *)processFetchResultAsync:(NSDictionary *)result forObject:(PFInstallation *)object {
- (BFTask *)processFetchResultAsync:(NSDictionary *)result forObject:(PFObject *)object {
PFInstallation *installation = (PFInstallation *)object;
@weakify(self);
return [[self.objectController processFetchResultAsync:result forObject:object] continueWithBlock:^id(BFTask *task) {
return [[self.objectController processFetchResultAsync:result forObject:installation] continueWithBlock:^id(BFTask *task) {
@strongify(self);
// Roll-forward the previous task.
return [[self.currentInstallationController saveCurrentObjectAsync:object] continueWithResult:task];
return [[self.currentInstallationController saveCurrentObjectAsync:installation] continueWithResult:task];
}];
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,9 @@ - (BFTask *)getCurrentObjectAsync {
}];
}

- (BFTask *)saveCurrentObjectAsync:(PFInstallation *)installation {
- (BFTask *)saveCurrentObjectAsync:(PFObject *)object {
PFInstallation *installation = (PFInstallation *)object;

@weakify(self);
return [_dataTaskQueue enqueue:^BFTask *(BFTask *unused) {
@strongify(self);
Expand Down
20 changes: 10 additions & 10 deletions Parse/Internal/LocalDataStore/OfflineStore/PFOfflineStore.m
Original file line number Diff line number Diff line change
Expand Up @@ -31,19 +31,19 @@

typedef BFTask *(^PFOfflineStoreDatabaseExecutionBlock)(PFSQLiteDatabase *database);

NSString *const PFOfflineStoreDatabaseName = @"ParseOfflineStore";
static NSString *const PFOfflineStoreDatabaseName = @"ParseOfflineStore";

NSString *const PFOfflineStoreTableOfObjects = @"ParseObjects";
NSString *const PFOfflineStoreKeyOfClassName = @"className";
NSString *const PFOfflineStoreKeyOfIsDeletingEventually = @"isDeletingEventually";
NSString *const PFOfflineStoreKeyOfJSON = @"json";
NSString *const PFOfflineStoreKeyOfObjectId = @"objectId";
NSString *const PFOfflineStoreKeyOfUUID = @"uuid";
static NSString *const PFOfflineStoreTableOfObjects = @"ParseObjects";
static NSString *const PFOfflineStoreKeyOfClassName = @"className";
static NSString *const PFOfflineStoreKeyOfIsDeletingEventually = @"isDeletingEventually";
static NSString *const PFOfflineStoreKeyOfJSON = @"json";
static NSString *const PFOfflineStoreKeyOfObjectId = @"objectId";
static NSString *const PFOfflineStoreKeyOfUUID = @"uuid";

NSString *const PFOfflineStoreTableOfDependencies = @"Dependencies";
NSString *const PFOfflineStoreKeyOfKey = @"key";
static NSString *const PFOfflineStoreTableOfDependencies = @"Dependencies";
static NSString *const PFOfflineStoreKeyOfKey = @"key";

int const PFOfflineStoreMaximumSQLVariablesCount = 999;
static int const PFOfflineStoreMaximumSQLVariablesCount = 999;

@interface PFOfflineStore ()

Expand Down
10 changes: 5 additions & 5 deletions Parse/Internal/LocalDataStore/SQLite/PFSQLiteDatabase.m
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@
#import "PFSQLiteStatement.h"
#import "Parse_Private.h"

NSString *const PFSQLiteDatabaseBeginExclusiveOperationCommand = @"BEGIN EXCLUSIVE";
NSString *const PFSQLiteDatabaseCommitOperationCommand = @"COMMIT";
NSString *const PFSQLiteDatabaseRollbackOperationCommand = @"ROLLBACK";
static NSString *const PFSQLiteDatabaseBeginExclusiveOperationCommand = @"BEGIN EXCLUSIVE";
static NSString *const PFSQLiteDatabaseCommitOperationCommand = @"COMMIT";
static NSString *const PFSQLiteDatabaseRollbackOperationCommand = @"ROLLBACK";

NSString *const PFSQLiteDatabaseErrorSQLiteDomain = @"SQLite";
NSString *const PFSQLiteDatabaseErrorPFSQLiteDatabaseDomain = @"PFSQLiteDatabase";
static NSString *const PFSQLiteDatabaseErrorSQLiteDomain = @"SQLite";
static NSString *const PFSQLiteDatabaseErrorPFSQLiteDatabaseDomain = @"PFSQLiteDatabase";

int const PFSQLiteDatabaseInvalidArgumenCountErrorCode = 1;
int const PFSQLiteDatabaseInvalidSQL = 2;
Expand Down
8 changes: 4 additions & 4 deletions Parse/Internal/Object/OperationSet/PFOperationSet.m
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@
#import "PFFieldOperation.h"
#import "PFInternalUtils.h"

NSString *const PFOperationSetKeyUUID = @"__uuid";
NSString *const PFOperationSetKeyIsSaveEventually = @"__isSaveEventually";
NSString *const PFOperationSetKeyUpdatedAt = @"__updatedAt";
NSString *const PFOperationSetKeyACL = @"ACL";
static NSString *const PFOperationSetKeyUUID = @"__uuid";
static NSString *const PFOperationSetKeyIsSaveEventually = @"__isSaveEventually";
static NSString *const PFOperationSetKeyUpdatedAt = @"__updatedAt";
static NSString *const PFOperationSetKeyACL = @"ACL";

@interface PFOperationSet()

Expand Down
14 changes: 7 additions & 7 deletions Parse/Internal/PFEventuallyPin.m
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@

NSString *const PFEventuallyPinPinName = @"_eventuallyPin";

NSString *const PFEventuallyPinKeyUUID = @"uuid";
NSString *const PFEventuallyPinKeyTime = @"time";
NSString *const PFEventuallyPinKeyType = @"type";
NSString *const PFEventuallyPinKeyObject = @"object";
NSString *const PFEventuallyPinKeyOperationSetUUID = @"operationSetUUID";
NSString *const PFEventuallyPinKeySessionToken = @"sessionToken";
NSString *const PFEventuallyPinKeyCommand = @"command";
static NSString *const PFEventuallyPinKeyUUID = @"uuid";
static NSString *const PFEventuallyPinKeyTime = @"time";
static NSString *const PFEventuallyPinKeyType = @"type";
static NSString *const PFEventuallyPinKeyObject = @"object";
static NSString *const PFEventuallyPinKeyOperationSetUUID = @"operationSetUUID";
static NSString *const PFEventuallyPinKeySessionToken = @"sessionToken";
static NSString *const PFEventuallyPinKeyCommand = @"command";

@implementation PFEventuallyPin

Expand Down
12 changes: 7 additions & 5 deletions Parse/Internal/PFInternalUtils.m
Original file line number Diff line number Diff line change
Expand Up @@ -275,11 +275,13 @@ + (id)_stringWithFormat:(NSString *)format arguments:(NSArray *)arguments {
@implementation PFJSONCacheItem

- (instancetype)initWithObject:(id)object {
if (self = [super init]) {
NSObject *encoded = [[PFPointerOrLocalIdObjectEncoder objectEncoder] encodeObject:object];
NSData *jsonData = [PFJSONSerialization dataFromJSONObject:encoded];
_hashValue = PFMD5HashFromData(jsonData);
}
self = [super init];
if (!self) return nil;

NSObject *encoded = [[PFPointerOrLocalIdObjectEncoder objectEncoder] encodeObject:object];
NSData *jsonData = [PFJSONSerialization dataFromJSONObject:encoded];
_hashValue = PFMD5HashFromData(jsonData);

return self;
}

Expand Down
4 changes: 3 additions & 1 deletion Parse/Internal/PFKeychainStore.m
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,9 @@ - (id)objectForKey:(NSString *)key {
@try {
object = [NSKeyedUnarchiver unarchiveObjectWithData:data];
}
@catch (NSException *exception) {}
@catch (NSException *exception) {
PFLogDebug(PFLoggingTagCommon, @"Failed to unarchive data from keychain: %@", exception);
}

return object;
}
Expand Down
5 changes: 3 additions & 2 deletions Parse/Internal/PFLogger.m
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ + (NSString *)_descriptionForLogLevel:(PFLogLevel)logLevel {
switch (logLevel) {
case PFLogLevelNone:
break;
case PFLogLevelDebug:
description = @"Debug";
break;
case PFLogLevelError:
description = @"Error";
break;
Expand All @@ -46,8 +49,6 @@ + (NSString *)_descriptionForLogLevel:(PFLogLevel)logLevel {
case PFLogLevelInfo:
description = @"Info";
break;
default:
break;
}
return description;
}
Expand Down
5 changes: 1 addition & 4 deletions Parse/Internal/PFMulticastDelegate.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,7 @@
/*!
Represents an event that can be subscribed to by multiple observers.
*/
@interface PFMulticastDelegate : NSObject {
@private
NSMutableArray *callbacks;
}
@interface PFMulticastDelegate : NSObject

/*!
Subscribes a block for callback.
Expand Down
22 changes: 15 additions & 7 deletions Parse/Internal/PFMulticastDelegate.m
Original file line number Diff line number Diff line change
Expand Up @@ -9,31 +9,39 @@

#import "PFMulticastDelegate.h"

@interface PFMulticastDelegate () {
NSMutableArray *_callbacks;
}

@end

@implementation PFMulticastDelegate

- (instancetype)init {
if (self = [super init]) {
callbacks = [[NSMutableArray alloc] init];
}
self = [super init];
if (!self) return nil;

_callbacks = [[NSMutableArray alloc] init];

return self;
}

- (void)subscribe:(void(^)(id result, NSError *error))block {
[callbacks addObject:block];
[_callbacks addObject:block];
}

- (void)unsubscribe:(void(^)(id result, NSError *error))block {
[callbacks removeObject:block];
[_callbacks removeObject:block];
}

- (void)invoke:(id)result error:(NSError *)error {
NSArray *callbackCopy = [callbacks copy];
NSArray *callbackCopy = [_callbacks copy];
for (void (^block)(id result, NSError *error) in callbackCopy) {
block(result, error);
}
}
- (void)clear {
[callbacks removeAllObjects];
[_callbacks removeAllObjects];
}

@end
7 changes: 4 additions & 3 deletions Parse/Internal/PFPinningEventuallyQueue.m
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,7 @@ - (NSArray *)_pendingCommandIdentifiers {
}
case PFEventuallyPinTypeDelete:
return [eventuallyPin.object _currentDeleteCommandWithSessionToken:eventuallyPin.sessionToken];
case PFEventuallyPinTypeCommand:
default:
break;
}
Expand Down Expand Up @@ -236,7 +237,6 @@ - (BFTask *)_didFinishRunningCommand:(id<PFNetworkCommand>)command
}];
break;
}

case PFEventuallyPinTypeDelete: {
task = [task continueWithBlock:^id(BFTask *task) {
PFObject *object = eventuallyPin.object;
Expand All @@ -245,8 +245,9 @@ - (BFTask *)_didFinishRunningCommand:(id<PFNetworkCommand>)command
}];
break;
}

default:break;
case PFEventuallyPinTypeCommand:
default:
break;
}

return task;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,14 @@ @implementation PFPaymentTransactionObserver
///--------------------------------------

- (instancetype)init {
if (self = [super init]) {
blocks = [[NSMutableDictionary alloc] init];
runOnceBlocks = [[NSMutableDictionary alloc] init];
lockObj = [[NSObject alloc] init];
runOnceLockObj = [[NSObject alloc] init];
}
self = [super init];
if (!self) return nil;

blocks = [[NSMutableDictionary alloc] init];
runOnceBlocks = [[NSMutableDictionary alloc] init];
lockObj = [[NSObject alloc] init];
runOnceLockObj = [[NSObject alloc] init];

return self;
}

Expand All @@ -44,7 +46,8 @@ - (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)tran
case SKPaymentTransactionStateRestored:
[self completeTransaction:transaction fromPaymentQueue:queue];
break;
default:
case SKPaymentTransactionStatePurchasing:
case SKPaymentTransactionStateDeferred:
break;
}
}
Expand Down
2 changes: 1 addition & 1 deletion Parse/Internal/Query/Controller/PFOfflineQueryController.m
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ @implementation PFOfflineQueryController
#pragma mark - Init
///--------------------------------------

- (instancetype)initWithCommonDataSource:(id<PFCommandRunnerProvider, PFOfflineStoreProvider>)dataSource {
- (instancetype)initWithCommonDataSource:(id<PFCommandRunnerProvider>)dataSource {
PFNotDesignatedInitializer();
}

Expand Down
6 changes: 1 addition & 5 deletions Parse/Internal/Query/PFQueryPrivate.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,14 +42,10 @@ extern NSString *const PFQueryOptionKeyRegexOptions;
@class BFTask PF_GENERIC(__covariant BFGenericType);
@class PFObject;

@interface PFQuery ()
@interface PFQuery (Private)

@property (nonatomic, strong, readonly) PFQueryState *state;

@end

@interface PFQuery (Private)

- (instancetype)whereRelatedToObject:(PFObject *)parent fromKey:(NSString *)key;
- (void)redirectClassNameForKey:(NSString *)key;

Expand Down
2 changes: 1 addition & 1 deletion Parse/Internal/Query/Utilities/PFQueryUtilities.m
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ + (NSPredicate *)_negatePredicate:(NSPredicate *)predicate {
} comparisonBlock:^NSPredicate *(NSComparisonPredicate *comparison) {
NSPredicateOperatorType newType;
NSComparisonPredicateModifier newModifier = comparison.comparisonPredicateModifier;
SEL customSelector;
SEL customSelector = NULL;

switch (comparison.predicateOperatorType) {
case NSEqualToPredicateOperatorType: {
Expand Down
Loading