зеркало из https://github.com/mozilla/pjs.git
232 строки
9.0 KiB
Plaintext
232 строки
9.0 KiB
Plaintext
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* ***** 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) 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 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 nsIDOMDocument;
|
|
interface nsIDOMElement;
|
|
interface nsISOAPEncoding;
|
|
interface nsISOAPHeaderBlock;
|
|
interface nsISOAPParameter;
|
|
interface nsIVariant;
|
|
|
|
/**
|
|
* This interface controls all SOAP messages. It permits easy
|
|
* construction of a message, typically through encoding of
|
|
* parameters and certain properties settable on this interface
|
|
* or through deserialization of a transport stream. It
|
|
* permits easy processing of a message typically through
|
|
* decoding of parameters and certain properties available
|
|
* on this interface. It also encapsulates protocol information
|
|
* interpreted by the transport.
|
|
*/
|
|
|
|
[scriptable, uuid(3970815e-1dd2-11b2-a475-db4dac6826f1)]
|
|
interface nsISOAPMessage : nsISupports {
|
|
|
|
const unsigned short VERSION_1_1 = 0;
|
|
const unsigned short VERSION_1_2 = 1;
|
|
const unsigned short VERSION_UNKNOWN = 0xFFFF;
|
|
|
|
/**
|
|
* The document which captures the message, if any. A simple
|
|
* sending application passes parameters to the method
|
|
* encodeSOAPParameters, which calls SOAP encoders
|
|
* to construct this document along with all contained elements.
|
|
*
|
|
* But an application may create and set the message directly
|
|
* instead of invoking encodeSOAPParameters to use encoders
|
|
* or access and manipulate the message after it has been
|
|
* constructed by encodeSOAPParameters. If the message has
|
|
* not been set, invoking a call will fail. A message reciever
|
|
* may also use this accessor to get the document to avoid using
|
|
* decoders.
|
|
*/
|
|
attribute nsIDOMDocument message;
|
|
|
|
/**
|
|
* A convenience attribute to obtain the DOM element representing the
|
|
* SOAP envelope from the document. DOM methods may be used to
|
|
* access, add, or modify attributes of the envelope.
|
|
*
|
|
* If the message attribute is null or is not a document containing
|
|
* a root soap envelope element, then this will be null.
|
|
*/
|
|
readonly attribute nsIDOMElement envelope;
|
|
|
|
/**
|
|
* A convenience attribute to obtain the SOAP version number, if
|
|
* it is known, from the envelope.
|
|
*
|
|
* If the message attribute is null or is not a document containing
|
|
* a root soap envelope element, then this will be VERSION_UNKNOWN.
|
|
*/
|
|
readonly attribute unsigned short version;
|
|
|
|
/**
|
|
* A convenience attribute to obtain the DOM element representing the
|
|
* SOAP header from the envelope. DOM methods may be used to
|
|
* access, add, or modify attributes or elements of the header.
|
|
*
|
|
* If the envelope attribute is null or does not contain a SOAP header
|
|
* element type, then this will be null.
|
|
*/
|
|
readonly attribute nsIDOMElement header;
|
|
|
|
/**
|
|
* A convenience attribute to obtain the DOM element representing the
|
|
* SOAP body from the envelope. DOM methods may be used to
|
|
* access, add, or modify attributes or elements of the body.
|
|
*
|
|
* If the envelope attribute is null or does not contain a SOAP body
|
|
* element type, then this will be null.
|
|
*/
|
|
readonly attribute nsIDOMElement body;
|
|
|
|
/**
|
|
* The name of the method being invoked. The methodName is set
|
|
* during encoding as the tagname of the single child of body
|
|
* of RPC-style messages. When there is no encoded message
|
|
* this will be null. The value of this attribute for
|
|
* document-style messages may be non-null but should be
|
|
* ignored. It is up to the application to know whether the
|
|
* message is RPC-style or document style because the SOAP
|
|
* specification makes it difficult to tell which way a
|
|
* message was encoded.
|
|
*/
|
|
readonly attribute AString methodName;
|
|
|
|
/**
|
|
* The target object on which the method is being invoked. This URI
|
|
* is set during encoding as the namespace to qualify the tagname
|
|
* of the single child of body of RPC-style messages. When there
|
|
* is no encoded message, this will be null. The value of this
|
|
* attribute for document-style messages may be non-null but should
|
|
* be ignored. It is up to the application to know whether the
|
|
* message is RPC-style or document style because the SOAP
|
|
* specification makes it difficult to tell which way a
|
|
* message was encoded.
|
|
*/
|
|
readonly attribute AString targetObjectURI;
|
|
|
|
/**
|
|
* Encodes the specified parameters into this message, if
|
|
* this message type supports it.
|
|
*
|
|
* @param aMethodName The name of the method being invoked
|
|
* for rpc-style messages. For document-style messages,
|
|
* this must be null.
|
|
*
|
|
* @param aTargetObjectURI The name of the target object
|
|
* for rpc-style messages. For document-style messages,
|
|
* this must be null.
|
|
*
|
|
* @param aHeaderBlockCount Number of header blocks in array to be
|
|
* encoded. Must be 0 if header block array is null.
|
|
*
|
|
* @param aHeaderBlocks Array of header blocks to be encoded, which
|
|
* may be null if there are no header blocks.
|
|
*
|
|
* @param aParameterCount Number of parameters in array
|
|
* to be encoded. Must be 0 if parameter array is null.
|
|
*
|
|
* @param aParameters An array of parameters to be
|
|
* encoded, which may null if there are no parameters.
|
|
*/
|
|
void encode(in unsigned short aVersion,
|
|
in AString aMethodName, in AString aTargetObjectURI,
|
|
in unsigned long aHeaderBlockCount,
|
|
[array,
|
|
size_is(aHeaderBlockCount)] in nsISOAPHeaderBlock
|
|
aHeaderBlocks, in unsigned long aParameterCount,[array,
|
|
size_is
|
|
(aParameterCount)]
|
|
in nsISOAPParameter aParameters);
|
|
|
|
/**
|
|
* Gathers the header blocks of a message so that they can be
|
|
* accessed by a recipient.
|
|
*
|
|
* @param aCount Integer to receive the length of the list
|
|
* of header blocks.
|
|
*
|
|
* @return Array of header blocks found in the message.
|
|
*/
|
|
void getHeaderBlocks(out unsigned long aCount,
|
|
[array, size_is(aCount),
|
|
retval] out nsISOAPHeaderBlock aHeaderBlocks);
|
|
|
|
/**
|
|
* Gathers the parameters of a message so that they can be
|
|
* accessed by a recipient.
|
|
*
|
|
* @param aDocumentStyle If true, then the parameters
|
|
* are looked for treating the message as a document
|
|
* style message, otherwise it treated as an RPC-style
|
|
* message.
|
|
*
|
|
* @param aCount Integer to receive the length of the list
|
|
* of parameters.
|
|
*
|
|
* @return Array of parameters found in the message.
|
|
*/
|
|
void getParameters(in boolean aDocumentStyle,
|
|
out unsigned long aCount,
|
|
[array, size_is(aCount),
|
|
retval] out nsISOAPParameter aParameters);
|
|
|
|
/**
|
|
* The primary encoding of the message, which is established
|
|
* at the envelope and used unless overridden. By default,
|
|
* this is the SOAP encoding, which may be locally modified
|
|
* or used to obtain alternative encodings, which may be
|
|
* locally modified, but it may be set to an encoding that
|
|
* is shared, or it may be set to null, in which case all
|
|
* non-literal header blocks and parameters must specify an
|
|
* encoding.
|
|
*/
|
|
attribute nsISOAPEncoding encoding;
|
|
|
|
/**
|
|
* An optional URI that can be used to add a SOAPAction HTTP
|
|
* header field. If this attribute is NULL (the default case),
|
|
* no SOAPAction header will be added.
|
|
*/
|
|
attribute AString actionURI;
|
|
};
|