diff --git a/mozilla/netwerk/protocol/about/src/nsAboutProtocolModule.cpp b/mozilla/netwerk/protocol/about/src/nsAboutProtocolModule.cpp index bbf1f671fe2..2e6ac00cc84 100644 --- a/mozilla/netwerk/protocol/about/src/nsAboutProtocolModule.cpp +++ b/mozilla/netwerk/protocol/about/src/nsAboutProtocolModule.cpp @@ -19,252 +19,35 @@ * * Contributor(s): */ -#include "nsCOMPtr.h" + #include "nsIModule.h" #include "nsIGenericFactory.h" -#include "nsIComponentManager.h" -#include "nsIServiceManager.h" + #include "nsAboutProtocolHandler.h" #include "nsAboutBlank.h" #include "nsAboutBloat.h" -#include "nscore.h" -static NS_DEFINE_CID(kAboutProtocolHandlerCID, NS_ABOUTPROTOCOLHANDLER_CID); -static NS_DEFINE_CID(kAboutBlankModuleCID, NS_ABOUT_BLANK_MODULE_CID); -static NS_DEFINE_CID(kAboutBloatModuleCID, NS_ABOUT_BLOAT_MODULE_CID); - -/////////////////////////////////////////////////////////////////////////////// - -class nsAboutProtocolModule : public nsIModule +static nsModuleComponentInfo components[] = { -public: - nsAboutProtocolModule(); - virtual ~nsAboutProtocolModule(); + { "About Protocol Handler", + NS_ABOUTPROTOCOLHANDLER_CID, + NS_NETWORK_PROTOCOL_PROGID_PREFIX "about", + nsAboutProtocolHandler::Create + }, - NS_DECL_ISUPPORTS + { "about:blank", + NS_ABOUT_BLANK_MODULE_CID, + NS_ABOUT_MODULE_PROGID_PREFIX "blank", + nsAboutBlank::Create + }, + + { "about:bloat", + NS_ABOUT_BLOAT_MODULE_CID, + NS_ABOUT_MODULE_PROGID_PREFIX "bloat", + nsAboutBloat::Create + }, - NS_DECL_NSIMODULE - -protected: - nsresult Initialize(); - - void Shutdown(); - - PRBool mInitialized; - nsCOMPtr mAboutProtocolFactory; - nsCOMPtr mAboutBlankFactory; - nsCOMPtr mAboutBloatFactory; }; -static NS_DEFINE_IID(kIModuleIID, NS_IMODULE_IID); +NS_IMPL_NSGETMODULE("nsAboutProtocolModule", components); -nsAboutProtocolModule::nsAboutProtocolModule() - : mInitialized(PR_FALSE) -{ - NS_INIT_ISUPPORTS(); -} - -nsAboutProtocolModule::~nsAboutProtocolModule() -{ - Shutdown(); -} - -NS_IMPL_ISUPPORTS(nsAboutProtocolModule, kIModuleIID) - -// Perform our one-time intialization for this module -nsresult -nsAboutProtocolModule::Initialize() -{ - if (mInitialized) { - return NS_OK; - } - mInitialized = PR_TRUE; - return NS_OK; -} - -// Shutdown this module, releasing all of the module resources -void -nsAboutProtocolModule::Shutdown() -{ - // Release the factory objects - mAboutProtocolFactory = nsnull; - mAboutBlankFactory = nsnull; - mAboutBloatFactory = nsnull; -} - -// Create a factory object for creating instances of aClass. -NS_IMETHODIMP -nsAboutProtocolModule::GetClassObject(nsIComponentManager *aCompMgr, - const nsCID& aClass, - const nsIID& aIID, - void** r_classObj) -{ - nsresult rv; - - // Defensive programming: Initialize *r_classObj in case of error below - if (!r_classObj) { - return NS_ERROR_INVALID_POINTER; - } - *r_classObj = NULL; - - // Do one-time-only initialization if necessary - if (!mInitialized) { - rv = Initialize(); - if (NS_FAILED(rv)) { - // Initialization failed! yikes! - return rv; - } - } - - // Choose the appropriate factory, based on the desired instance - // class type (aClass). - nsCOMPtr fact; - if (aClass.Equals(kAboutProtocolHandlerCID)) { - if (!mAboutProtocolFactory) { - rv = NS_NewGenericFactory(getter_AddRefs(mAboutProtocolFactory), - nsAboutProtocolHandler::Create); - } - fact = mAboutProtocolFactory; - } - else if (aClass.Equals(kAboutBlankModuleCID)) { - if (!mAboutBlankFactory) { - rv = NS_NewGenericFactory(getter_AddRefs(mAboutBlankFactory), - nsAboutBlank::Create); - } - fact = mAboutBlankFactory; - } - else if (aClass.Equals(kAboutBloatModuleCID)) { - if (!mAboutBloatFactory) { - rv = NS_NewGenericFactory(getter_AddRefs(mAboutBloatFactory), - nsAboutBloat::Create); - } - fact = mAboutBloatFactory; - } - else { - rv = NS_ERROR_FACTORY_NOT_REGISTERED; -#ifdef DEBUG - char* cs = aClass.ToString(); - printf("+++ nsAboutProtocolModule: unable to create factory for %s\n", cs); - nsCRT::free(cs); -#endif - } - - if (fact) { - rv = fact->QueryInterface(aIID, r_classObj); - } - - return rv; -} - -//---------------------------------------- - -struct Components { - const char* mDescription; - const nsID* mCID; - const char* mProgID; -}; - -// The list of components we register -static Components gComponents[] = { - { "About Protocol Handler", &kAboutProtocolHandlerCID, - NS_NETWORK_PROTOCOL_PROGID_PREFIX "about", }, - { "about:blank", &kAboutBlankModuleCID, - NS_ABOUT_MODULE_PROGID_PREFIX "blank", }, - { "about:bloat", &kAboutBloatModuleCID, - NS_ABOUT_MODULE_PROGID_PREFIX "bloat", }, -}; -#define NUM_COMPONENTS (sizeof(gComponents) / sizeof(gComponents[0])) - -NS_IMETHODIMP -nsAboutProtocolModule::RegisterSelf(nsIComponentManager *aCompMgr, - nsIFileSpec* aPath, - const char* registryLocation, - const char* componentType) -{ - nsresult rv = NS_OK; - -#ifdef DEBUG - printf("*** Registering about: components\n"); -#endif - - Components* cp = gComponents; - Components* end = cp + NUM_COMPONENTS; - while (cp < end) { - rv = aCompMgr->RegisterComponentSpec(*cp->mCID, cp->mDescription, - cp->mProgID, aPath, PR_TRUE, - PR_TRUE); - if (NS_FAILED(rv)) { -#ifdef DEBUG - printf("nsAboutProtocolModule: unable to register %s component => %x\n", - cp->mDescription, rv); -#endif - break; - } - cp++; - } - - return rv; -} - -NS_IMETHODIMP -nsAboutProtocolModule::UnregisterSelf(nsIComponentManager* aCompMgr, - nsIFileSpec* aPath, - const char* registryLocation) -{ -#ifdef DEBUG - printf("*** Unregistering about: components\n"); -#endif - Components* cp = gComponents; - Components* end = cp + NUM_COMPONENTS; - while (cp < end) { - nsresult rv = aCompMgr->UnregisterComponentSpec(*cp->mCID, aPath); - if (NS_FAILED(rv)) { -#ifdef DEBUG - printf("nsAboutProtocolModule: unable to unregister %s component => %x\n", - cp->mDescription, rv); -#endif - } - cp++; - } - - return NS_OK; -} - -NS_IMETHODIMP -nsAboutProtocolModule::CanUnload(nsIComponentManager *aCompMgr, PRBool *okToUnload) -{ - if (!okToUnload) { - return NS_ERROR_INVALID_POINTER; - } - *okToUnload = PR_FALSE; - return NS_ERROR_FAILURE; -} - -//---------------------------------------------------------------------- - -static nsAboutProtocolModule *gModule = NULL; - -extern "C" NS_EXPORT nsresult NSGetModule(nsIComponentManager *servMgr, - nsIFileSpec* location, - nsIModule** return_cobj) -{ - nsresult rv = NS_OK; - - NS_ASSERTION(return_cobj, "Null argument"); - NS_ASSERTION(gModule == NULL, "nsAboutProtocolModule: Module already created."); - - // Create and initialize the module instance - nsAboutProtocolModule *m = new nsAboutProtocolModule(); - if (!m) { - return NS_ERROR_OUT_OF_MEMORY; - } - - // Increase refcnt and store away nsIModule interface to m in return_cobj - rv = m->QueryInterface(NS_GET_IID(nsIModule), (void**)return_cobj); - if (NS_FAILED(rv)) { - delete m; - m = nsnull; - } - gModule = m; // WARNING: Weak Reference - return rv; -} diff --git a/mozilla/netwerk/protocol/data/src/nsDataModule.cpp b/mozilla/netwerk/protocol/data/src/nsDataModule.cpp index 80a347938eb..846487c64e7 100644 --- a/mozilla/netwerk/protocol/data/src/nsDataModule.cpp +++ b/mozilla/netwerk/protocol/data/src/nsDataModule.cpp @@ -19,224 +19,20 @@ * * Contributor(s): */ -#include "nsCOMPtr.h" + #include "nsIModule.h" #include "nsIGenericFactory.h" -#include "nsIComponentManager.h" -#include "nsIServiceManager.h" #include "nsDataHandler.h" -#include "nscore.h" - -static NS_DEFINE_CID(kDataHandlerCID, NS_DATAHANDLER_CID); - -class nsDataProtocolModule : public nsIModule -{ -public: - nsDataProtocolModule(); - virtual ~nsDataProtocolModule(); - - NS_DECL_ISUPPORTS - - NS_DECL_NSIMODULE - -protected: - nsresult Initialize(); - - void Shutdown(); - - PRBool mInitialized; - nsCOMPtr mFactory; -}; - -static NS_DEFINE_IID(kIModuleIID, NS_IMODULE_IID); - -nsDataProtocolModule::nsDataProtocolModule() - : mInitialized(PR_FALSE) -{ - NS_INIT_ISUPPORTS(); -} - -nsDataProtocolModule::~nsDataProtocolModule() -{ - Shutdown(); -} - -NS_IMPL_ISUPPORTS(nsDataProtocolModule, kIModuleIID) - -// Perform our one-time intialization for this module -nsresult -nsDataProtocolModule::Initialize() -{ - if (mInitialized) { - return NS_OK; - } - mInitialized = PR_TRUE; - return NS_OK; -} - -// Shutdown this module, releasing all of the module resources -void -nsDataProtocolModule::Shutdown() -{ - // Release the factory object - mFactory = nsnull; -} - -// Create a factory object for creating instances of aClass. -NS_IMETHODIMP -nsDataProtocolModule::GetClassObject(nsIComponentManager *aCompMgr, - const nsCID& aClass, - const nsIID& aIID, - void** r_classObj) -{ - nsresult rv; - - // Defensive programming: Initialize *r_classObj in case of error below - if (!r_classObj) { - return NS_ERROR_INVALID_POINTER; - } - *r_classObj = NULL; - - // Do one-time-only initialization if necessary - if (!mInitialized) { - rv = Initialize(); - if (NS_FAILED(rv)) { - // Initialization failed! yikes! - return rv; - } - } - - // Choose the appropriate factory, based on the desired instance - // class type (aClass). - nsCOMPtr fact; - if (aClass.Equals(kDataHandlerCID)) { - if (!mFactory) { - rv = NS_NewGenericFactory(getter_AddRefs(mFactory), - nsDataHandler::Create); - } - fact = mFactory; - } - else { - rv = NS_ERROR_FACTORY_NOT_REGISTERED; -#ifdef DEBUG - char* cs = aClass.ToString(); - printf("+++ nsDataProtocolModule: unable to create factory for %s\n", cs); - nsCRT::free(cs); -#endif - } - - if (fact) { - rv = fact->QueryInterface(aIID, r_classObj); - } - - return rv; -} - -//---------------------------------------- - -struct Components { - const char* mDescription; - const nsID* mCID; - const char* mProgID; -}; // The list of components we register -static Components gComponents[] = { - { "Data Protocol Handler", &kDataHandlerCID, - NS_NETWORK_PROTOCOL_PROGID_PREFIX "data", }, +static nsModuleComponentInfo components[] = { + { "Data Protocol Handler", + NS_DATAHANDLER_CID, + NS_NETWORK_PROTOCOL_PROGID_PREFIX "data", + nsDataHandler::Create}, }; -#define NUM_COMPONENTS (sizeof(gComponents) / sizeof(gComponents[0])) -NS_IMETHODIMP -nsDataProtocolModule::RegisterSelf(nsIComponentManager *aCompMgr, - nsIFileSpec* aPath, - const char* registryLocation, - const char* componentType) -{ - nsresult rv = NS_OK; +NS_IMPL_NSGETMODULE("nsDataProtocolModule", components) -#ifdef DEBUG - printf("*** Registering data: components\n"); -#endif - Components* cp = gComponents; - Components* end = cp + NUM_COMPONENTS; - while (cp < end) { - rv = aCompMgr->RegisterComponentSpec(*cp->mCID, cp->mDescription, - cp->mProgID, aPath, PR_TRUE, - PR_TRUE); - if (NS_FAILED(rv)) { -#ifdef DEBUG - printf("nsDataProtocolModule: unable to register %s component => %x\n", - cp->mDescription, rv); -#endif - break; - } - cp++; - } - return rv; -} - -NS_IMETHODIMP -nsDataProtocolModule::UnregisterSelf(nsIComponentManager* aCompMgr, - nsIFileSpec* aPath, - const char* registryLocation) -{ -#ifdef DEBUG - printf("*** Unregistering data: components\n"); -#endif - Components* cp = gComponents; - Components* end = cp + NUM_COMPONENTS; - while (cp < end) { - nsresult rv = aCompMgr->UnregisterComponentSpec(*cp->mCID, aPath); - if (NS_FAILED(rv)) { -#ifdef DEBUG - printf("nsDataProtocolModule: unable to unregister %s component => %x\n", - cp->mDescription, rv); -#endif - } - cp++; - } - - return NS_OK; -} - -NS_IMETHODIMP -nsDataProtocolModule::CanUnload(nsIComponentManager *aCompMgr, PRBool *okToUnload) -{ - if (!okToUnload) { - return NS_ERROR_INVALID_POINTER; - } - *okToUnload = PR_FALSE; - return NS_ERROR_FAILURE; -} - -//---------------------------------------------------------------------- - -static nsDataProtocolModule *gModule = NULL; - -extern "C" NS_EXPORT nsresult NSGetModule(nsIComponentManager *servMgr, - nsIFileSpec* location, - nsIModule** return_cobj) -{ - nsresult rv = NS_OK; - - NS_ASSERTION(return_cobj, "Null argument"); - NS_ASSERTION(gModule == NULL, "nsDataProtocolModule: Module already created."); - - // Create and initialize the module instance - nsDataProtocolModule *m = new nsDataProtocolModule(); - if (!m) { - return NS_ERROR_OUT_OF_MEMORY; - } - - // Increase refcnt and store away nsIModule interface to m in return_cobj - rv = m->QueryInterface(NS_GET_IID(nsIModule), (void**)return_cobj); - if (NS_FAILED(rv)) { - delete m; - m = nsnull; - } - gModule = m; // WARNING: Weak Reference - return rv; -} diff --git a/mozilla/netwerk/protocol/file/src/nsFileProtocolModule.cpp b/mozilla/netwerk/protocol/file/src/nsFileProtocolModule.cpp index ea852d55947..700c58b63b8 100644 --- a/mozilla/netwerk/protocol/file/src/nsFileProtocolModule.cpp +++ b/mozilla/netwerk/protocol/file/src/nsFileProtocolModule.cpp @@ -19,227 +19,19 @@ * * Contributor(s): */ -#include "nsCOMPtr.h" + #include "nsIModule.h" #include "nsIGenericFactory.h" -#include "nsIComponentManager.h" -#include "nsIServiceManager.h" + #include "nsFileProtocolHandler.h" -#include "nscore.h" -static NS_DEFINE_CID(kFileProtocolHandlerCID, NS_FILEPROTOCOLHANDLER_CID); - -//////////////////////////////////////////////////////////////////////////////// - -// Module implementation -class nsFileProtocolModule : public nsIModule +static nsModuleComponentInfo components[] = { -public: - nsFileProtocolModule(); - virtual ~nsFileProtocolModule(); - - NS_DECL_ISUPPORTS - - NS_DECL_NSIMODULE - -protected: - nsresult Initialize(); - - void Shutdown(); - - PRBool mInitialized; - nsCOMPtr mFactory; + { "File Protocol Handler", + NS_FILEPROTOCOLHANDLER_CID, + NS_NETWORK_PROTOCOL_PROGID_PREFIX "file", + nsFileProtocolHandler::Create + }, }; -static NS_DEFINE_IID(kIModuleIID, NS_IMODULE_IID); - -nsFileProtocolModule::nsFileProtocolModule() - : mInitialized(PR_FALSE) -{ - NS_INIT_ISUPPORTS(); -} - -nsFileProtocolModule::~nsFileProtocolModule() -{ - Shutdown(); -} - -NS_IMPL_ISUPPORTS(nsFileProtocolModule, kIModuleIID) - -// Perform our one-time intialization for this module -nsresult -nsFileProtocolModule::Initialize() -{ - if (mInitialized) { - return NS_OK; - } - mInitialized = PR_TRUE; - return NS_OK; -} - -// Shutdown this module, releasing all of the module resources -void -nsFileProtocolModule::Shutdown() -{ - // Release the factory object - mFactory = nsnull; -} - -// Create a factory object for creating instances of aClass. -NS_IMETHODIMP -nsFileProtocolModule::GetClassObject(nsIComponentManager *aCompMgr, - const nsCID& aClass, - const nsIID& aIID, - void** r_classObj) -{ - nsresult rv; - - // Defensive programming: Initialize *r_classObj in case of error below - if (!r_classObj) { - return NS_ERROR_INVALID_POINTER; - } - *r_classObj = NULL; - - // Do one-time-only initialization if necessary - if (!mInitialized) { - rv = Initialize(); - if (NS_FAILED(rv)) { - // Initialization failed! yikes! - return rv; - } - } - - // Choose the appropriate factory, based on the desired instance - // class type (aClass). - nsCOMPtr fact; - if (aClass.Equals(kFileProtocolHandlerCID)) { - if (!mFactory) { - rv = NS_NewGenericFactory(getter_AddRefs(mFactory), - nsFileProtocolHandler::Create); - } - fact = mFactory; - } - else { - rv = NS_ERROR_FACTORY_NOT_REGISTERED; -#ifdef DEBUG - char* cs = aClass.ToString(); - printf("+++ nsFileProtocolModule: unable to create factory for %s\n", cs); - nsCRT::free(cs); -#endif - } - - if (fact) { - rv = fact->QueryInterface(aIID, r_classObj); - } - - return rv; -} - -//---------------------------------------- - -struct Components { - const char* mDescription; - const nsID* mCID; - const char* mProgID; -}; - -// The list of components we register -static Components gComponents[] = { - { "File Protocol Handler", &kFileProtocolHandlerCID, - NS_NETWORK_PROTOCOL_PROGID_PREFIX "file", }, -}; -#define NUM_COMPONENTS (sizeof(gComponents) / sizeof(gComponents[0])) - -NS_IMETHODIMP -nsFileProtocolModule::RegisterSelf(nsIComponentManager *aCompMgr, - nsIFileSpec* aPath, - const char* registryLocation, - const char* componentType) -{ - nsresult rv = NS_OK; - -#ifdef DEBUG - printf("*** Registering file: components\n"); -#endif - - Components* cp = gComponents; - Components* end = cp + NUM_COMPONENTS; - while (cp < end) { - rv = aCompMgr->RegisterComponentSpec(*cp->mCID, cp->mDescription, - cp->mProgID, aPath, PR_TRUE, - PR_TRUE); - if (NS_FAILED(rv)) { -#ifdef DEBUG - printf("nsFileProtocolModule: unable to register %s component => %x\n", - cp->mDescription, rv); -#endif - break; - } - cp++; - } - - return rv; -} - -NS_IMETHODIMP -nsFileProtocolModule::UnregisterSelf(nsIComponentManager* aCompMgr, - nsIFileSpec* aPath, - const char* registryLocation) -{ -#ifdef DEBUG - printf("*** Unregistering file: components\n"); -#endif - Components* cp = gComponents; - Components* end = cp + NUM_COMPONENTS; - while (cp < end) { - nsresult rv = aCompMgr->UnregisterComponentSpec(*cp->mCID, aPath); - if (NS_FAILED(rv)) { -#ifdef DEBUG - printf("nsFileProtocolModule: unable to unregister %s component => %x\n", - cp->mDescription, rv); -#endif - } - cp++; - } - - return NS_OK; -} - -NS_IMETHODIMP -nsFileProtocolModule::CanUnload(nsIComponentManager *aCompMgr, PRBool *okToUnload) -{ - if (!okToUnload) { - return NS_ERROR_INVALID_POINTER; - } - *okToUnload = PR_FALSE; - return NS_ERROR_FAILURE; -} - -//---------------------------------------------------------------------- - -static nsFileProtocolModule *gModule = NULL; - -extern "C" NS_EXPORT nsresult NSGetModule(nsIComponentManager *servMgr, - nsIFileSpec* location, - nsIModule** return_cobj) -{ - nsresult rv = NS_OK; - - NS_ASSERTION(return_cobj, "Null argument"); - NS_ASSERTION(gModule == NULL, "nsFileProtocolModule: Module already created."); - - // Create and initialize the module instance - nsFileProtocolModule *m = new nsFileProtocolModule(); - if (!m) { - return NS_ERROR_OUT_OF_MEMORY; - } - - // Increase refcnt and store away nsIModule interface to m in return_cobj - rv = m->QueryInterface(NS_GET_IID(nsIModule), (void**)return_cobj); - if (NS_FAILED(rv)) { - delete m; - m = nsnull; - } - gModule = m; // WARNING: Weak Reference - return rv; -} +NS_IMPL_NSGETMODULE("nsFileProtocolModule", components);