![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /proc/thread-self/root/usr/GNUstep/Local/Library/Headers/Foundation/ |
Upload File : |
#ifndef __NSURLSession_h_GNUSTEP_BASE_INCLUDE #define __NSURLSession_h_GNUSTEP_BASE_INCLUDE #import <Foundation/NSObject.h> #import <Foundation/NSURLRequest.h> #import <Foundation/NSHTTPCookieStorage.h> #if GS_HAVE_NSURLSESSION #if OS_API_VERSION(MAC_OS_X_VERSION_10_9,GS_API_LATEST) @protocol NSURLSessionDelegate; @protocol NSURLSessionTaskDelegate; @class GSMultiHandle; @class GSURLSessionTaskBody; @class NSError; @class NSHTTPURLResponse; @class NSOperationQueue; @class NSURL; @class NSURLAuthenticationChallenge; @class NSURLCache; @class NSURLCredential; @class NSURLCredentialStorage; @class NSURLRequest; @class NSURLResponse; @class NSURLSessionConfiguration; @class NSURLSessionDataTask; /** * NSURLSession is a replacement API for NSURLConnection. It provides * options that affect the policy of, and various aspects of the * mechanism by which NSURLRequest objects are retrieved from the * network.<br /> * * An NSURLSession may be bound to a delegate object. The delegate is * invoked for certain events during the lifetime of a session. * * NSURLSession instances are threadsafe. * * An NSURLSession creates NSURLSessionTask objects which represent the * action of a resource being loaded. * * NSURLSessionTask objects are always created in a suspended state and * must be sent the -resume message before they will execute. * * Subclasses of NSURLSessionTask are used to syntactically * differentiate between data and file downloads. * * An NSURLSessionDataTask receives the resource as a series of calls to * the URLSession:dataTask:didReceiveData: delegate method. This is type of * task most commonly associated with retrieving objects for immediate parsing * by the consumer. */ GS_EXPORT_CLASS @interface NSURLSession : NSObject { NSOperationQueue *_delegateQueue; id <NSURLSessionDelegate> _delegate; NSURLSessionConfiguration *_configuration; NSString *_sessionDescription; GSMultiHandle *_multiHandle; } /* * Customization of NSURLSession occurs during creation of a new session. * If you do specify a delegate, the delegate will be retained until after * the delegate has been sent the URLSession:didBecomeInvalidWithError: message. */ + (NSURLSession*) sessionWithConfiguration: (NSURLSessionConfiguration*)configuration delegate: (id <NSURLSessionDelegate>)delegate delegateQueue: (NSOperationQueue*)queue; - (NSOperationQueue*) delegateQueue; - (id <NSURLSessionDelegate>) delegate; - (NSURLSessionConfiguration*) configuration; - (NSString*) sessionDescription; - (void) setSessionDescription: (NSString*)sessionDescription; /* -finishTasksAndInvalidate returns immediately and existing tasks will be * allowed to run to completion. New tasks may not be created. The session * will continue to make delegate callbacks until * URLSession:didBecomeInvalidWithError: has been issued. * * When invalidating a background session, it is not safe to create another * background session with the same identifier until * URLSession:didBecomeInvalidWithError: has been issued. */ - (void) finishTasksAndInvalidate; /* -invalidateAndCancel acts as -finishTasksAndInvalidate, but issues * -cancel to all outstanding tasks for this session. Note task * cancellation is subject to the state of the task, and some tasks may * have already have completed at the time they are sent -cancel. */ - (void) invalidateAndCancel; /* * NSURLSessionTask objects are always created in a suspended state and * must be sent the -resume message before they will execute. */ /* Creates a data task with the given request. * The request may have a body stream. */ - (NSURLSessionDataTask*) dataTaskWithRequest: (NSURLRequest*)request; /* Creates a data task to retrieve the contents of the given URL. */ - (NSURLSessionDataTask*) dataTaskWithURL: (NSURL*)url; @end typedef NS_ENUM(NSUInteger, NSURLSessionTaskState) { /* The task is currently being serviced by the session */ NSURLSessionTaskStateRunning = 0, NSURLSessionTaskStateSuspended = 1, /* The task has been told to cancel. * The session will receive URLSession:task:didCompleteWithError:. */ NSURLSessionTaskStateCanceling = 2, /* The task has completed and the session will receive no more * delegate notifications */ NSURLSessionTaskStateCompleted = 3, }; /* * NSURLSessionTask - a cancelable object that refers to the lifetime * of processing a given request. */ GS_EXPORT_CLASS @interface NSURLSessionTask : NSObject <NSCopying> { /** An identifier for this task, assigned by and unique * to the owning session */ NSUInteger _taskIdentifier; /** The request this task was created to handle. */ NSURLRequest *_originalRequest; /** The request this task is currently handling. This may differ from * originalRequest due to http server redirection */ NSURLRequest *_currentRequest; /** The response to the current request, which may be nil if no response * has been received */ NSURLResponse *_response; /** number of body bytes already received */ int64_t _countOfBytesReceived; /** number of body bytes already sent */ int64_t _countOfBytesSent; /** number of body bytes we expect to send, derived from * the Content-Length of the HTTP request */ int64_t _countOfBytesExpectedToSend; /** number of byte bytes we expect to receive, usually derived from the * Content-Length header of an HTTP response. */ int64_t _countOfBytesExpectedToReceive; /** a description of the current task for diagnostic purposes */ NSString *_taskDescription; /** The current state of the task within the session. */ NSURLSessionTaskState _state; /** The error, if any, delivered via -URLSession:task:didCompleteWithError: * This is nil until an error has occured. */ NSError *_error; /** The dispatch queue used to handle this request/response. * This is actualy a libdispatch queue of type dispatch_queue_t, but on all * known implementations this is a pointer, so void* is the correct size. */ void *_workQueue; NSUInteger _suspendCount; GSURLSessionTaskBody *_knownBody; } - (NSUInteger) taskIdentifier; - (NSURLRequest*) originalRequest; - (NSURLRequest*) currentRequest; - (NSURLResponse*) response; - (void) setResponse: (NSURLResponse*)response; - (int64_t) countOfBytesReceived; - (int64_t) countOfBytesSent; - (int64_t) countOfBytesExpectedToSend; - (int64_t) countOfBytesExpectedToReceive; - (NSString*) taskDescription; - (void) setTaskDescription: (NSString*)taskDescription; - (NSURLSessionTaskState) state; - (NSError*) error; - (NSURLSession*) session; /* -cancel returns immediately, but marks a task as being canceled. * The task will signal -URLSession:task:didCompleteWithError: with an * error value of { NSURLErrorDomain, NSURLErrorCancelled }. In some * cases, the task may signal other work before it acknowledges the * cancelation. -cancel may be sent to a task that has been suspended. */ - (void) cancel; /* * Suspending a task will prevent the NSURLSession from continuing to * load data. There may still be delegate calls made on behalf of * this task (for instance, to report data received while suspending) * but no further transmissions will be made on behalf of the task * until -resume is sent. The timeout timer associated with the task * will be disabled while a task is suspended. */ - (void) suspend; - (void) resume; @end GS_EXPORT_CLASS @interface NSURLSessionDataTask : NSURLSessionTask @end GS_EXPORT_CLASS @interface NSURLSessionUploadTask : NSURLSessionDataTask @end GS_EXPORT_CLASS @interface NSURLSessionDownloadTask : NSURLSessionTask @end #if OS_API_VERSION(MAC_OS_X_VERSION_10_11,GS_API_LATEST) GS_EXPORT_CLASS @interface NSURLSessionStreamTask : NSURLSessionTask @end #endif /* * Configuration options for an NSURLSession. When a session is * created, a copy of the configuration object is made - you cannot * modify the configuration of a session after it has been created. */ GS_EXPORT_CLASS @interface NSURLSessionConfiguration : NSObject <NSCopying> { NSURLCache *_URLCache; NSURLRequestCachePolicy _requestCachePolicy; NSArray *_protocolClasses; NSInteger _HTTPMaximumConnectionLifetime; NSInteger _HTTPMaximumConnectionsPerHost; BOOL _HTTPShouldUsePipelining; NSHTTPCookieAcceptPolicy _HTTPCookieAcceptPolicy; NSHTTPCookieStorage *_HTTPCookieStorage; NSURLCredentialStorage *_URLCredentialStorage; BOOL _HTTPShouldSetCookies; NSDictionary *_HTTPAdditionalHeaders; } - (NSURLRequest*) configureRequest: (NSURLRequest*)request; @property (class, readonly, strong) NSURLSessionConfiguration *defaultSessionConfiguration; - (NSDictionary*) HTTPAdditionalHeaders; - (NSHTTPCookieAcceptPolicy) HTTPCookieAcceptPolicy; - (NSHTTPCookieStorage*) HTTPCookieStorage; #if !NO_GNUSTEP - (NSInteger) HTTPMaximumConnectionLifetime; #endif - (NSInteger) HTTPMaximumConnectionsPerHost; - (BOOL) HTTPShouldSetCookies; - (BOOL) HTTPShouldUsePipelining; - (NSArray*) protocolClasses; - (NSURLRequestCachePolicy) requestCachePolicy; - (void) setHTTPAdditionalHeaders: (NSDictionary*)headers; - (void) setHTTPCookieAcceptPolicy: (NSHTTPCookieAcceptPolicy)policy; - (void) setHTTPCookieStorage: (NSHTTPCookieStorage*)storage; #if !NO_GNUSTEP /** Permits a session to be configured so that older connections are reused. * A value of zero or less uses the default behavior where connections are * reused as long as they are not older than 118 seconds, which is reasonable * for the vast majority if situations. */ - (void) setHTTPMaximumConnectionLifetime: (NSInteger)n; #endif - (void) setHTTPMaximumConnectionsPerHost: (NSInteger)n; - (void) setHTTPShouldSetCookies: (BOOL)flag; - (void) setHTTPShouldUsePipelining: (BOOL)flag; - (void) setRequestCachePolicy: (NSURLRequestCachePolicy)policy; - (void) setURLCache: (NSURLCache*)cache; - (void) setURLCredentialStorage: (NSURLCredentialStorage*)storage; - (NSURLCache*) URLCache; - (NSURLCredentialStorage*) URLCredentialStorage; @end typedef NS_ENUM(NSInteger, NSURLSessionAuthChallengeDisposition) { NSURLSessionAuthChallengeUseCredential = 0, NSURLSessionAuthChallengePerformDefaultHandling = 1, NSURLSessionAuthChallengeCancelAuthenticationChallenge = 2, NSURLSessionAuthChallengeRejectProtectionSpace = 3 }; typedef NS_ENUM(NSInteger, NSURLSessionResponseDisposition) { NSURLSessionResponseCancel = 0, NSURLSessionResponseAllow = 1, NSURLSessionResponseBecomeDownload = 2, NSURLSessionResponseBecomeStream = 3 }; @protocol NSURLSessionDelegate <NSObject> @optional /* The last message a session receives. A session will only become * invalid because of a systemic error or when it has been * explicitly invalidated, in which case the error parameter will be nil. */ - (void) URLSession: (NSURLSession*)session didBecomeInvalidWithError: (NSError*)error; /* Implementing this method permits a delegate to provide authentication * credentials in response to a challenge from the remote server. */ - (void) URLSession: (NSURLSession*)session didReceiveChallenge: (NSURLAuthenticationChallenge*)challenge completionHandler: (void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential *credential))handler; @end @protocol NSURLSessionTaskDelegate <NSURLSessionDelegate> @optional /* Sent as the last message related to a specific task. Error may be * nil, which implies that no error occurred and this task is complete. */ - (void ) URLSession: (NSURLSession*)session task: (NSURLSessionTask*)task didCompleteWithError: (NSError*)error; /* Called to request authentication credentials from the delegate when * an authentication request is received from the server which is specific * to this task. */ - (void) URLSession: (NSURLSession*)session task: (NSURLSessionTask*)task didReceiveChallenge: (NSURLAuthenticationChallenge*)challenge completionHandler: (void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential *credential))handler; /* Periodically informs the delegate of the progress of sending body content * to the server. */ - (void) URLSession: (NSURLSession*)session task: (NSURLSessionTask*)task didSendBodyData: (int64_t)bytesSent totalBytesSent: (int64_t)totalBytesSent totalBytesExpectedToSend: (int64_t)totalBytesExpectedToSend; /* An HTTP request is attempting to perform a redirection to a different * URL. You must invoke the completion routine to allow the * redirection, allow the redirection with a modified request, or * pass nil to the completionHandler to cause the body of the redirection * response to be delivered as the payload of this request. The default * is to follow redirections. * */ - (void) URLSession: (NSURLSession*)session task: (NSURLSessionTask*)task willPerformHTTPRedirection: (NSHTTPURLResponse*)response newRequest: (NSURLRequest*)request completionHandler: (void (^)(NSURLRequest*))completionHandler; @end @protocol NSURLSessionDataDelegate <NSURLSessionTaskDelegate> @optional /* Sent when data is available for the delegate to consume. */ - (void) URLSession: (NSURLSession*)session dataTask: (NSURLSessionDataTask*)dataTask didReceiveData: (NSData*)data; /** Informs the delegate of a response. This message is sent when all the * response headers have arrived, before the body of the response arrives. */ - (void) URLSession: (NSURLSession*)session dataTask: (NSURLSessionDataTask*)dataTask didReceiveResponse: (NSURLResponse*)response completionHandler: (void (^)(NSURLSessionResponseDisposition disposition))completionHandler; @end #endif #endif #endif