Adding nsIComponentRegistrar interface to the build. See 115853. r=dp@netscape.com, sr=jband@netscape.com

This commit is contained in:
dougt%netscape.com 2002-01-24 01:50:35 +00:00
Родитель af90e6e1e5
Коммит 0d29a55b5a
5 изменённых файлов: 252 добавлений и 0 удалений

Просмотреть файл

@ -4,6 +4,7 @@ nsIClassInfo.idl
nsIComponentLoader.idl
nsIComponentManager.idl
nsIComponentManagerObsolete.idl
nsIComponentRegistrar.idl
nsIFactory.idl
nsIRegistry.idl
nsIServiceManager.idl

Просмотреть файл

@ -69,6 +69,7 @@ XPIDLSRCS = \
nsIComponentLoader.idl \
nsIComponentManager.idl \
nsIComponentManagerObsolete.idl \
nsIComponentRegistrar.idl \
nsIFactory.idl \
nsIModule.idl \
nsIRegistry.idl \

Просмотреть файл

@ -53,6 +53,7 @@ XPIDLSRCS = \
.\nsIComponentLoader.idl \
.\nsIComponentManager.idl \
.\nsIComponentManagerObsolete.idl \
.\nsIComponentRegistrar.idl \
.\nsIFactory.idl \
.\nsIModule.idl \
.\nsIRegistry.idl \

Просмотреть файл

@ -0,0 +1,219 @@
/* ***** 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 XPCOM.
*
* The Initial Developer of the Original Code is Netscape Communications.
* 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 ***** */
/**
* The nsIComponentRegistrar interface.
* @status UNDER_REVIEW
*/
#include "nsISupports.idl"
interface nsIFile;
interface nsIFactory;
interface nsISimpleEnumerator;
[scriptable, uuid(2417cbfe-65ad-48a6-b4b6-eb84db174392)]
interface nsIComponentRegistrar : nsISupports
{
/**
* autoRegister
*
* Register a component file or all component files in a directory.
*
* These files must have an associated loader and export the required
* symbols which this loader defines. For example, if the given file is a
* native library (which is built into XPCOM), it must export the symbol
* "NSGetModule". Other loaders may have different semantecs.
*
* @param aSpec : Filename spec for component file's location. If the
* file is a directory, the every file in the directory
* will be registered. If the file is null, then the
* application component's directory will be registred
* as defined by NS_XPCOM_COMPONENT_DIR (see
* nsIDirectoryService.idl)
*/
void autoRegister(in nsIFile aSpec);
/**
* autoUnregister
*
* Unregister a component file or all component files in a directory.
*
* Disassociate component file references by file specification.
*
* @param aSpec : Filename spec for component file's location. If the
* file is a directory, the every file in the directory
* will be registered. If the file is null, then the
* application component's directory will be registred
* as defined by NS_XPCOM_COMPONENT_DIR (see
* nsIDirectoryService.idl)
*/
void autoUnregister(in nsIFile aSpec);
/**
* registerFactory
*
* Register a factory with a given ContractID, CID and Class Name.
*
* @param aClass : CID of object
* @param aClassName : Class Name of CID
* @param aContractID : ContractID associated with CID aClass
* @param aFactory : Factory that will be registered for CID aClass
*/
void registerFactory(in nsCIDRef aClass,
in string aClassName,
in string aContractID,
in nsIFactory aFactory);
/**
* unregisterFactory
*
* Unregister a factory associated with CID aClass.
*
* @param aClass : ClassID being unregistered
* @param aFactory : Factory previously registered to create instances of
* ClassID aClass.
*/
void unregisterFactory(in nsCIDRef aClass,
in nsIFactory aFactory);
/**
* registerFactoryLocation
*
* Register a factory with a given ContractID, CID and Class Name
*
* @param aClass : CID of object
* @param aClassName : Class Name of CID
* @param aContractID : ContractID associated with CID aClass
* @param aFile : Component File. This file must have an associated
* loader and export the required symbols which this
* loader defines.
* @param aLoaderStr : Opaque loader specific string. This value is
* passed into the nsIModule's registerSelf
* callback and must be fowarded unmodified when
* registering factories via their location.
* @param aType : Component Type of CID aClass. This value is
* passed into the nsIModule's registerSelf
* callback and must be fowarded unmodified when
* registering factories via their location.
*/
void registerFactoryLocation(in nsCIDRef aClass,
in string aClassName,
in string aContractID,
in nsIFile aFile,
in string aLoaderStr,
in string aType);
/**
* unregisterFactoryLocation
*
* Unregister a factory associated with CID aClass.
*
* @param aClass : ClassID being unregistered
* @param aFile : Component File previously registered
*/
void unregisterFactoryLocation(in nsCIDRef aClass,
in nsIFile aFile);
/**
* isCIDRegistered
*
* Returns true if a factory is registered for the CID.
*
* @param aClass : CID queried for registeration
* @return : true if a factory or module is registered for CID
* false otherwise.
*/
boolean isCIDRegistered(in nsCIDRef aClass);
/**
* isContractIDRegistered
*
* Returns true if a factory is registered for the contract id.
*
* @param aClass : contract id queried for registeration
* @return : true if a factory or module is registered for contract id
* false otherwise.
*/
boolean isContractIDRegistered(in string aClass);
/**
* enumerateCIDs
*
* Enumerate the list of all registered CIDs.
*
* @return : enumerator for CIDs. This enumerator can be QI'ed for
*/
nsISimpleEnumerator enumerateCIDs();
/**
* enumerateContractIDs
*
* Enumerate the list of all registered ContractIDs.
*
* @return : enumerator for ContractIDs.
*/
nsISimpleEnumerator enumerateContractIDs();
/**
* CIDToContractID
*
* Returns the Contract ID for a given CID, if one exists and is registered.
*
* @return : Contract ID.
*/
string CIDToContractID(in nsCIDRef aClass);
/**
* contractIDToCID
*
* Returns the CID for a given Contract ID, if one exists and is registered.
*
* @return : Contract ID.
*/
nsCIDPtr contractIDToCID(in string aContractID);
};

