Skip to content

Commit 5c5c887

Browse files
Merge pull request #257 from ParsePlatform/richardross.task.generics.1
Support Bolts generics in internal headers, part 1.
2 parents 20c509b + 122c34d commit 5c5c887

File tree

41 files changed

+148
-41
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+148
-41
lines changed

Parse/Internal/ACL/DefaultACLController/PFDefaultACLController.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@
99

1010
#import <Foundation/Foundation.h>
1111

12-
@class BFTask;
12+
#import <Parse/PFConstants.h>
13+
14+
@class BFTask PF_GENERIC(__covariant BFGenericType);
1315
@class PFACL;
1416

1517
NS_ASSUME_NONNULL_BEGIN

Parse/Internal/Analytics/Controller/PFAnalyticsController.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,11 @@
99

1010
#import <Foundation/Foundation.h>
1111

12+
#import <Parse/PFConstants.h>
13+
1214
#import "PFDataProvider.h"
1315

14-
@class BFTask;
16+
@class BFTask PF_GENERIC(__covariant BFGenericType);
1517

1618
@interface PFAnalyticsController : NSObject
1719

Parse/Internal/CloudCode/PFCloudCodeController.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@
99

1010
#import <Foundation/Foundation.h>
1111

12-
@class BFTask;
12+
#import <Parse/PFConstants.h>
13+
14+
@class BFTask PF_GENERIC(__covariant BFGenericType);
1315
@protocol PFCommandRunning;
1416

1517
@interface PFCloudCodeController : NSObject

Parse/Internal/Commands/CommandRunner/PFCommandRunning.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414
#import "PFDataProvider.h"
1515

1616
@class BFCancellationToken;
17-
@class BFTask;
17+
@class BFTask PF_GENERIC(__covariant BFGenericType);
18+
@class PFCommandResult;
1819
@class PFRESTCommand;
1920
@protocol PFNetworkCommand;
2021

Parse/Internal/Commands/CommandRunner/URLSession/Session/PFURLSession.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212
#import <Parse/PFConstants.h>
1313

1414
@class BFCancellationToken;
15-
@class BFTask;
15+
16+
@class BFTask PF_GENERIC(__covariant BFGenericType);
1617
@class PFRESTCommand;
1718

1819
NS_ASSUME_NONNULL_BEGIN

Parse/Internal/Commands/CommandRunner/URLSession/Session/TaskDelegate/PFURLSessionDataTaskDelegate.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,11 @@
99

1010
#import <Foundation/Foundation.h>
1111

12+
#import <Parse/PFConstants.h>
13+
1214
@class BFCancellationToken;
13-
@class BFTask;
15+
16+
@class BFTask PF_GENERIC(__covariant BFGenericType);
1417

1518
NS_ASSUME_NONNULL_BEGIN
1619

Parse/Internal/Config/Controller/PFConfigController.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@
99

1010
#import <Foundation/Foundation.h>
1111

12-
@class BFTask;
12+
#import <Parse/PFConstants.h>
13+
14+
@class BFTask PF_GENERIC(__covariant BFGenericType);
15+
@class PFConfig;
1316
@class PFCurrentConfigController;
1417
@class PFFileManager;
1518
@protocol PFCommandRunning;

Parse/Internal/Config/Controller/PFCurrentConfigController.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,11 @@
99

1010
#import <Foundation/Foundation.h>
1111

12-
@class BFTask;
12+
#import <Parse/PFConstants.h>
13+
14+
#import "PFMacros.h"
15+
16+
@class BFTask PF_GENERIC(__covariant BFGenericType);
1317
@class PFConfig;
1418
@class PFFileManager;
1519

Parse/Internal/File/Controller/PFFileController.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,10 @@
1212
#import <Parse/PFConstants.h>
1313

1414
#import "PFDataProvider.h"
15+
#import "PFMacros.h"
1516

1617
@class BFCancellationToken;
17-
@class BFTask;
18+
@class BFTask PF_GENERIC(__covariant BFGenericType);
1819
@class PFFileState;
1920
@class PFFileStagingController;
2021

Parse/Internal/File/Controller/PFFileStagingController.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@
99

1010
#import <Foundation/Foundation.h>
1111

12-
#import <Bolts/BFTask.h>
12+
#import <Parse/PFConstants.h>
13+
14+
@class BFTask PF_GENERIC(__covariant BFGenericType);
1315

1416
NS_ASSUME_NONNULL_BEGIN
1517

Parse/Internal/File/PFFile_Private.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@
1414

1515
#import "PFFileState.h"
1616

17-
@class BFTask;
18-
1917
NS_ASSUME_NONNULL_BEGIN
2018

2119
@interface PFFile (Private)

Parse/Internal/Installation/CurrentInstallationController/PFCurrentInstallationController.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,17 @@
99

1010
#import <Foundation/Foundation.h>
1111

