view dwt/internal/cocoa/NSURLRequest.d @ 13:f565d3a95c0a

Ported dwt.internal
author Jacob Carlborg <doob@me.com> <jacob.carlborg@gmail.com>
date Fri, 22 Aug 2008 16:46:34 +0200
parents 8b48be5454ce
children d8635bb48c7c
line wrap: on
line source

/*******************************************************************************
 * Copyright (c) 2007 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *     
 * Port to the D programming language:
 *     Jacob Carlborg <jacob.carlborg@gmail.com>
 *******************************************************************************/
module dwt.internal.cocoa.NSURLRequest;

import dwt.internal.cocoa.id;
import dwt.internal.cocoa.NSData;
import dwt.internal.cocoa.NSDate : NSTimeInterval;
import dwt.internal.cocoa.NSDictionary;
import dwt.internal.cocoa.NSInputStream;
import dwt.internal.cocoa.NSInteger;
import dwt.internal.cocoa.NSObject;
import dwt.internal.cocoa.NSString;
import dwt.internal.cocoa.NSURL;
import dwt.internal.cocoa.NSURLRequest;
import dwt.internal.cocoa.OS;
import objc = dwt.internal.objc.runtime;

enum NSURLRequestCachePolicy : NSUInteger
{
    NSURLRequestUseProtocolCachePolicy = 0,
    NSURLRequestReloadIgnoringLocalCacheData = 1,
    NSURLRequestReloadIgnoringLocalAndRemoteCacheData = 4,
    NSURLRequestReloadIgnoringCacheData = NSURLRequestReloadIgnoringLocalCacheData,
    NSURLRequestReturnCacheDataElseLoad = 2,
    NSURLRequestReturnCacheDataDontLoad = 3,
    NSURLRequestReloadRevalidatingCacheData = 5
}

alias NSURLRequestCachePolicy.NSURLRequestUseProtocolCachePolicy NSURLRequestUseProtocolCachePolicy;
alias NSURLRequestCachePolicy.NSURLRequestReloadIgnoringLocalCacheData NSURLRequestReloadIgnoringLocalCacheData;
alias NSURLRequestCachePolicy.NSURLRequestReloadIgnoringLocalAndRemoteCacheData NSURLRequestReloadIgnoringLocalAndRemoteCacheData;
alias NSURLRequestCachePolicy.NSURLRequestReloadIgnoringCacheData NSURLRequestReloadIgnoringCacheData;
alias NSURLRequestCachePolicy.NSURLRequestReturnCacheDataElseLoad NSURLRequestReturnCacheDataElseLoad;
alias NSURLRequestCachePolicy.NSURLRequestReturnCacheDataDontLoad NSURLRequestReturnCacheDataDontLoad;
alias NSURLRequestCachePolicy.NSURLRequestReloadRevalidatingCacheData NSURLRequestReloadRevalidatingCacheData;

public class NSURLRequest : NSObject
{

    public this ()
    {
        super();
    }

    public this (objc.id id)
    {
        super(id);
    }

    public NSData HTTPBody ()
    {
        objc.id result = OS.objc_msgSend(this.id_, OS.sel_HTTPBody);
        return result !is null ? new NSData(result) : null;
    }

    public NSInputStream HTTPBodyStream ()
    {
        objc.id result = OS.objc_msgSend(this.id_, OS.sel_HTTPBodyStream);
        return result !is null ? new NSInputStream(result) : null;
    }

    public NSString HTTPMethod ()
    {
        objc.id result = OS.objc_msgSend(this.id_, OS.sel_HTTPMethod);
        return result !is null ? new NSString(result) : null;
    }

    public bool HTTPShouldHandleCookies ()
    {
        return OS.objc_msgSend(this.id_, OS.sel_HTTPShouldHandleCookies) !is null;
    }

    public NSURL URL ()
    {
        objc.id result = OS.objc_msgSend(this.id_, OS.sel_URL);
        return result !is null ? new NSURL(result) : null;
    }

    public NSDictionary allHTTPHeaderFields ()
    {
        objc.id result = OS.objc_msgSend(this.id_, OS.sel_allHTTPHeaderFields);
        return result !is null ? new NSDictionary(result) : null;
    }

    public NSURLRequestCachePolicy cachePolicy ()
    {
        return cast(NSURLRequestCachePolicy) OS.objc_msgSend(this.id_, OS.sel_cachePolicy);
    }

    public id initWithURL_ (NSURL URL)
    {
        objc.id result = OS.objc_msgSend(this.id_, OS.sel_initWithURL_1, URL !is null ? URL.id_ : null);
        return result !is null ? new id(result) : null;
    }

    public id initWithURL_cachePolicy_timeoutInterval_ (NSURL URL, NSURLRequestCachePolicy cachePolicy, NSTimeInterval timeoutInterval)
    {
        objc.id result = OS.objc_msgSend(this.id_, OS.sel_initWithURL_1cachePolicy_1timeoutInterval_1, URL !is null ? URL.id_ : null, cachePolicy,
                timeoutInterval);
        return result !is null ? new id(result) : null;
    }

    public NSURL mainDocumentURL ()
    {
        objc.id result = OS.objc_msgSend(this.id_, OS.sel_mainDocumentURL);
        return result !is null ? new NSURL(result) : null;
    }

    public static NSURLRequest static_requestWithURL_ (NSURL URL)
    {
        objc.id result = OS.objc_msgSend(OS.class_NSURLRequest, OS.sel_requestWithURL_1, URL !is null ? URL.id_ : null);
        return result !is null ? new NSURLRequest(result) : null;
    }

    public static id static_requestWithURL_cachePolicy_timeoutInterval_ (NSURL URL, NSURLRequestCachePolicy cachePolicy, NSTimeInterval timeoutInterval)
    {
        objc.id result = OS.objc_msgSend(OS.class_NSURLRequest, OS.sel_requestWithURL_1cachePolicy_1timeoutInterval_1, URL !is null ? URL.id_ : null,
                cachePolicy, timeoutInterval);
        return result !is null ? new id(result) : null;
    }

    public NSTimeInterval timeoutInterval ()
    {
        return cast(NSTimeInterval) OS.objc_msgSend_fpret(this.id_, OS.sel_timeoutInterval);
    }

    public NSString valueForHTTPHeaderField (NSString field)
    {
        objc.id result = OS.objc_msgSend(this.id_, OS.sel_valueForHTTPHeaderField_1, field !is null ? field.id_ : null);
        return result !is null ? new NSString(result) : null;
    }

}