Просмотреть файл

@ -913,6 +913,13 @@
<FILEKIND>Text</FILEKIND>
<FILEFLAGS></FILEFLAGS>
</FILE>
<FILE>
<PATHTYPE>Name</PATHTYPE>
<PATH>nsIComponentRegistrar.idl</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
<FILEKIND>Text</FILEKIND>
<FILEFLAGS></FILEFLAGS>
</FILE>
<FILE>
<PATHTYPE>Name</PATHTYPE>
<PATH>nsIRunnable.idl</PATH>
@ -1362,6 +1369,11 @@
<PATH>nsIComponentManagerObsolete.idl</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
<FILEREF>
<PATHTYPE>Name</PATHTYPE>
<PATH>nsIComponentRegistrar.idl</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
<FILEREF>
<PATHTYPE>Name</PATHTYPE>
<PATH>nsIComponentManager.idl</PATH>
@ -2484,6 +2496,13 @@
<FILEKIND>Text</FILEKIND>
<FILEFLAGS></FILEFLAGS>
</FILE>
<FILE>
<PATHTYPE>Name</PATHTYPE>
<PATH>nsIComponentRegistrar.idl</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
<FILEKIND>Text</FILEKIND>
<FILEFLAGS></FILEFLAGS>
</FILE>
<FILE>
<PATHTYPE>Name</PATHTYPE>
<PATH>nsIRunnable.idl</PATH>
@ -2938,6 +2957,11 @@
<PATH>nsIComponentManagerObsolete.idl</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
<FILEREF>
<PATHTYPE>Name</PATHTYPE>
<PATH>nsIComponentRegistrar.idl</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
<FILEREF>
<PATHTYPE>Name</PATHTYPE>
<PATH>nsIRunnable.idl</PATH>
@ -3275,6 +3299,12 @@
<PATH>nsIComponentManagerObsolete.idl</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
<FILEREF>
<TARGETNAME>headers</TARGETNAME>
<PATHTYPE>Name</PATHTYPE>
<PATH>nsIComponentRegistrar.idl</PATH>
<PATHFORMAT>MacOS</PATHFORMAT>
</FILEREF>
<FILEREF>
<TARGETNAME>headers</TARGETNAME>
<PATHTYPE>Name</PATHTYPE>