12+
#import <Parse/PFConstants.h>
13+
1214
#import "PFCoreDataProvider.h"
1315
#import "PFCurrentObjectControlling.h"
1416
#import "PFDataProvider.h"
17+
#import "PFMacros.h"
1518

1619
extern NSString *const PFCurrentInstallationFileName;
1720
extern NSString *const PFCurrentInstallationPinName;
1821

19-
@class BFTask;
22+
@class BFTask PF_GENERIC(__covariant BFGenericType);
2023
@class PFInstallation;
2124

2225
@interface PFCurrentInstallationController : NSObject <PFCurrentObjectControlling>

Parse/Internal/LocalDataStore/OfflineQueryLogic/PFOfflineQueryLogic.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,18 @@
99

1010
#import <Foundation/Foundation.h>
1111

12-
@class BFTask;
12+
#import <Parse/PFConstants.h>
13+
14+
#import "PFMacros.h"
15+
16+
@class BFTask PF_GENERIC(__covariant BFGenericType);
1317
@class PFObject;
1418
@class PFOfflineStore;
1519
@class PFQueryState;
1620
@class PFSQLiteDatabase;
1721
@class PFUser;
1822

19-
typedef BFTask *(^PFConstraintMatcherBlock)(PFObject *object, PFSQLiteDatabase *database);
23+
typedef BFTask PF_GENERIC(NSNumber *)* (^PFConstraintMatcherBlock)(PFObject *object, PFSQLiteDatabase *database);
2024

