Back to index

lightning-sunbird  0.9+nobinonly
nsIWebServiceProxy.idl
Go to the documentation of this file.
00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
00002 /* ***** BEGIN LICENSE BLOCK *****
00003  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
00004  *
00005  * The contents of this file are subject to the Mozilla Public License Version
00006  * 1.1 (the "License"); you may not use this file except in compliance with
00007  * the License. You may obtain a copy of the License at
00008  * http://www.mozilla.org/MPL/
00009  *
00010  * Software distributed under the License is distributed on an "AS IS" basis,
00011  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
00012  * for the specific language governing rights and limitations under the
00013  * License.
00014  *
00015  * The Original Code is mozilla.org code.
00016  *
00017  * The Initial Developer of the Original Code is
00018  * Netscape Communications Corporation.
00019  * Portions created by the Initial Developer are Copyright (C) 2001
00020  * the Initial Developer. All Rights Reserved.
00021  *
00022  * Contributor(s):
00023  *   John Bandhauer (jband@netscape.com)
00024  *   Vidur Apparao (vidur@netscape.com)
00025  *
00026  * Alternatively, the contents of this file may be used under the terms of
00027  * either the GNU General Public License Version 2 or later (the "GPL"), or
00028  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
00029  * in which case the provisions of the GPL or the LGPL are applicable instead
00030  * of those above. If you wish to allow use of your version of this file only
00031  * under the terms of either the GPL or the LGPL, and not to allow others to
00032  * use your version of this file under the terms of the MPL, indicate your
00033  * decision by deleting the provisions above and replace them with the notice
00034  * and other provisions required by the GPL or the LGPL. If you do not delete
00035  * the provisions above, a recipient may use your version of this file under
00036  * the terms of any one of the MPL, the GPL or the LGPL.
00037  *
00038  * ***** END LICENSE BLOCK ***** */
00039 
00040 #include "nsISupports.idl"
00041 #include "nsIWSDL.idl"
00042 #include "nsISimpleEnumerator.idl"
00043 #include "nsIException.idl"
00044 #include "nsISOAPResponse.idl"
00045 #include "nsISOAPBlock.idl"
00046 #include "nsIScriptableInterfaces.idl"
00047 
00048 interface nsIWebServiceProxy;
00049 interface nsIWebServiceProxyCreationListener;
00050 interface nsIInterfaceInfo;
00051 interface nsIPropertyBag;
00052 
00053 [scriptable, uuid(693611be-bb38-40e0-a98e-b46ff8a5bcca)]
00054 interface nsIWebServiceProxyFactory : nsISupports {
00082   nsIWebServiceProxy createProxy(in AString wsdlURL, in AString portname, 
00083                                  in AString qualifier, in boolean isAsync);
00084 
00117   void createProxyAsync(in AString wsdlURL, in AString portname, 
00118                         in AString qualifier, in boolean isAsync,
00119                         in nsIWebServiceProxyCreationListener listener);
00120 };
00121 
00128 [scriptable, uuid(a711250b-47da-4f16-a1fd-593de16375a1)]
00129 interface nsIWebServiceProxyCreationListener : nsISupports {
00136   void onLoad(in nsIWebServiceProxy proxy);
00137 
00149   void onError(in nsIException error);
00150 };
00151 
00152 [scriptable, uuid(2122421c-1326-41db-87f8-25519d8a12cb)]
00153 interface nsIWebServiceProxy : nsISupports {
00154   
00155   [noscript] void Init(in nsIWSDLPort aPort, 
00156                        in nsIInterfaceInfo aPrimaryInterface,
00157                        in nsIInterfaceInfoManager aInterfaceInfoManager,
00158                        in AString aQualifier,
00159                        in boolean aIsAsync);
00160 
00166   readonly attribute nsIWSDLPort port;
00167 
00172   readonly attribute boolean isAsync;
00173 
00178   readonly attribute AString qualifier;
00179 
00187   readonly attribute nsISimpleEnumerator pendingCalls;  
00188   
00193   readonly attribute string primaryInterfaceName;
00194   
00199   readonly attribute string primaryAsyncListenerInterfaceName;
00200 
00208   readonly attribute nsIScriptableInterfaces interfaces;
00209 };
00210 
00211 
00218 [scriptable, uuid(87d87900-f102-4a15-b345-7b77a49d2df2)]
00219 interface nsIWebServiceCallContext : nsISupports {
00220   
00226   const PRUint32 PENDING = 0;
00227   const PRUint32 SUCCEEDED = 1;
00228   const PRUint32 FAILED = 2;
00229   const PRUint32 ABORTED = 3;
00230 
00236   readonly attribute nsIWebServiceProxy proxy;
00237 
00241   readonly attribute AString methodName;
00242 
00247   readonly attribute PRUint32 status;
00248 
00256   readonly attribute nsIException pendingException;
00257 
00263   readonly attribute nsIWSDLOperation operation;
00264 
00273   void abort(in nsIException error);
00274 };
00275 
00276 [scriptable, uuid(1ef83ece-b645-4b55-a501-df42c3333b47)]
00277 interface nsIWebServiceSOAPCallContext : nsIWebServiceCallContext {
00285   readonly attribute nsISOAPResponse soapResponse;
00286 };
00287 
00288 [uuid(b16b15bc-bfad-43cf-b374-2e4651acbc3c)]
00289 interface nsIWebServiceComplexTypeWrapper : nsISupports {
00290   void Init(in nsISupports aComplexTypeInstance,
00291             in nsIInterfaceInfo aInterfaceInfo);
00292 };
00293 
00294 [uuid(e0b1765e-c0be-4a28-aca3-b292c5c3788b)]
00295 interface nsIWebServicePropertyBagWrapper : nsISupports {
00296   void Init(in nsIPropertyBag aPropertyBag,
00297             in nsIInterfaceInfo aInterfaceInfo);
00298 };
00299  
00300 %{ C++
00301 
00302 #define NS_WEBSERVICEPROXYFACTORY_CLASSID           \
00303 { /* 4E557E69-CCE0-47da-A7D3-2A7ED666F566 */        \
00304  0x4e557e69, 0xcce0, 0x47da,                        \
00305  {0xa7, 0xd3, 0x2a, 0x7e, 0xd6, 0x66, 0xf5, 0x66}}
00306 #define NS_WEBSERVICEPROXYFACTORY_CONTRACTID "@mozilla.org/xmlextras/proxy/webserviceproxyfactory;1"
00307 
00308 #define NS_WEBSERVICEPROXY_CLASSID                  \
00309 { /* 1220efd4-8018-45b0-bfc1-0c0716ee0bfb */        \
00310  0x1220efd4, 0x8018, 0x45b0,                        \
00311  {0xbf, 0xc1, 0x0c, 0x07, 0x16, 0xee, 0x0b, 0xfb}}
00312 #define NS_WEBSERVICEPROXY_CONTRACTID "@mozilla.org/xmlextras/proxy/webserviceproxy;1"
00313 
00314 #define NS_WEBSERVICECOMPLEXTYPEWRAPPER_CLASSID     \
00315 { /* 615272eb-3908-4fcc-b8f6-94d5a146e2bc */        \
00316  0x615272eb, 0x3908, 0x4fcc,                        \
00317  {0xb8, 0xf6, 0x94, 0xd5, 0xa1, 0x46, 0xe2, 0xbc}}
00318 #define NS_WEBSERVICECOMPLEXTYPEWRAPPER_CONTRACTID "@mozilla.org/xmlextras/proxy/webservicecomplextypewrapper;1"
00319 
00320 #define NS_WEBSERVICEPROPERTYBAGWRAPPER_CLASSID     \
00321 { /* 1c76aea3-0810-45b7-bce9-03abc209eb8c */        \
00322  0x1c76aea3, 0x0810, 0x45b7,                        \
00323  {0xbc, 0xe9, 0x03, 0xab, 0xc2, 0x09, 0xeb, 0x8c}} 
00324 #define NS_WEBSERVICEPROPERTYBAGWRAPPER_CONTRACTID "@mozilla.org/xmlextras/proxy/webservicepropertybagwrapper;1"
00325 
00326 %}