gecko-dev/xpcom/base/nsIExceptionService.idl
Ehsan Akhgari e368dc9c85 Bug 579517 - Part 1: Automated conversion of NSPR numeric types to stdint types in Gecko; r=bsmedberg
This patch was generated by a script.  Here's the source of the script for
future reference:

function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
       ! -wholename "*security/nss*" \
       ! -wholename "*/.hg*" \
       ! -wholename "obj-ff-dbg*" \
       ! -name nsXPCOMCID.h \
       ! -name prtypes.h \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert PRInt8 int8_t
convert PRUint8 uint8_t
convert PRInt16 int16_t
convert PRUint16 uint16_t
convert PRInt32 int32_t
convert PRUint32 uint32_t
convert PRInt64 int64_t
convert PRUint64 uint64_t

convert PRIntn int
convert PRUintn unsigned

convert PRSize size_t

convert PROffset32 int32_t
convert PROffset64 int64_t

convert PRPtrdiff ptrdiff_t

convert PRFloat64 double
2012-08-22 11:56:38 -04:00

65 lines
2.8 KiB
Plaintext

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "nsISupports.idl"
#include "nsIException.idl"
// An exception provider. These can turn special nsresult codes
// into nsIExceptions
[scriptable, uuid(0577744c-c1d2-47f2-8bcc-ce7a9e5a88fc)]
interface nsIExceptionProvider : nsISupports
{
/** Gets an nsIException or returns NULL if not possible. **/
nsIException getException(in nsresult result, in nsIException defaultException);
};
// A ScriptErrorManager for a single thread. These objects
// are _not_ thread-safe. Use the ScriptErrorService
// to get a script error manager for your current thread.
[scriptable, uuid(efc9d00b-231c-4feb-852c-ac017266a415)]
interface nsIExceptionManager : nsISupports
{
/** Sets (or clears with nullptr) the current error on the this thread. */
void setCurrentException( in nsIException error);
/** Gets the current error for the current thread, or NULL if no error */
nsIException getCurrentException();
/** Gets an exception from a registered exception provider..
This has no effect on the "current exception" */
nsIException getExceptionFromProvider( in nsresult rc, in nsIException defaultException);
};
// The Exception Service. Allows you to get an set exceptions in a thread
// safe manner, or to get an ExceptionManager for your specific thread.
[scriptable, uuid(35A88F54-F267-4414-92A7-191F6454AB52)]
interface nsIExceptionService : nsIExceptionManager
{
/** Obtains an exception manager for the current thread. */
readonly attribute nsIExceptionManager currentExceptionManager;
/** Installs an "exception provider" which is capable of
translating an nsresult into an exception. This enables
error providers to return simple nsresults and only provide
rich errors when specifically requested. It also has the
advantage of allowing code like the DOM to handle all errors
in a single function rather than at each XPCOM entry point.
NOTE: This interface must be thread-safe - it will be called
on whatever thread needs the error translation performed.*/
void registerExceptionProvider( in nsIExceptionProvider provider, in uint32_t moduleCode );
void unregisterExceptionProvider( in nsIExceptionProvider provider, in uint32_t moduleCode );
};
%{ C++
#define NS_EXCEPTIONSERVICE_CLASSNAME "Exception Service"
// {35A88F54-F267-4414-92A7-191F6454AB52}
#define NS_EXCEPTIONSERVICE_CID \
{ 0x35a88f54, 0xf267, 0x4414, { 0x92, 0xa7, 0x19, 0x1f, 0x64, 0x54, 0xab, 0x52 } }
#define NS_EXCEPTIONSERVICE_CONTRACTID "@mozilla.org/exceptionservice;1"
%}