1 // Copyright 2015-present 650 Industries. All rights reserved. 2 3 #import <ExpoModulesCore/EXTaskInterface.h> 4 #import <ExpoModulesCore/EXTaskManagerInterface.h> 5 6 @protocol EXTaskServiceInterface 7 8 /** 9 * Returns boolean value whether the task with given name is already registered for given appId. 10 */ 11 - (BOOL)hasRegisteredTaskWithName:(nonnull NSString *)taskName 12 forAppId:(nonnull NSString *)appId; 13 14 /** 15 * Registers task in any kind of persistent storage, so it could be restored in future sessions. 16 */ 17 - (void)registerTaskWithName:(nonnull NSString *)taskName 18 appId:(nonnull NSString *)appId 19 appUrl:(nonnull NSString *)appUrl 20 consumerClass:(nonnull Class)consumerClass 21 options:(nullable NSDictionary *)options; 22 23 /** 24 * Unregisters task with given name and for given appId. If consumer class is provided, 25 * it can throw an exception if task's consumer is not a member of that class. 26 */ 27 - (void)unregisterTaskWithName:(nonnull NSString *)taskName 28 forAppId:(nonnull NSString *)appId 29 consumerClass:(nullable Class)consumerClass; 30 31 /** 32 * Unregisters all tasks registered for the app with given appId. 33 */ 34 - (void)unregisterAllTasksForAppId:(nonnull NSString *)appId; 35 36 /** 37 * Returns boolean value whether or not the task's consumer is a member of given class. 38 */ 39 - (BOOL)taskWithName:(nonnull NSString *)taskName 40 forAppId:(nonnull NSString *)appId 41 hasConsumerOfClass:(nonnull Class)consumerClass; 42 43 /** 44 * Returns options associated with the task with given name and appId or nil if task not found. 45 */ 46 - (nullable NSDictionary *)getOptionsForTaskName:(nonnull NSString *)taskName 47 forAppId:(nonnull NSString *)appId; 48 49 /** 50 * Returns an array of registered tasks for given appId. 51 */ 52 - (nonnull NSArray *)getRegisteredTasksForAppId:(nullable NSString *)appId; 53 54 /** 55 * Notifies the service that a task has just finished. 56 */ 57 - (void)notifyTaskWithName:(nonnull NSString *)taskName 58 forAppId:(nonnull NSString *)appId 59 didFinishWithResponse:(nonnull NSDictionary *)response; 60 61 /** 62 * Passes a reference of task manager for given appId to the service. 63 */ 64 - (void)setTaskManager:(nonnull id<EXTaskManagerInterface>)taskManager 65 forAppId:(nonnull NSString *)appId 66 withUrl:(nonnull NSString *)appUrl; 67 68 @end 69