diff --git a/mozilla/xpcom/base/nsISupportsUtils.h b/mozilla/xpcom/base/nsISupportsUtils.h index 9cf4c1110b3..e189bcdc59d 100644 --- a/mozilla/xpcom/base/nsISupportsUtils.h +++ b/mozilla/xpcom/base/nsISupportsUtils.h @@ -19,6 +19,115 @@ #ifndef __nsISupportsUtils_h #define __nsISupportsUtils_h +/***************************************************************************/ +/* this section copied from the hand written nsISupports.h */ + +#include "nsDebug.h" +#include "nsTraceRefcnt.h" +#include "nsID.h" +#include "nsIID.h" +#include "nsError.h" + +#if defined(NS_MT_SUPPORTED) +#include "prcmon.h" +#endif /* NS_MT_SUPPORTED */ + +#if defined(XPIDL_JS_STUBS) +struct JSObject; +struct JSContext; +#endif + +/*@{*/ + +//////////////////////////////////////////////////////////////////////////////// + +/** + * IID for the nsISupports interface + * {00000000-0000-0000-c000-000000000046} + * + * NOTE: NEVER EVER EVER EVER EVER change this IID. Never. Not once. + * No. Don't do it. Stop! + */ +#define NS_ISUPPORTS_IID \ +{ 0x00000000, 0x0000, 0x0000, \ + {0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46} } + +/** + * Reference count values + */ +typedef PRUint32 nsrefcnt; + +/** + * Base class for all XPCOM objects to use. This macro forces the C++ + * compiler to use a compatible vtable layout for all XPCOM objects. + */ +#ifdef XP_MAC +#define XPCOM_OBJECT : public __comobject +#else +#define XPCOM_OBJECT +#endif + +/** + * Basic component object model interface. Objects which implement + * this interface support runtime interface discovery (QueryInterface) + * and a reference counted memory model (AddRef/Release). This is + * modelled after the win32 IUnknown API. + */ +class nsISupports XPCOM_OBJECT { +public: + static const nsIID& GetIID() { static nsIID iid = NS_ISUPPORTS_IID; return iid; } + /** + * @name Methods + */ + + //@{ + /** + * A run time mechanism for interface discovery. + * @param aIID [in] A requested interface IID + * @param aInstancePtr [out] A pointer to an interface pointer to + * receive the result. + * @return NS_OK if the interface is supported by the associated + * instance, NS_NOINTERFACE if it is not. + * NS_ERROR_INVALID_POINTER if aInstancePtr is NULL. + */ + NS_IMETHOD QueryInterface(REFNSIID aIID, + void** aInstancePtr) = 0; + /** + * Increases the reference count for this interface. + * The associated instance will not be deleted unless + * the reference count is returned to zero. + * + * @return The resulting reference count. + */ + NS_IMETHOD_(nsrefcnt) AddRef(void) = 0; + + /** + * Decreases the reference count for this interface. + * Generally, if the reference count returns to zero, + * the associated instance is deleted. + * + * @return The resulting reference count. + */ + NS_IMETHOD_(nsrefcnt) Release(void) = 0; + +#if XPIDL_JS_STUBS + // XXX Scriptability hack... + static NS_EXPORT_(JSObject*) InitJSClass(JSContext* cx) { + return 0; + } + + static NS_EXPORT_(JSObject*) GetJSObject(JSContext* cx, nsISupports* priv) { + NS_NOTYETIMPLEMENTED("nsISupports isn't XPIDL scriptable yet"); + return 0; + } +#endif + + //@} +}; + +/*@}*/ + +/***************************************************************************/ /** * A macro to build the static const IID accessor method diff --git a/mozilla/xpcom/components/nsIFactory.h b/mozilla/xpcom/components/nsIFactory.h index a355e26a09d..99688fbf36f 100644 --- a/mozilla/xpcom/components/nsIFactory.h +++ b/mozilla/xpcom/components/nsIFactory.h @@ -1,45 +1,39 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* - * The contents of this file are subject to the Netscape Public License - * Version 1.0 (the "NPL"); you may not use this file except in - * compliance with the NPL. You may obtain a copy of the NPL at - * http://www.mozilla.org/NPL/ - * - * Software distributed under the NPL is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL - * for the specific language governing rights and limitations under the - * NPL. - * - * The Initial Developer of this code under the NPL is Netscape - * Communications Corporation. Portions created by Netscape are - * Copyright (C) 1998 Netscape Communications Corporation. All Rights - * Reserved. + * DO NOT EDIT. THIS FILE IS GENERATED FROM nsIFactory.idl */ -#ifndef __nsIFactory_h -#define __nsIFactory_h +#ifndef __gen_nsIFactory_h__ +#define __gen_nsIFactory_h__ -#include "prtypes.h" -#include "nsISupports.h" +#include "nsISupports.h" /* interface nsISupports */ +#include "nsrootidl.h" /* interface nsrootidl */ -/* - * nsIFactory interface - */ +#ifdef XPIDL_JS_STUBS +#include "jsapi.h" +#endif -// {00000001-0000-0000-c000-000000000046} +/* starting interface: nsIFactory */ + +/* {00000001-0000-0000-c000-000000000046} */ +#define NS_IFACTORY_IID_STR "00000001-0000-0000-c000-000000000046" #define NS_IFACTORY_IID \ -{ 0x00000001, 0x0000, 0x0000, \ - { 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46 } } + {0x00000001, 0x0000, 0x0000, \ + { 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46 }} -class nsIFactory: public nsISupports { -public: - static const nsIID& GetIID() { static nsIID iid = NS_IFACTORY_IID; return iid; } +class nsIFactory : public nsISupports { + public: + NS_DEFINE_STATIC_IID_ACCESSOR(NS_IFACTORY_IID) - NS_IMETHOD CreateInstance(nsISupports *aOuter, - REFNSIID aIID, - void **aResult) = 0; + /* voidStar CreateInstance (in nsISupports aOuter, in nsIIDRef iid); */ + NS_IMETHOD CreateInstance(nsISupports *aOuter, const nsIID & iid, void * *_retval) = 0; - NS_IMETHOD LockFactory(PRBool aLock) = 0; + /* void LockFactory (in PRBool lock); */ + NS_IMETHOD LockFactory(PRBool lock) = 0; + +#ifdef XPIDL_JS_STUBS + static NS_EXPORT_(JSObject *) InitJSClass(JSContext *cx); + static NS_EXPORT_(JSObject *) GetJSObject(JSContext *cx, nsIFactory *priv); +#endif }; -#endif +#endif /* __gen_nsIFactory_h__ */ diff --git a/mozilla/xpcom/ds/nsIEnumerator.h b/mozilla/xpcom/ds/nsIEnumerator.h index b011c2762df..45789ffd9e9 100644 --- a/mozilla/xpcom/ds/nsIEnumerator.h +++ b/mozilla/xpcom/ds/nsIEnumerator.h @@ -1,99 +1,96 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* - * The contents of this file are subject to the Netscape Public License - * Version 1.0 (the "NPL"); you may not use this file except in - * compliance with the NPL. You may obtain a copy of the NPL at - * http://www.mozilla.org/NPL/ - * - * Software distributed under the NPL is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL - * for the specific language governing rights and limitations under the - * NPL. - * - * The Initial Developer of this code under the NPL is Netscape - * Communications Corporation. Portions created by Netscape are - * Copyright (C) 1998 Netscape Communications Corporation. All Rights - * Reserved. + * DO NOT EDIT. THIS FILE IS GENERATED FROM nsIEnumerator.idl */ -#ifndef nsIEnumerator_h___ -#define nsIEnumerator_h___ +#ifndef __gen_nsIEnumerator_h__ +#define __gen_nsIEnumerator_h__ -#include "nsISupports.h" +#include "nsISupports.h" /* interface nsISupports */ +#include "nsrootidl.h" /* interface nsrootidl */ -// {D1899240-F9D2-11d2-BDD6-000064657374} +#ifdef XPIDL_JS_STUBS +#include "jsapi.h" +#endif + +/* starting interface: nsISimpleEnumerator */ + +/* {D1899240-F9D2-11D2-BDD6-000064657374} */ +#define NS_ISIMPLEENUMERATOR_IID_STR "D1899240-F9D2-11D2-BDD6-000064657374" #define NS_ISIMPLEENUMERATOR_IID \ -{ 0xd1899240, 0xf9d2, 0x11d2, { 0xbd, 0xd6, 0x0, 0x0, 0x64, 0x65, 0x73, 0x74 } } + {0xD1899240, 0xF9D2, 0x11D2, \ + { 0xBD, 0xD6, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74 }} class nsISimpleEnumerator : public nsISupports { -public: - static const nsIID& GetIID(void) { static nsIID iid = NS_ISIMPLEENUMERATOR_IID; return iid; } - NS_IMETHOD HasMoreElements(PRBool* aResult) = 0; - NS_IMETHOD GetNext(nsISupports** aResult) = 0; + public: + NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISIMPLEENUMERATOR_IID) + + /* boolean HasMoreElements (); */ + NS_IMETHOD HasMoreElements(PRBool *_retval) = 0; + + /* nsISupports GetNext (); */ + NS_IMETHOD GetNext(nsISupports **_retval) = 0; + +#ifdef XPIDL_JS_STUBS + static NS_EXPORT_(JSObject *) InitJSClass(JSContext *cx); + static NS_EXPORT_(JSObject *) GetJSObject(JSContext *cx, nsISimpleEnumerator *priv); +#endif }; +/* starting interface: nsIEnumerator */ -extern "C" NS_COM nsresult -NS_NewEmptyEnumerator(nsISimpleEnumerator** aResult); - - -#define NS_IENUMERATOR_IID \ -{ /* ad385286-cbc4-11d2-8cca-0060b0fc14a3 */ \ - 0xad385286, \ - 0xcbc4, \ - 0x11d2, \ - {0x8c, 0xca, 0x00, 0x60, 0xb0, 0xfc, 0x14, 0xa3} \ -} - +/* {ad385286-cbc4-11d2-8cca-0060b0fc14a3} */ +#define NS_IENUMERATOR_IID_STR "ad385286-cbc4-11d2-8cca-0060b0fc14a3" +#define NS_IENUMERATOR_IID \ + {0xad385286, 0xcbc4, 0x11d2, \ + { 0x8c, 0xca, 0x00, 0x60, 0xb0, 0xfc, 0x14, 0xa3 }} class nsIEnumerator : public nsISupports { -public: + public: + NS_DEFINE_STATIC_IID_ACCESSOR(NS_IENUMERATOR_IID) - static const nsIID& GetIID(void) { static nsIID iid = NS_IENUMERATOR_IID; return iid; } + /* void First (); */ + NS_IMETHOD First() = 0; - /** First will reset the list. will return NS_FAILED if no items - */ - NS_IMETHOD First(void) = 0; - - /** Next will advance the list. will return failed if already at end - */ - NS_IMETHOD Next(void) = 0; + /* void Next (); */ + NS_IMETHOD Next() = 0; - /** CurrentItem will return the CurrentItem item it will fail if the list is empty - * @param aItem return value - */ - NS_IMETHOD CurrentItem(nsISupports **aItem) = 0; + /* nsISupports CurrentItem (); */ + NS_IMETHOD CurrentItem(nsISupports **_retval) = 0; - /** return if the collection is at the end. that is the beginning following a call to Prev - * and it is the end of the list following a call to next - * @param aItem return value - */ - NS_IMETHOD IsDone(void) = 0; + /* void IsDone (); */ + NS_IMETHOD IsDone() = 0; + +#ifdef XPIDL_JS_STUBS + static NS_EXPORT_(JSObject *) InitJSClass(JSContext *cx); + static NS_EXPORT_(JSObject *) GetJSObject(JSContext *cx, nsIEnumerator *priv); +#endif }; -#define NS_IBIDIRECTIONALENUMERATOR_IID \ -{ /* 75f158a0-cadd-11d2-8cca-0060b0fc14a3 */ \ - 0x75f158a0, \ - 0xcadd, \ - 0x11d2, \ - {0x8c, 0xca, 0x00, 0x60, 0xb0, 0xfc, 0x14, 0xa3} \ -} +/* starting interface: nsIBidirectionalEnumerator */ + +/* {75f158a0-cadd-11d2-8cca-0060b0fc14a3} */ +#define NS_IBIDIRECTIONALENUMERATOR_IID_STR "75f158a0-cadd-11d2-8cca-0060b0fc14a3" +#define NS_IBIDIRECTIONALENUMERATOR_IID \ + {0x75f158a0, 0xcadd, 0x11d2, \ + { 0x8c, 0xca, 0x00, 0x60, 0xb0, 0xfc, 0x14, 0xa3 }} class nsIBidirectionalEnumerator : public nsIEnumerator { -public: + public: + NS_DEFINE_STATIC_IID_ACCESSOR(NS_IBIDIRECTIONALENUMERATOR_IID) - static const nsIID& GetIID(void) { static nsIID iid = NS_IBIDIRECTIONALENUMERATOR_IID; return iid; } + /* void Last (); */ + NS_IMETHOD Last() = 0; - /** Last will reset the list to the end. will return NS_FAILED if no items - */ - NS_IMETHOD Last(void) = 0; - - /** Prev will decrement the list. will return failed if already at beginning - */ - NS_IMETHOD Prev(void) = 0; + /* void Prev (); */ + NS_IMETHOD Prev() = 0; +#ifdef XPIDL_JS_STUBS + static NS_EXPORT_(JSObject *) InitJSClass(JSContext *cx); + static NS_EXPORT_(JSObject *) GetJSObject(JSContext *cx, nsIBidirectionalEnumerator *priv); +#endif }; - +extern "C" NS_COM nsresult +NS_NewEmptyEnumerator(nsISimpleEnumerator** aResult); // Construct and return an implementation of a "conjoining enumerator." This // enumerator lets you string together two other enumerators into one sequence. // The result is an nsIBidirectionalEnumerator, but if either input is not @@ -101,14 +98,12 @@ public: extern "C" NS_COM nsresult NS_NewConjoiningEnumerator(nsIEnumerator* first, nsIEnumerator* second, nsIBidirectionalEnumerator* *aInstancePtrResult); - // Construct and return an implementation of a "union enumerator." This // enumerator will only return elements that are found in both constituent // enumerators. extern "C" NS_COM nsresult NS_NewUnionEnumerator(nsIEnumerator* first, nsIEnumerator* second, nsIEnumerator* *aInstancePtrResult); - // Construct and return an implementation of an "intersection enumerator." This // enumerator will return elements that are found in either constituent // enumerators, eliminating duplicates. @@ -116,5 +111,5 @@ extern "C" NS_COM nsresult NS_NewIntersectionEnumerator(nsIEnumerator* first, nsIEnumerator* second, nsIEnumerator* *aInstancePtrResult); -#endif // __nsIEnumerator_h +#endif /* __gen_nsIEnumerator_h__ */ diff --git a/mozilla/xpcom/glue/nsISupportsUtils.h b/mozilla/xpcom/glue/nsISupportsUtils.h index 9cf4c1110b3..e189bcdc59d 100644 --- a/mozilla/xpcom/glue/nsISupportsUtils.h +++ b/mozilla/xpcom/glue/nsISupportsUtils.h @@ -19,6 +19,115 @@ #ifndef __nsISupportsUtils_h #define __nsISupportsUtils_h +/***************************************************************************/ +/* this section copied from the hand written nsISupports.h */ + +#include "nsDebug.h" +#include "nsTraceRefcnt.h" +#include "nsID.h" +#include "nsIID.h" +#include "nsError.h" + +#if defined(NS_MT_SUPPORTED) +#include "prcmon.h" +#endif /* NS_MT_SUPPORTED */ + +#if defined(XPIDL_JS_STUBS) +struct JSObject; +struct JSContext; +#endif + +/*@{*/ + +//////////////////////////////////////////////////////////////////////////////// + +/** + * IID for the nsISupports interface + * {00000000-0000-0000-c000-000000000046} + * + * NOTE: NEVER EVER EVER EVER EVER change this IID. Never. Not once. + * No. Don't do it. Stop! + */ +#define NS_ISUPPORTS_IID \ +{ 0x00000000, 0x0000, 0x0000, \ + {0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46} } + +/** + * Reference count values + */ +typedef PRUint32 nsrefcnt; + +/** + * Base class for all XPCOM objects to use. This macro forces the C++ + * compiler to use a compatible vtable layout for all XPCOM objects. + */ +#ifdef XP_MAC +#define XPCOM_OBJECT : public __comobject +#else +#define XPCOM_OBJECT +#endif + +/** + * Basic component object model interface. Objects which implement + * this interface support runtime interface discovery (QueryInterface) + * and a reference counted memory model (AddRef/Release). This is + * modelled after the win32 IUnknown API. + */ +class nsISupports XPCOM_OBJECT { +public: + static const nsIID& GetIID() { static nsIID iid = NS_ISUPPORTS_IID; return iid; } + /** + * @name Methods + */ + + //@{ + /** + * A run time mechanism for interface discovery. + * @param aIID [in] A requested interface IID + * @param aInstancePtr [out] A pointer to an interface pointer to + * receive the result. + * @return NS_OK if the interface is supported by the associated + * instance, NS_NOINTERFACE if it is not. + * NS_ERROR_INVALID_POINTER if aInstancePtr is NULL. + */ + NS_IMETHOD QueryInterface(REFNSIID aIID, + void** aInstancePtr) = 0; + /** + * Increases the reference count for this interface. + * The associated instance will not be deleted unless + * the reference count is returned to zero. + * + * @return The resulting reference count. + */ + NS_IMETHOD_(nsrefcnt) AddRef(void) = 0; + + /** + * Decreases the reference count for this interface. + * Generally, if the reference count returns to zero, + * the associated instance is deleted. + * + * @return The resulting reference count. + */ + NS_IMETHOD_(nsrefcnt) Release(void) = 0; + +#if XPIDL_JS_STUBS + // XXX Scriptability hack... + static NS_EXPORT_(JSObject*) InitJSClass(JSContext* cx) { + return 0; + } + + static NS_EXPORT_(JSObject*) GetJSObject(JSContext* cx, nsISupports* priv) { + NS_NOTYETIMPLEMENTED("nsISupports isn't XPIDL scriptable yet"); + return 0; + } +#endif + + //@} +}; + +/*@}*/ + +/***************************************************************************/ /** * A macro to build the static const IID accessor method diff --git a/mozilla/xpcom/public/nsIEnumerator.h b/mozilla/xpcom/public/nsIEnumerator.h index b011c2762df..45789ffd9e9 100644 --- a/mozilla/xpcom/public/nsIEnumerator.h +++ b/mozilla/xpcom/public/nsIEnumerator.h @@ -1,99 +1,96 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* - * The contents of this file are subject to the Netscape Public License - * Version 1.0 (the "NPL"); you may not use this file except in - * compliance with the NPL. You may obtain a copy of the NPL at - * http://www.mozilla.org/NPL/ - * - * Software distributed under the NPL is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL - * for the specific language governing rights and limitations under the - * NPL. - * - * The Initial Developer of this code under the NPL is Netscape - * Communications Corporation. Portions created by Netscape are - * Copyright (C) 1998 Netscape Communications Corporation. All Rights - * Reserved. + * DO NOT EDIT. THIS FILE IS GENERATED FROM nsIEnumerator.idl */ -#ifndef nsIEnumerator_h___ -#define nsIEnumerator_h___ +#ifndef __gen_nsIEnumerator_h__ +#define __gen_nsIEnumerator_h__ -#include "nsISupports.h" +#include "nsISupports.h" /* interface nsISupports */ +#include "nsrootidl.h" /* interface nsrootidl */ -// {D1899240-F9D2-11d2-BDD6-000064657374} +#ifdef XPIDL_JS_STUBS +#include "jsapi.h" +#endif + +/* starting interface: nsISimpleEnumerator */ + +/* {D1899240-F9D2-11D2-BDD6-000064657374} */ +#define NS_ISIMPLEENUMERATOR_IID_STR "D1899240-F9D2-11D2-BDD6-000064657374" #define NS_ISIMPLEENUMERATOR_IID \ -{ 0xd1899240, 0xf9d2, 0x11d2, { 0xbd, 0xd6, 0x0, 0x0, 0x64, 0x65, 0x73, 0x74 } } + {0xD1899240, 0xF9D2, 0x11D2, \ + { 0xBD, 0xD6, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74 }} class nsISimpleEnumerator : public nsISupports { -public: - static const nsIID& GetIID(void) { static nsIID iid = NS_ISIMPLEENUMERATOR_IID; return iid; } - NS_IMETHOD HasMoreElements(PRBool* aResult) = 0; - NS_IMETHOD GetNext(nsISupports** aResult) = 0; + public: + NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISIMPLEENUMERATOR_IID) + + /* boolean HasMoreElements (); */ + NS_IMETHOD HasMoreElements(PRBool *_retval) = 0; + + /* nsISupports GetNext (); */ + NS_IMETHOD GetNext(nsISupports **_retval) = 0; + +#ifdef XPIDL_JS_STUBS + static NS_EXPORT_(JSObject *) InitJSClass(JSContext *cx); + static NS_EXPORT_(JSObject *) GetJSObject(JSContext *cx, nsISimpleEnumerator *priv); +#endif }; +/* starting interface: nsIEnumerator */ -extern "C" NS_COM nsresult -NS_NewEmptyEnumerator(nsISimpleEnumerator** aResult); - - -#define NS_IENUMERATOR_IID \ -{ /* ad385286-cbc4-11d2-8cca-0060b0fc14a3 */ \ - 0xad385286, \ - 0xcbc4, \ - 0x11d2, \ - {0x8c, 0xca, 0x00, 0x60, 0xb0, 0xfc, 0x14, 0xa3} \ -} - +/* {ad385286-cbc4-11d2-8cca-0060b0fc14a3} */ +#define NS_IENUMERATOR_IID_STR "ad385286-cbc4-11d2-8cca-0060b0fc14a3" +#define NS_IENUMERATOR_IID \ + {0xad385286, 0xcbc4, 0x11d2, \ + { 0x8c, 0xca, 0x00, 0x60, 0xb0, 0xfc, 0x14, 0xa3 }} class nsIEnumerator : public nsISupports { -public: + public: + NS_DEFINE_STATIC_IID_ACCESSOR(NS_IENUMERATOR_IID) - static const nsIID& GetIID(void) { static nsIID iid = NS_IENUMERATOR_IID; return iid; } + /* void First (); */ + NS_IMETHOD First() = 0; - /** First will reset the list. will return NS_FAILED if no items - */ - NS_IMETHOD First(void) = 0; - - /** Next will advance the list. will return failed if already at end - */ - NS_IMETHOD Next(void) = 0; + /* void Next (); */ + NS_IMETHOD Next() = 0; - /** CurrentItem will return the CurrentItem item it will fail if the list is empty - * @param aItem return value - */ - NS_IMETHOD CurrentItem(nsISupports **aItem) = 0; + /* nsISupports CurrentItem (); */ + NS_IMETHOD CurrentItem(nsISupports **_retval) = 0; - /** return if the collection is at the end. that is the beginning following a call to Prev - * and it is the end of the list following a call to next - * @param aItem return value - */ - NS_IMETHOD IsDone(void) = 0; + /* void IsDone (); */ + NS_IMETHOD IsDone() = 0; + +#ifdef XPIDL_JS_STUBS + static NS_EXPORT_(JSObject *) InitJSClass(JSContext *cx); + static NS_EXPORT_(JSObject *) GetJSObject(JSContext *cx, nsIEnumerator *priv); +#endif }; -#define NS_IBIDIRECTIONALENUMERATOR_IID \ -{ /* 75f158a0-cadd-11d2-8cca-0060b0fc14a3 */ \ - 0x75f158a0, \ - 0xcadd, \ - 0x11d2, \ - {0x8c, 0xca, 0x00, 0x60, 0xb0, 0xfc, 0x14, 0xa3} \ -} +/* starting interface: nsIBidirectionalEnumerator */ + +/* {75f158a0-cadd-11d2-8cca-0060b0fc14a3} */ +#define NS_IBIDIRECTIONALENUMERATOR_IID_STR "75f158a0-cadd-11d2-8cca-0060b0fc14a3" +#define NS_IBIDIRECTIONALENUMERATOR_IID \ + {0x75f158a0, 0xcadd, 0x11d2, \ + { 0x8c, 0xca, 0x00, 0x60, 0xb0, 0xfc, 0x14, 0xa3 }} class nsIBidirectionalEnumerator : public nsIEnumerator { -public: + public: + NS_DEFINE_STATIC_IID_ACCESSOR(NS_IBIDIRECTIONALENUMERATOR_IID) - static const nsIID& GetIID(void) { static nsIID iid = NS_IBIDIRECTIONALENUMERATOR_IID; return iid; } + /* void Last (); */ + NS_IMETHOD Last() = 0; - /** Last will reset the list to the end. will return NS_FAILED if no items - */ - NS_IMETHOD Last(void) = 0; - - /** Prev will decrement the list. will return failed if already at beginning - */ - NS_IMETHOD Prev(void) = 0; + /* void Prev (); */ + NS_IMETHOD Prev() = 0; +#ifdef XPIDL_JS_STUBS + static NS_EXPORT_(JSObject *) InitJSClass(JSContext *cx); + static NS_EXPORT_(JSObject *) GetJSObject(JSContext *cx, nsIBidirectionalEnumerator *priv); +#endif }; - +extern "C" NS_COM nsresult +NS_NewEmptyEnumerator(nsISimpleEnumerator** aResult); // Construct and return an implementation of a "conjoining enumerator." This // enumerator lets you string together two other enumerators into one sequence. // The result is an nsIBidirectionalEnumerator, but if either input is not @@ -101,14 +98,12 @@ public: extern "C" NS_COM nsresult NS_NewConjoiningEnumerator(nsIEnumerator* first, nsIEnumerator* second, nsIBidirectionalEnumerator* *aInstancePtrResult); - // Construct and return an implementation of a "union enumerator." This // enumerator will only return elements that are found in both constituent // enumerators. extern "C" NS_COM nsresult NS_NewUnionEnumerator(nsIEnumerator* first, nsIEnumerator* second, nsIEnumerator* *aInstancePtrResult); - // Construct and return an implementation of an "intersection enumerator." This // enumerator will return elements that are found in either constituent // enumerators, eliminating duplicates. @@ -116,5 +111,5 @@ extern "C" NS_COM nsresult NS_NewIntersectionEnumerator(nsIEnumerator* first, nsIEnumerator* second, nsIEnumerator* *aInstancePtrResult); -#endif // __nsIEnumerator_h +#endif /* __gen_nsIEnumerator_h__ */ diff --git a/mozilla/xpcom/public/nsIFactory.h b/mozilla/xpcom/public/nsIFactory.h index a355e26a09d..99688fbf36f 100644 --- a/mozilla/xpcom/public/nsIFactory.h +++ b/mozilla/xpcom/public/nsIFactory.h @@ -1,45 +1,39 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* - * The contents of this file are subject to the Netscape Public License - * Version 1.0 (the "NPL"); you may not use this file except in - * compliance with the NPL. You may obtain a copy of the NPL at - * http://www.mozilla.org/NPL/ - * - * Software distributed under the NPL is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL - * for the specific language governing rights and limitations under the - * NPL. - * - * The Initial Developer of this code under the NPL is Netscape - * Communications Corporation. Portions created by Netscape are - * Copyright (C) 1998 Netscape Communications Corporation. All Rights - * Reserved. + * DO NOT EDIT. THIS FILE IS GENERATED FROM nsIFactory.idl */ -#ifndef __nsIFactory_h -#define __nsIFactory_h +#ifndef __gen_nsIFactory_h__ +#define __gen_nsIFactory_h__ -#include "prtypes.h" -#include "nsISupports.h" +#include "nsISupports.h" /* interface nsISupports */ +#include "nsrootidl.h" /* interface nsrootidl */ -/* - * nsIFactory interface - */ +#ifdef XPIDL_JS_STUBS +#include "jsapi.h" +#endif -// {00000001-0000-0000-c000-000000000046} +/* starting interface: nsIFactory */ + +/* {00000001-0000-0000-c000-000000000046} */ +#define NS_IFACTORY_IID_STR "00000001-0000-0000-c000-000000000046" #define NS_IFACTORY_IID \ -{ 0x00000001, 0x0000, 0x0000, \ - { 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46 } } + {0x00000001, 0x0000, 0x0000, \ + { 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46 }} -class nsIFactory: public nsISupports { -public: - static const nsIID& GetIID() { static nsIID iid = NS_IFACTORY_IID; return iid; } +class nsIFactory : public nsISupports { + public: + NS_DEFINE_STATIC_IID_ACCESSOR(NS_IFACTORY_IID) - NS_IMETHOD CreateInstance(nsISupports *aOuter, - REFNSIID aIID, - void **aResult) = 0; + /* voidStar CreateInstance (in nsISupports aOuter, in nsIIDRef iid); */ + NS_IMETHOD CreateInstance(nsISupports *aOuter, const nsIID & iid, void * *_retval) = 0; - NS_IMETHOD LockFactory(PRBool aLock) = 0; + /* void LockFactory (in PRBool lock); */ + NS_IMETHOD LockFactory(PRBool lock) = 0; + +#ifdef XPIDL_JS_STUBS + static NS_EXPORT_(JSObject *) InitJSClass(JSContext *cx); + static NS_EXPORT_(JSObject *) GetJSObject(JSContext *cx, nsIFactory *priv); +#endif }; -#endif +#endif /* __gen_nsIFactory_h__ */ diff --git a/mozilla/xpcom/public/nsISupports.h b/mozilla/xpcom/public/nsISupports.h index 6d15238f593..740b9f57b4b 100644 --- a/mozilla/xpcom/public/nsISupports.h +++ b/mozilla/xpcom/public/nsISupports.h @@ -1,132 +1,57 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* - * The contents of this file are subject to the Netscape Public License - * Version 1.0 (the "NPL"); you may not use this file except in - * compliance with the NPL. You may obtain a copy of the NPL at - * http://www.mozilla.org/NPL/ - * - * Software distributed under the NPL is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL - * for the specific language governing rights and limitations under the - * NPL. - * - * The Initial Developer of this code under the NPL is Netscape - * Communications Corporation. Portions created by Netscape are - * Copyright (C) 1998 Netscape Communications Corporation. All Rights - * Reserved. + * DO NOT EDIT. THIS FILE IS GENERATED FROM nsISupports.idl */ -#ifndef nsISupports_h___ -#define nsISupports_h___ +#ifndef __gen_nsISupports_h__ +#define __gen_nsISupports_h__ -#include "nsDebug.h" -#include "nsTraceRefcnt.h" -#include "nsID.h" -#include "nsIID.h" -#include "nsError.h" +#include "nsrootidl.h" /* interface nsrootidl */ + +#ifdef XPIDL_JS_STUBS +#include "jsapi.h" +#endif +/* + * Start commenting out the C++ versions of the below in the output header + */ +#if 0 + + +/* starting interface: nsISupports */ + +/* {00000000-0000-0000-c000-000000000046} */ +#define NS_ISUPPORTS_IID_STR "00000000-0000-0000-c000-000000000046" +#define NS_ISUPPORTS_IID \ + {0x00000000, 0x0000, 0x0000, \ + { 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46 }} + +class nsISupports { + public: + NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISUPPORTS_IID) + + /* void QueryInterface (in nsIIDRef uuid, [iid_is (uuid), retval] out nsQIResult result); */ + NS_IMETHOD QueryInterface(const nsIID & uuid, void * *result) = 0; + + /* [noscript, notxpcom] nsrefcnt AddRef (); */ + NS_IMETHOD_(nsrefcnt) AddRef() = 0; + + /* [noscript, notxpcom] nsrefcnt Release (); */ + NS_IMETHOD_(nsrefcnt) Release() = 0; + +#ifdef XPIDL_JS_STUBS + static NS_EXPORT_(JSObject *) InitJSClass(JSContext *cx); + static NS_EXPORT_(JSObject *) GetJSObject(JSContext *cx, nsISupports *priv); +#endif +}; +/* + * End commenting out the C++ versions of the above in the output header + */ +#endif + +/* + * The declaration of nsISupports for C++ is in nsISupportsUtils.h. + * This is to allow for some macro trickery to support the Mac. + */ #include "nsISupportsUtils.h" -#if defined(NS_MT_SUPPORTED) -#include "prcmon.h" -#endif /* NS_MT_SUPPORTED */ -#if defined(XPIDL_JS_STUBS) -struct JSObject; -struct JSContext; -#endif - -/*@{*/ - - -//////////////////////////////////////////////////////////////////////////////// - -/** - * IID for the nsISupports interface - * {00000000-0000-0000-c000-000000000046} - * - * NOTE: NEVER EVER EVER EVER EVER change this IID. Never. Not once. - * No. Don't do it. Stop! - */ -#define NS_ISUPPORTS_IID \ -{ 0x00000000, 0x0000, 0x0000, \ - {0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46} } - -/** - * Reference count values - */ -typedef PRUint32 nsrefcnt; - -/** - * Base class for all XPCOM objects to use. This macro forces the C++ - * compiler to use a compatible vtable layout for all XPCOM objects. - */ -#ifdef XP_MAC -#define XPCOM_OBJECT : public __comobject -#else -#define XPCOM_OBJECT -#endif - -/** - * Basic component object model interface. Objects which implement - * this interface support runtime interface discovery (QueryInterface) - * and a reference counted memory model (AddRef/Release). This is - * modelled after the win32 IUnknown API. - */ -class nsISupports XPCOM_OBJECT { -public: - static const nsIID& GetIID() { static nsIID iid = NS_ISUPPORTS_IID; return iid; } - /** - * @name Methods - */ - - //@{ - /** - * A run time mechanism for interface discovery. - * @param aIID [in] A requested interface IID - * @param aInstancePtr [out] A pointer to an interface pointer to - * receive the result. - * @return NS_OK if the interface is supported by the associated - * instance, NS_NOINTERFACE if it is not. - * NS_ERROR_INVALID_POINTER if aInstancePtr is NULL. - */ - NS_IMETHOD QueryInterface(REFNSIID aIID, - void** aInstancePtr) = 0; - /** - * Increases the reference count for this interface. - * The associated instance will not be deleted unless - * the reference count is returned to zero. - * - * @return The resulting reference count. - */ - NS_IMETHOD_(nsrefcnt) AddRef(void) = 0; - - /** - * Decreases the reference count for this interface. - * Generally, if the reference count returns to zero, - * the associated instance is deleted. - * - * @return The resulting reference count. - */ - NS_IMETHOD_(nsrefcnt) Release(void) = 0; - -#if XPIDL_JS_STUBS - // XXX Scriptability hack... - static NS_EXPORT_(JSObject*) InitJSClass(JSContext* cx) { - return 0; - } - - static NS_EXPORT_(JSObject*) GetJSObject(JSContext* cx, nsISupports* priv) { - NS_NOTYETIMPLEMENTED("nsISupports isn't XPIDL scriptable yet"); - return 0; - } -#endif - - //@} -}; - -//////////////////////////////////////////////////////////////////////////////// - - -/*@}*/ - -#endif /* nsISupports_h___ */ +#endif /* __gen_nsISupports_h__ */ diff --git a/mozilla/xpcom/public/nsISupportsUtils.h b/mozilla/xpcom/public/nsISupportsUtils.h index 9cf4c1110b3..e189bcdc59d 100644 --- a/mozilla/xpcom/public/nsISupportsUtils.h +++ b/mozilla/xpcom/public/nsISupportsUtils.h @@ -19,6 +19,115 @@ #ifndef __nsISupportsUtils_h #define __nsISupportsUtils_h +/***************************************************************************/ +/* this section copied from the hand written nsISupports.h */ + +#include "nsDebug.h" +#include "nsTraceRefcnt.h" +#include "nsID.h" +#include "nsIID.h" +#include "nsError.h" + +#if defined(NS_MT_SUPPORTED) +#include "prcmon.h" +#endif /* NS_MT_SUPPORTED */ + +#if defined(XPIDL_JS_STUBS) +struct JSObject; +struct JSContext; +#endif + +/*@{*/ + +//////////////////////////////////////////////////////////////////////////////// + +/** + * IID for the nsISupports interface + * {00000000-0000-0000-c000-000000000046} + * + * NOTE: NEVER EVER EVER EVER EVER change this IID. Never. Not once. + * No. Don't do it. Stop! + */ +#define NS_ISUPPORTS_IID \ +{ 0x00000000, 0x0000, 0x0000, \ + {0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46} } + +/** + * Reference count values + */ +typedef PRUint32 nsrefcnt; + +/** + * Base class for all XPCOM objects to use. This macro forces the C++ + * compiler to use a compatible vtable layout for all XPCOM objects. + */ +#ifdef XP_MAC +#define XPCOM_OBJECT : public __comobject +#else +#define XPCOM_OBJECT +#endif + +/** + * Basic component object model interface. Objects which implement + * this interface support runtime interface discovery (QueryInterface) + * and a reference counted memory model (AddRef/Release). This is + * modelled after the win32 IUnknown API. + */ +class nsISupports XPCOM_OBJECT { +public: + static const nsIID& GetIID() { static nsIID iid = NS_ISUPPORTS_IID; return iid; } + /** + * @name Methods + */ + + //@{ + /** + * A run time mechanism for interface discovery. + * @param aIID [in] A requested interface IID + * @param aInstancePtr [out] A pointer to an interface pointer to + * receive the result. + * @return NS_OK if the interface is supported by the associated + * instance, NS_NOINTERFACE if it is not. + * NS_ERROR_INVALID_POINTER if aInstancePtr is NULL. + */ + NS_IMETHOD QueryInterface(REFNSIID aIID, + void** aInstancePtr) = 0; + /** + * Increases the reference count for this interface. + * The associated instance will not be deleted unless + * the reference count is returned to zero. + * + * @return The resulting reference count. + */ + NS_IMETHOD_(nsrefcnt) AddRef(void) = 0; + + /** + * Decreases the reference count for this interface. + * Generally, if the reference count returns to zero, + * the associated instance is deleted. + * + * @return The resulting reference count. + */ + NS_IMETHOD_(nsrefcnt) Release(void) = 0; + +#if XPIDL_JS_STUBS + // XXX Scriptability hack... + static NS_EXPORT_(JSObject*) InitJSClass(JSContext* cx) { + return 0; + } + + static NS_EXPORT_(JSObject*) GetJSObject(JSContext* cx, nsISupports* priv) { + NS_NOTYETIMPLEMENTED("nsISupports isn't XPIDL scriptable yet"); + return 0; + } +#endif + + //@} +}; + +/*@}*/ + +/***************************************************************************/ /** * A macro to build the static const IID accessor method diff --git a/mozilla/xpcom/public/nsrootidl.h b/mozilla/xpcom/public/nsrootidl.h index 3bf323aaded..b2b2d304570 100644 --- a/mozilla/xpcom/public/nsrootidl.h +++ b/mozilla/xpcom/public/nsrootidl.h @@ -13,6 +13,7 @@ */ #if 0 +typedef PRBool PRBool; typedef PRUint8 PRUint8; typedef PRUint16 PRUint16; typedef PRUint32 PRUint32;