/* -*- Mode: idl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ // vim:expandtab:ts=4 sw=4: /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla 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/MPL/ * * 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. * * The Initial Developer of the Original Code is * Oracle Corporation. * Portions created by the Initial Developer are Copyright (C) 2004 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Mike Shaver (original author) * Dan Mosedale * Gary van der Merwe * * 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 MPL, 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 MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #include "nsISupports.idl" #include "nsIWebDAVListener.idl" #include "nsIWebDAVResource.idl" interface nsIStreamListener; interface nsIOutputStream; interface nsIInputStream; interface nsIDOMDocument; interface nsIInterfaceRequestor; [scriptable,uuid(173ef52e-2a2f-45ca-8f9f-abc7429163c2)] interface nsIWebDAVService : nsISupports { /** * @param notificationCallbacks * The notification callbacks to be passed to the channel * that will be used to perform this opperation. This is * set by clients, who wish to provide a means to receive * progress, status and protocol-specific notifications. * * Interfaces commonly requested include: * nsIProgressEventSink, nsIPrompt, and nsIAuthPrompt. * @param closure caller-private data returned via listener */ void lockResources(in PRUint32 count, [array, size_is(count)] in nsIWebDAVResource resources, in nsIWebDAVOperationListener listener, in nsIInterfaceRequestor notificationCallbacks, in nsISupports closure); /** * @param notificationCallbacks * The notification callbacks to be passed to the channel * that will be used to perform this opperation. This is * set by clients, who wish to provide a means to receive * progress, status and protocol-specific notifications. * * Interfaces commonly requested include: * nsIProgressEventSink, nsIPrompt, and nsIAuthPrompt. * @param closure caller-private data returned via listener */ void unlockResources(in PRUint32 count, [array, size_is(count)] in nsIWebDAVResource resources, in nsIWebDAVOperationListener listener, in nsIInterfaceRequestor notificationCallbacks, in nsISupports closure); /** * @param notificationCallbacks * The notification callbacks to be passed to the channel * that will be used to perform this opperation. This is * set by clients, who wish to provide a means to receive * progress, status and protocol-specific notifications. * * Interfaces commonly requested include: * nsIProgressEventSink, nsIPrompt, and nsIAuthPrompt. * @param closure caller-private data returned via listener */ void getResourcePropertyNames(in nsIWebDAVResource resource, in boolean withDepth, in nsIWebDAVOperationListener listener, in nsIInterfaceRequestor notificationCallbacks, in nsISupports closure); /** * @param properties an array of propertynames, where the namespace * and the name of the properties are seperated by * a space * @param notificationCallbacks * The notification callbacks to be passed to the channel * that will be used to perform this opperation. This is * set by clients, who wish to provide a means to receive * progress, status and protocol-specific notifications. * * Interfaces commonly requested include: * nsIProgressEventSink, nsIPrompt, and nsIAuthPrompt. * @param closure caller-private data returned via listener */ void getResourceProperties(in nsIWebDAVResource resource, in PRUint32 propCount, [array, size_is(propCount)] in string properties, /* XXX wstring? */ in boolean withDepth, in nsIWebDAVOperationListener listener, in nsIInterfaceRequestor notificationCallbacks, in nsISupports closure); /** * @param notificationCallbacks * The notification callbacks to be passed to the channel * that will be used to perform this opperation. This is * set by clients, who wish to provide a means to receive * progress, status and protocol-specific notifications. * * Interfaces commonly requested include: * nsIProgressEventSink, nsIPrompt, and nsIAuthPrompt. * @param closure caller-private data returned via listener */ void getResourceOptions(in nsIWebDAVResource resource, in nsIWebDAVOperationListener listener, in nsIInterfaceRequestor notificationCallbacks, in nsISupports closure); /** * @param notificationCallbacks * The notification callbacks to be passed to the channel * that will be used to perform this opperation. This is * set by clients, who wish to provide a means to receive * progress, status and protocol-specific notifications. * * Interfaces commonly requested include: * nsIProgressEventSink, nsIPrompt, and nsIAuthPrompt. * XXX need to add a closure param */ void get(in nsIWebDAVResource resource, in nsIStreamListener listener, in nsIInterfaceRequestor notificationCallbacks); /** * GET the resource and stick it in the provided OutputStream. * Your output stream must be buffered, or we will fail miserably. * I would check that for you and provide a buffered wrapper automatically, * but there is no way to check if one is needed! * * @param notificationCallbacks * The notification callbacks to be passed to the channel * that will be used to perform this opperation. This is * set by clients, who wish to provide a means to receive * progress, status and protocol-specific notifications. * * Interfaces commonly requested include: * nsIProgressEventSink, nsIPrompt, and nsIAuthPrompt. * @param closure caller-private data returned via listener */ void getToOutputStream(in nsIWebDAVResource resource, in nsIOutputStream stream, in nsIWebDAVOperationListener listener, in nsIInterfaceRequestor notificationCallbacks, in nsISupports closure); /** * GET the resource and return it to the listener as a string. * * @param notificationCallbacks * The notification callbacks to be passed to the channel * that will be used to perform this opperation. This is * set by clients, who wish to provide a means to receive * progress, status and protocol-specific notifications. * * Interfaces commonly requested include: * nsIProgressEventSink, nsIPrompt, and nsIAuthPrompt. * @param closure caller-private data returned via listener */ void getToString(in nsIWebDAVResource resource, in nsIWebDAVOperationListener listener, in nsIInterfaceRequestor notificationCallbacks, in nsISupports closure); /** * @param notificationCallbacks * The notification callbacks to be passed to the channel * that will be used to perform this opperation. This is * set by clients, who wish to provide a means to receive * progress, status and protocol-specific notifications. * * Interfaces commonly requested include: * nsIProgressEventSink, nsIPrompt, and nsIAuthPrompt. * @param closure caller-private data returned via listener */ void put(in nsIWebDAVResource resource, in ACString contentType, in nsIInputStream data, in nsIWebDAVOperationListener listener, in nsIInterfaceRequestor notificationCallbacks, in nsISupports closure); /** * @param notificationCallbacks * The notification callbacks to be passed to the channel * that will be used to perform this opperation. This is * set by clients, who wish to provide a means to receive * progress, status and protocol-specific notifications. * * Interfaces commonly requested include: * nsIProgressEventSink, nsIPrompt, and nsIAuthPrompt. * @param closure caller-private data returned via listener */ void putFromString(in nsIWebDAVResource resource, in ACString contentType, in AUTF8String data, in nsIWebDAVOperationListener listener, in nsIInterfaceRequestor notificationCallbacks, in nsISupports closure); /** * @param notificationCallbacks * The notification callbacks to be passed to the channel * that will be used to perform this opperation. This is * set by clients, who wish to provide a means to receive * progress, status and protocol-specific notifications. * * Interfaces commonly requested include: * nsIProgressEventSink, nsIPrompt, and nsIAuthPrompt. * @param closure caller-private data returned via listener */ void remove(in nsIWebDAVResource resource, in nsIWebDAVOperationListener listener, in nsIInterfaceRequestor notificationCallbacks, in nsISupports closure); /** * @param notificationCallbacks * The notification callbacks to be passed to the channel * that will be used to perform this opperation. This is * set by clients, who wish to provide a means to receive * progress, status and protocol-specific notifications. * * Interfaces commonly requested include: * nsIProgressEventSink, nsIPrompt, and nsIAuthPrompt. * @param closure caller-private data returned via listener */ void moveTo(in nsIWebDAVResource resource, in ACString destination, in boolean overwrite, in nsIWebDAVOperationListener listener, in nsIInterfaceRequestor notificationCallbacks, in nsISupports closure); /** * @param notificationCallbacks * The notification callbacks to be passed to the channel * that will be used to perform this opperation. This is * set by clients, who wish to provide a means to receive * progress, status and protocol-specific notifications. * * Interfaces commonly requested include: * nsIProgressEventSink, nsIPrompt, and nsIAuthPrompt. * @param closure caller-private data returned via listener */ void copyTo(in nsIWebDAVResource resource, in ACString destination, in boolean recursive, in boolean overwrite, in nsIWebDAVOperationListener listener, in nsIInterfaceRequestor notificationCallbacks, in nsISupports closure); /** * @param notificationCallbacks * The notification callbacks to be passed to the channel * that will be used to perform this opperation. This is * set by clients, who wish to provide a means to receive * progress, status and protocol-specific notifications. * * Interfaces commonly requested include: * nsIProgressEventSink, nsIPrompt, and nsIAuthPrompt. * @param closure caller-private data returned via listener */ void makeCollection(in nsIWebDAVResource resource, in nsIWebDAVOperationListener listener, in nsIInterfaceRequestor notificationCallbacks, in nsISupports closure); /** * Requests the specified report on the given resource with a Depth: header * set to zero. * * @param resource the resource to perform this query on? * @param query an XML document of the query * @param withDepth if true, set the Depth header to 1 instead of 0 * @param listener results will be called back through this interface * @param notificationCallbacks * The notification callbacks to be passed to the channel * that will be used to perform this opperation. This is * set by clients, who wish to provide a means to receive * progress, status and protocol-specific notifications. * * Interfaces commonly requested include: * nsIProgressEventSink, nsIPrompt, and nsIAuthPrompt. * @param closure caller-private data returned via listener */ void report(in nsIWebDAVResource resource, in nsIDOMDocument query, in boolean withDepth, in nsIWebDAVOperationListener listener, in nsIInterfaceRequestor notificationCallbacks, in nsISupports closure); }; [scriptable,uuid(96c8d65a-fa17-408c-8008-1aa2b95952d4)] interface nsIWebDAVResourceXXX : nsISupports { readonly attribute boolean isCollection; void setProperties([array,size_is(count)] in string propname, [array,size_is(count)] in string propvalues, in PRUint32 count); };