| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- // Copyright 2022 Google LLC
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- import Foundation
- import FirebaseStorageInternal
- /**
- * A superclass to all Storage*Tasks, including StorageUploadTask
- * and StorageDownloadTask, to provide state transitions, event raising, and common storage
- * or metadata and errors.
- * Callbacks are always fired on the developer specified callback queue.
- * If no queue is specified by the developer, it defaults to the main queue.
- * Currently not thread safe, so only call methods on the main thread.
- */
- @objc(FIRStorageTask) open class StorageTask: NSObject {
- /**
- * An immutable view of the task and associated metadata, progress, error, etc.
- */
- @objc public var snapshot: StorageTaskSnapshot {
- return StorageTaskSnapshot(task: self)
- }
- // MARK: - Internal APIs
- internal let impl: FIRIMPLStorageTask
- internal init(impl: FIRIMPLStorageTask) {
- self.impl = impl
- }
- }
- /**
- * Defines task operations such as pause, resume, cancel, and enqueue for all tasks.
- * All tasks are required to implement enqueue, which begins the task, and may optionally
- * implement pause, resume, and cancel, which operate on the task to pause, resume, and cancel
- * operations.
- */
- @objc(FIRStorageTaskManagement) public protocol StorageTaskManagement: NSObjectProtocol {
- /**
- * Prepares a task and begins execution.
- */
- @objc func enqueue() -> Void
- /**
- * Pauses a task currently in progress.
- */
- @objc optional func pause() -> Void
- /**
- * Pauses a task currently in progress.
- */
- @objc optional func cancel() -> Void
- /**
- * Pauses a task currently in progress.
- */
- @objc optional func resume() -> Void
- }
|