jellyflood/Frameworks/GoogleCastSDK.xcframework/ios-arm64/GoogleCast.framework/Headers/GCKRequest.h

153 lines
4.2 KiB
Objective-C
Executable File

// Copyright 2015 Google Inc.
#import <GoogleCast/GCKDefines.h>
#import <Foundation/Foundation.h>
@class GCKError;
@protocol GCKRequestDelegate;
typedef NSInteger GCKRequestID;
NS_ASSUME_NONNULL_BEGIN
/**
* @enum GCKRequestAbortReason
* Enum defining the reasons that could cause a request to be aborted.
*
* @since 3.0
*/
typedef NS_ENUM(NSInteger, GCKRequestAbortReason) {
/** The request was aborted because a similar and overridding request was initiated. */
GCKRequestAbortReasonReplaced = 1,
/** The request was aborted after a call to @ref cancel on this request */
GCKRequestAbortReasonCancelled = 2,
};
/**
* An object for tracking an asynchronous request.
*
* See GCKRequestDelegate for the delegate protocol.
*
* @since 3.0
*/
GCK_EXPORT
@interface GCKRequest : NSObject
/**
* The delegate for receiving notifications about the status of the request.
*/
@property(nonatomic, weak, nullable) id<GCKRequestDelegate> delegate;
/**
* The unique ID assigned to this request.
*/
@property(nonatomic, assign, readonly) GCKRequestID requestID;
/**
* The error that caused the request to fail, if any, otherwise <code>nil</code>.
*/
@property(nonatomic, copy, readonly, nullable) GCKError *error;
/**
* A flag indicating whether the request is currently in progress.
*/
@property(nonatomic, assign, readonly) BOOL inProgress;
/**
* A flag indicating whether this is an external request--that is, one created by the application
* rather than by the framework itself.
*
* @since 3.4
*/
@property(nonatomic, assign, readonly) BOOL external;
/**
* Cancels the request. Canceling a request does not guarantee that the request will not complete
* on the receiver; it simply causes the sender to stop tracking the request.
*/
- (void)cancel;
/**
* Constructs a GCKRequest object for use by the calling application. Request objects created using
* this factory method can be managed by the application using the methods GCKRequest::complete,
* GCKRequest::failWithError:, and GCKRequest::abortWithReason:.
*
* @since 3.4
*/
+ (GCKRequest *)applicationRequest;
/**
* Completes the request and notifies the delegate accordingly. This method may only be called on
* GCKRequest objects that have been constructed by the application using the
* GCKRequest::applicationRequest factory method. Calling this method on a GCKRequest object that
* was created by the framework itself will raise an exception.
*
* @since 3.4
*/
- (void)complete;
/**
* Fails the request with an error and notifies the delegate accordingly. This method may only be
* called on GCKRequest objects that have been constructed by the application using the
* GCKRequest::requestWithID: factory method. Calling this method on a GCKRequest object that was
* created by the framework itself will raise an exception.
*
* @param error The error describing the failure.
*
* @since 3.4
*/
- (void)failWithError:(GCKError *)error;
/**
* Aborts the request with a reason and notifies the delegate accordingly. This method may only be
* called on GCKRequest objects that have been constructed by the application using the
* GCKRequest::requestWithID: factory method. Calling this method on a GCKRequest object that was
* created by the framework itself will raise an exception.
*
* @param reason The reason for the abort.
*
* @since 3.4
*/
- (void)abortWithReason:(GCKRequestAbortReason)reason;
@end
/**
* The GCKRequest delegate protocol.
*
* @since 3.0
*/
GCK_EXPORT
@protocol GCKRequestDelegate <NSObject>
@optional
/**
* Called when the request has successfully completed.
*
* @param request The request.
*/
- (void)requestDidComplete:(GCKRequest *)request;
/**
* Called when the request has failed.
*
* @param request The request.
* @param error The error describing the failure.
*/
- (void)request:(GCKRequest *)request didFailWithError:(GCKError *)error;
/**
* Called when the request is no longer being tracked. It does not guarantee that the request has
* succeed or failed.
*
* @param request The request.
* @param abortReason The reason why the request is no longer being tracked.
*/
- (void)request:(GCKRequest *)request didAbortWithReason:(GCKRequestAbortReason)abortReason;
@end
NS_ASSUME_NONNULL_END