PINOperationGroup.h 933 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. //
  2. // PINOperationGroup.h
  3. // PINQueue
  4. //
  5. // Created by Garrett Moon on 10/8/16.
  6. // Copyright © 2016 Pinterest. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import "PINOperationTypes.h"
  10. #import "PINOperationMacros.h"
  11. @class PINOperationQueue;
  12. NS_ASSUME_NONNULL_BEGIN
  13. @protocol PINGroupOperationReference;
  14. PINOP_SUBCLASSING_RESTRICTED
  15. @interface PINOperationGroup : NSObject
  16. - (instancetype)init NS_UNAVAILABLE;
  17. + (instancetype)asyncOperationGroupWithQueue:(PINOperationQueue *)operationQueue;
  18. - (nullable id <PINGroupOperationReference>)addOperation:(dispatch_block_t)operation;
  19. - (nullable id <PINGroupOperationReference>)addOperation:(dispatch_block_t)operation withPriority:(PINOperationQueuePriority)priority;
  20. - (void)start;
  21. - (void)cancel;
  22. - (void)setCompletion:(dispatch_block_t)completion;
  23. - (void)waitUntilComplete;
  24. @end
  25. @protocol PINGroupOperationReference <NSObject>
  26. @end
  27. NS_ASSUME_NONNULL_END