2125
typedef NS_OPTIONS(uint8_t, PFOfflineQueryOption) {
2226
PFOfflineQueryOptionOrder = 1 << 0,

Parse/Internal/LocalDataStore/OfflineStore/PFOfflineStore.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,11 @@
99

1010
#import <Foundation/Foundation.h>
1111

12-
@class BFTask;
12+
#import <Parse/PFConstants.h>
13+
14+
#import "PFMacros.h"
15+
16+
@class BFTask PF_GENERIC(__covariant BFGenericType);
1317
@class PFFileManager;
1418
@class PFObject;
1519
@class PFPin;

Parse/Internal/LocalDataStore/SQLite/PFSQLiteDatabase.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,13 @@
99

1010
#import <Foundation/Foundation.h>
1111

12-
@class BFTask;
12+
#import <Parse/PFConstants.h>
13+
14+
#import "PFMacros.h"
15+
16+
@class BFTask PF_GENERIC(__covariant BFGenericType);
1317
@class PFFileManager;
18+
@class PFSQLiteDatabaseResult;
1419

1520
/*!
1621
Argument count given in executeSQLAsync or executeQueryAsync is invalid.

Parse/Internal/LocalDataStore/SQLite/PFSQLiteDatabaseController.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@
99

1010
#import <Foundation/Foundation.h>
1111

12-
@class BFTask;
12+
#import <Parse/PFConstants.h>
13+
14+
@class BFTask PF_GENERIC(__covariant BFGenericType);
1315
@class PFFileManager;
1416
@class PFSQLiteDatabase;
1517

Parse/Internal/Object/BatchController/PFObjectBatchController.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,12 @@
99

1010
#import <Foundation/Foundation.h>
1111

12+
#import <Parse/PFConstants.h>
13+
1214
#import "PFDataProvider.h"
15+
#import "PFMacros.h"
1316

14-
@class BFTask;
17+
@class BFTask PF_GENERIC(__covariant BFGenericType);
1518
@class PFObject;
1619

1720
NS_ASSUME_NONNULL_BEGIN

Parse/Internal/Object/Controller/PFObjectController.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212
#import "PFDataProvider.h"
1313
#import "PFObjectControlling.h"
1414

15-
@class BFTask;
15+
16+
@class BFTask PF_GENERIC(__covariant BFGenericType);
1617
@class PFObject;
1718

1819
NS_ASSUME_NONNULL_BEGIN

Parse/Internal/Object/Controller/PFObjectControlling.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,11 @@
99

1010
#import <Foundation/Foundation.h>
1111

12-
@class BFTask;
12+
#import <Parse/PFConstants.h>
13+
14+
#import "PFMacros.h"
15+
16+
@class BFTask PF_GENERIC(__covariant BFGenericType);
1317
@class PFObject;
1418

1519
NS_ASSUME_NONNULL_BEGIN

Parse/Internal/Object/CurrentController/PFCurrentObjectControlling.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,11 @@
99

1010
#import <Foundation/Foundation.h>
1111

12+
#import <Parse/PFConstants.h>
13+
1214
NS_ASSUME_NONNULL_BEGIN
1315

14-
@class BFTask;
16+
@class BFTask PF_GENERIC(__covariant BFGenericType);
1517
@class PFObject;
1618

1719
typedef NS_ENUM(NSUInteger, PFCurrentObjectStorageType) {

Parse/Internal/Object/FilePersistence/PFObjectFilePersistenceController.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,12 @@
99

1010
#import <Foundation/Foundation.h>
1111

12+
#import <Parse/PFConstants.h>
13+
1214
#import "PFDataProvider.h"
15+
#import "PFMacros.h"
1316

14-
@class BFTask;
17+
@class BFTask PF_GENERIC(__covariant BFGenericType);
1518
@class PFObject;
1619

1720
@interface PFObjectFilePersistenceController : NSObject

Parse/Internal/Object/PFObjectPrivate.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
#import "PFMulticastDelegate.h"
1919
#import "PFObjectControlling.h"
2020

21-
@class BFTask;
21+
@class BFTask PF_GENERIC(__covariant BFGenericType);
2222
@class PFCurrentUserController;
2323
@class PFFieldOperation;
2424
@class PFJSONCacheItem;

Parse/Internal/Object/PinningStore/PFPinningObjectStore.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,14 @@
99

1010
#import <Foundation/Foundation.h>
1111

12+
#import <Parse/PFConstants.h>
13+
1214
#import "PFDataProvider.h"
1315

1416
NS_ASSUME_NONNULL_BEGIN
1517

16-
@class BFTask;
18+
@class BFTask PF_GENERIC(__covariant BFGenericType);
19+
@class PFPin;
1720

1821
@interface PFPinningObjectStore : NSObject
1922

Parse/Internal/PFCommandCache.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,10 @@
99

1010
#import <Foundation/Foundation.h>
1111

12+
#import <Parse/PFConstants.h>
13+
1214
#import "PFEventuallyQueue.h"
1315

14-
@class BFTask;
1516
@class PFCommandCacheTestHelper;
1617
@class PFObject;
1718

Parse/Internal/PFEncoder.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,11 @@
99

1010
#import <Foundation/Foundation.h>
1111

12-
@class BFTask;
12+
#import <Parse/PFConstants.h>
13+
14+
#import "PFMacros.h"
15+
16+
@class BFTask PF_GENERIC(__covariant BFGenericType);
1317
@class PFObject;
1418
@class PFOfflineStore;
1519
@class PFSQLiteDatabase;

Parse/Internal/PFEventuallyPin.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,12 @@
99

1010
#import <Foundation/Foundation.h>
1111

12+
#import <Parse/PFConstants.h>
13+
1214
#import "PFObject.h"
1315
#import "PFSubclassing.h"
1416

15-
@class BFTask;
17+
@class BFTask PF_GENERIC(__covariant BFGenericType);
1618
@protocol PFNetworkCommand;
1719

1820
extern NSString *const PFEventuallyPinPinName;

Parse/Internal/PFEventuallyQueue.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,13 @@
99

1010
#import <Foundation/Foundation.h>
1111

12+
#import <Parse/PFConstants.h>
13+
1214
#import "PFMacros.h"
1315
#import "PFNetworkCommand.h"
1416

15-
@class BFTask;
17+
@class BFTask PF_GENERIC(__covariant BFGenericType);
18+
@class PFEventuallyPin;
1619
@class PFEventuallyQueueTestHelper;
1720
@class PFObject;
1821
@protocol PFCommandRunning;

Parse/Internal/PFFileManager.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,12 @@
99

1010
#import <Foundation/Foundation.h>
1111

12+
#import <Parse/PFConstants.h>
13+
14+
#import "PFMacros.h"
15+
1216
@class BFExecutor;
13-
@class BFTask;
17+
@class BFTask PF_GENERIC(__covariant BFGenericType);
1418

1519
typedef NS_OPTIONS(uint8_t, PFFileManagerOptions) {
1620
PFFileManagerOptionSkipBackup = 1 << 0,

Parse/Internal/PFMacros.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,4 +122,16 @@ __strong __typeof__(var) var = var ## _weak;
122122
}) \
123123
)
124124

125+
/*!
126+
This exists to use along with bolts generic tasks. Instead of returning a BFTask with no generic type, or a generic
127+
type of 'NSNull' when there is no usable result from a task, we use the type 'PFVoid', which will always have a value
128+
of 'nil'.
129+
130+
This allows us to more easily descern between methods that have not yet updated the return type of their tasks, as well
131+
as provide a more enforced API contract to the caller (as sending any message to PFVoid will result in a compile time
132+
error).
133+
*/
134+
@class _PFVoid_Nonexistant;
135+
typedef _PFVoid_Nonexistant *PFVoid;
136+
125137
#endif

Parse/Internal/PFTaskQueue.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@
99

1010
#import <Foundation/Foundation.h>
1111

12-
@class BFTask;
12+
#import <Parse/PFConstants.h>
13+
14+
@class BFTask PF_GENERIC(__covariant BFGenericType);
1315

1416
@interface PFTaskQueue : NSObject
1517

0 commit comments

Comments
 (0)