mirror of
https://github.com/rn10950/RetroZilla.git
synced 2024-11-10 18:00:15 +01:00
137 lines
5.6 KiB
Plaintext
137 lines
5.6 KiB
Plaintext
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* ***** 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.org code.
|
|
*
|
|
* The Initial Developer of the Original Code is
|
|
* Netscape Communications Corporation.
|
|
* Portions created by the Initial Developer are Copyright (C) 2001
|
|
* the Initial Developer. All Rights Reserved.
|
|
*
|
|
* Contributor(s):
|
|
*
|
|
* 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 "nsISOAPMessage.idl"
|
|
|
|
interface nsISOAPResponse;
|
|
interface nsISOAPResponseListener;
|
|
interface nsISOAPCallCompletion;
|
|
|
|
/**
|
|
* This interface is a convenience extension of the basic SOAP message,
|
|
* which handles common patterns of calling, such as providing an
|
|
* action URI in the HTTP header, locating and invoking the appropriate
|
|
* transport based upon the protocol of the transportURI, and
|
|
* automatically recieving the result in a new nsISOAPResponse object
|
|
* which recieves an XML message.
|
|
*/
|
|
|
|
[scriptable, uuid(a8fefe40-52bc-11d4-9a57-000064657374)]
|
|
interface nsISOAPCall : nsISOAPMessage {
|
|
|
|
/**
|
|
* The URI to which the message will be sent, identifying the
|
|
* transport and transport-specific information about the
|
|
* destination.
|
|
* This does not have to match the <code>targetObjectURI</code>.
|
|
*/
|
|
attribute AString transportURI;
|
|
|
|
/**
|
|
* Enables alternative security model which may be available
|
|
* from participating services. Securely adds a
|
|
* "verifySource" header to the outgoing message with
|
|
* "mustUnderstand" enabled, which permits the server to
|
|
* decide whether the call should be honored from that
|
|
* particular source. i
|
|
* <p>When this verification header is enabled, the
|
|
* calling script is released from the draconion
|
|
* security checks of unverified SOAP calls. But
|
|
* the service being invoked must not reject the
|
|
* message, which is the prescribed action if a SOAP
|
|
* server receives a header of type "mustUnderstand" that
|
|
* it does not understand.
|
|
* <p>Servers which accept "verified" messages
|
|
* containing this header relieve the user of having to
|
|
* configure and trust the domain of the web page never
|
|
* to exploit behind his firewall, because the
|
|
* responsibility is assumed by the service. If the
|
|
* service is not behind a firewall, then merely
|
|
* ignoring the packet is enough to free all
|
|
* users of this facility to call the server whatever
|
|
* their security configurations for unverified calls
|
|
* may be. But it only works with services that
|
|
* accept these verifySource headers.
|
|
* <p>It is possible for a user to disable even verified
|
|
* SOAP calls, but this is not the default setting.
|
|
*/
|
|
attribute boolean verifySourceHeader;
|
|
|
|
/**
|
|
* Synchronously invoke the call. The method returns only when
|
|
* we receive a response (or an error occurs). The
|
|
* <code>transportURI</code> must have been set, the
|
|
* parameter list (even if empty) must have been encoded,
|
|
* and the transportURI must use some known protocol. A
|
|
* synchronous call assumes that there will be exactly one
|
|
* response per call.
|
|
*
|
|
* If not, an error is returned in the status of the response.
|
|
*
|
|
* @returns The SOAP response
|
|
*/
|
|
nsISOAPResponse invoke();
|
|
|
|
/**
|
|
* Asynchronously invoke the call. At this point, the document
|
|
* rooted by the Envelope element is encoded to form the body
|
|
* of the SOAP message. The method returns immediately, and the
|
|
* listener is invoked when we eventually receive a response
|
|
* (or error or successful completion). The
|
|
* <code>transportURI</code> must have been set, the
|
|
* parameter list (even if empty) must have been encoded,
|
|
* and the transportURI must use some known protocol.
|
|
*
|
|
* If not, an error is returned in the status of the response.
|
|
*
|
|
* @param aListener Handler to be invoked asynchronously after the
|
|
* response is recieved. Should be null if no response is
|
|
* expected.
|
|
*/
|
|
nsISOAPCallCompletion asyncInvoke(in nsISOAPResponseListener aListener);
|
|
};
|
|
|
|
%{C++
|
|
#define NS_SOAPCALL_CID \
|
|
{ /* 87d21ec0-539d-11d4-9a59-00104bdf5339 */ \
|
|
0x87d21ec0, 0x539d, 0x11d4, \
|
|
{0x9a, 0x59, 0x00, 0x10, 0x4b, 0xdf, 0x53, 0x39} }
|
|
#define NS_SOAPCALL_CONTRACTID \
|
|
"@mozilla.org/xmlextras/soap/call;1"
|
|
%}
|