DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Untracked file

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* ***** BEGIN LICENSE BLOCK *****
 * Version: NPL 1.1/GPL 2.0/LGPL 2.1
 *
 * The contents of this file are subject to the Netscape Public License
 * Version 1.1 (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.mozilla.org/NPL/
 *
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 * for the specific language governing rights and limitations under the
 * License.
 *
 * The Original Code is mozilla.org code.
 *
 * The Initial Developer of the Original Code is 
 * Netscape Communications Corporation.
 * Portions created by the Initial Developer are Copyright (C) 1998
 * the Initial Developer. All Rights Reserved.
 *
 * Contributor(s):
 *   Blake Ross <blaker@netscape.com> 
 *
 * Alternatively, the contents of this file may be used under the terms of
 * either the GNU General Public License Version 2 or later (the "GPL"), or 
 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 * in which case the provisions of the GPL or the LGPL are applicable instead
 * of those above. If you wish to allow use of your version of this file only
 * under the terms of either the GPL or the LGPL, and not to allow others to
 * use your version of this file under the terms of the NPL, indicate your
 * decision by deleting the provisions above and replace them with the notice
 * and other provisions required by the GPL or the LGPL. If you do not delete
 * the provisions above, a recipient may use your version of this file under
 * the terms of any one of the NPL, the GPL or the LGPL.
 *
 * ***** END LICENSE BLOCK ***** */

#include "nsISupports.idl"

interface nsIURI;
interface nsILocalFile;
interface nsIObserver;
interface nsIWebBrowserPersist;
interface nsIWebProgressListener;
interface nsIMIMEInfo;

[scriptable, uuid(d80095a7-e81c-464c-a13f-ecb84feb969f)]
interface nsITransfer : nsISupports {
    
    /**
     * Initializes the transfer with certain properties.  This function must
     * be called prior to accessing any properties on this interface.
     *
     * @param aSource The source URI of the transfer.
     *
     * @param aTarget The target URI of the transfer.
     *
     * @param aDisplayName The user-readable description of the transfer.
     *
     * @param aMIMEInfo The MIME info associated with the target,
     *                  including MIME type and helper app when appropriate.
     *                  This parameter is optional.
     *
     * @param aPersist The "persist" used for this transfer.  If set,
     *                 the manager will set its listener to the transfer item
     *                 and use it for cancellation.  If not set, the client
     *                 is expected to set the transfer item as the listener on
     *                 whatever transfer component is being used, and to
     *                 set an observer on the transfer item that listens for
     *                 the "oncancel" topic and cancels the transfer.
     */
    void init(in nsIURI aSource,
              in nsIURI aTarget,
              in wstring aDisplayName,
              in nsIMIMEInfo aMIMEInfo,
              in long long startTime,
              in nsIWebBrowserPersist aPersist);

    /**
     * The source of the transfer.
     */
    readonly attribute nsIURI source;
    
    /**
     * The target of the transfer.
     */
    readonly attribute nsIURI target;
 
    /**
     * Optional. If set, it will be used for cancellation, and the transfer
     * will be set as its listener.  If not, |observer| should be set to listen
     * and respond accordingly to topics like oncancel, and the client promises
     * to set the transfer item as the listener for whatever transfer component
     * is being used.
     */
    readonly attribute nsIWebBrowserPersist persist;
   
    /**
     * The percentage of transfer completed;
     */
    readonly attribute PRInt32 percentComplete;

    /**
     * The user-readable description of the transfer.
     */
    attribute wstring displayName;

    /**
     * The time a transfer was started.
     */
    readonly attribute long long startTime;
    
    /**
     * Optional. If set, it will contain the target's relevant MIME information.
     * This includes it's MIME Type, helper app, and whether that helper should be
     * executed.
     */
    readonly attribute nsIMIMEInfo MIMEInfo;

    /**
     * Optional; transfering information is passed to this listener and used to
     * update client UI.
     */
    attribute nsIWebProgressListener listener;
 
    /**
     * If set, receives notifications of events like cancel ("oncancel").
     * Must be set if no persist object is specified (see above).
     */
    attribute nsIObserver observer;
};

[scriptable, uuid(b0aae798-78aa-4769-9f0e-9aef4cf9474d)]
interface nsIDownload : nsITransfer {
    
    /**
     * The target of a download is always a file on the local file system.
     */
    readonly attribute nsILocalFile targetFile;
};

%{C++
#define NS_DOWNLOAD_CONTRACTID "@mozilla.org/download;1"
// {E3FA9D0A-1DD1-11B2-BDEF-8C720B597445}
#define NS_DOWNLOAD_CID \
    { 0xe3fa9d0a, 0x1dd1, 0x11b2, { 0xbd, 0xef, 0x8c, 0x72, 0x0b, 0x59, 0x74, 0x45 } }
%}