| // Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file | |
| // for details. All rights reserved. Use of this source code is governed by a | |
| // BSD-style license that can be found in the LICENSE file. | |
| #import "CUPHTTPForwardedDelegate.h" | |
| #import <Foundation/Foundation.h> | |
| #include <os/log.h> | |
| @implementation CUPHTTPForwardedDelegate | |
| - (id) initWithSession:(NSURLSession *)session | |
| task:(NSURLSessionTask *) task { | |
| self = [super init]; | |
| if (self != nil) { | |
| self->_session = [session retain]; | |
| self->_task = [task retain]; | |
| self->_lock = [NSLock new]; | |
| } | |
| return self; | |
| } | |
| - (void) dealloc { | |
| [self->_session release]; | |
| [self->_task release]; | |
| [self->_lock release]; | |
| [super dealloc]; | |
| } | |
| - (void) finish { | |
| [self->_lock unlock]; | |
| } | |
| @end | |
| @implementation CUPHTTPForwardedRedirect | |
| - (id) initWithSession:(NSURLSession *)session | |
| task:(NSURLSessionTask *) task | |
| response:(NSHTTPURLResponse *)response | |
| request:(NSURLRequest *)request{ | |
| self = [super initWithSession: session task: task]; | |
| if (self != nil) { | |
| self->_response = [response retain]; | |
| self->_request = [request retain]; | |
| } | |
| return self; | |
| } | |
| - (void) dealloc { | |
| [self->_response release]; | |
| [self->_request release]; | |
| [super dealloc]; | |
| } | |
| - (void) finishWithRequest:(nullable NSURLRequest *) request { | |
| self->_redirectRequest = [request retain]; | |
| [super finish]; | |
| } | |
| @end | |
| @implementation CUPHTTPForwardedResponse | |
| - (id) initWithSession:(NSURLSession *)session | |
| task:(NSURLSessionTask *) task | |
| response:(NSURLResponse *)response { | |
| self = [super initWithSession: session task: task]; | |
| if (self != nil) { | |
| self->_response = [response retain]; | |
| } | |
| return self; | |
| } | |
| - (void) dealloc { | |
| [self->_response release]; | |
| [super dealloc]; | |
| } | |
| - (void) finishWithDisposition:(NSURLSessionResponseDisposition) disposition { | |
| self->_disposition = disposition; | |
| [super finish]; | |
| } | |
| @end | |
| @implementation CUPHTTPForwardedData | |
| - (id) initWithSession:(NSURLSession *)session | |
| task:(NSURLSessionTask *) task | |
| data:(NSData *)data { | |
| self = [super initWithSession: session task: task]; | |
| if (self != nil) { | |
| self->_data = [data retain]; | |
| } | |
| return self; | |
| } | |
| - (void) dealloc { | |
| [self->_data release]; | |
| [super dealloc]; | |
| } | |
| @end | |
| @implementation CUPHTTPForwardedComplete | |
| - (id) initWithSession:(NSURLSession *)session | |
| task:(NSURLSessionTask *) task | |
| error:(NSError *)error { | |
| self = [super initWithSession: session task: task]; | |
| if (self != nil) { | |
| self->_error = [error retain]; | |
| } | |
| return self; | |
| } | |
| - (void) dealloc { | |
| [self->_error release]; | |
| [super dealloc]; | |
| } | |
| @end | |
| @implementation CUPHTTPForwardedFinishedDownloading | |
| - (id) initWithSession:(NSURLSession *)session | |
| downloadTask:(NSURLSessionDownloadTask *)downloadTask | |
| url:(NSURL *)location { | |
| self = [super initWithSession: session task: downloadTask]; | |
| if (self != nil) { | |
| self->_location = [location retain]; | |
| } | |
| return self; | |
| } | |
| - (void) dealloc { | |
| [self->_location release]; | |
| [super dealloc]; | |
| } | |
| @end | |
| @implementation CUPHTTPForwardedWebSocketOpened | |
| - (id) initWithSession:(NSURLSession *)session | |
| webSocketTask:(NSURLSessionWebSocketTask *)webSocketTask | |
| didOpenWithProtocol:(NSString *)protocol { | |
| self = [super initWithSession: session task: webSocketTask]; | |
| if (self != nil) { | |
| self->_protocol = [protocol retain]; | |
| } | |
| return self; | |
| } | |
| - (void) dealloc { | |
| [self->_protocol release]; | |
| [super dealloc]; | |
| } | |
| @end | |
| @implementation CUPHTTPForwardedWebSocketClosed | |
| - (id) initWithSession:(NSURLSession *)session | |
| webSocketTask:(NSURLSessionWebSocketTask *)webSocketTask | |
| code:(NSURLSessionWebSocketCloseCode)closeCode | |
| reason:(NSData *)reason { | |
| self = [super initWithSession: session task: webSocketTask]; | |
| if (self != nil) { | |
| self->_closeCode = closeCode; | |
| self->_reason = [reason retain]; | |
| } | |
| return self; | |
| } | |
| - (void) dealloc { | |
| [self->_reason release]; | |
| [super dealloc]; | |
| } | |
| @end | |