Files
Mozilla/mozilla/xpcom/components/nsServiceManagerObsolete.cpp
dougt%netscape.com 2367cd653a API Freeze for nsIServiceManager r=shaver@mozilla.org, sr=rpotts@netscape.com bug 99147
git-svn-id: svn://10.0.0.236/trunk@105458 18797224-902f-48f8-a5cc-f745e15eee43
2001-10-16 03:35:52 +00:00

180 lines
5.7 KiB
C++

#include "nsIServiceManager.h"
#include "nsIServiceManagerObsolete.h"
nsServiceManagerObsolete* gServiceManagerObsolete = nsnull;
extern PRBool gXPCOMShuttingDown;
// Global service manager interface (see nsIServiceManagerObsolete.h)
nsresult
nsServiceManager::GetGlobalServiceManager(nsIServiceManager* *result)
{
if (gXPCOMShuttingDown)
return NS_ERROR_UNEXPECTED;
if (gServiceManagerObsolete) {
*result = (nsIServiceManager*)(void*)gServiceManagerObsolete;
return NS_OK;
}
gServiceManagerObsolete = new nsServiceManagerObsolete();
if (!gServiceManagerObsolete)
return NS_ERROR_OUT_OF_MEMORY;
*result = (nsIServiceManager*)(void*)gServiceManagerObsolete;
return NS_OK;
}
nsresult
nsServiceManager::ShutdownGlobalServiceManager(nsIServiceManager* *result)
{
delete gServiceManagerObsolete;
gServiceManagerObsolete = nsnull;
return NS_OK;
}
nsresult
nsServiceManager::GetService(const nsCID& aClass, const nsIID& aIID,
nsISupports* *result,
nsIShutdownListener* shutdownListener)
{
nsCOMPtr<nsIServiceManager> mgr;
nsresult rv = NS_GetServiceManager(getter_AddRefs(mgr));
if (NS_FAILED(rv)) return rv;
return mgr->GetService(aClass, aIID, (void**)result);
}
nsresult
nsServiceManager::ReleaseService(const nsCID& aClass, nsISupports* service,
nsIShutdownListener* shutdownListener)
{
NS_IF_RELEASE(service);
return NS_OK;
}
nsresult
nsServiceManager::RegisterService(const nsCID& aClass, nsISupports* aService)
{
nsCOMPtr<nsIServiceManager> mgr;
nsresult rv = NS_GetServiceManager(getter_AddRefs(mgr));
if (NS_FAILED(rv)) return rv;
return NS_ERROR_NOT_IMPLEMENTED;//mgr->RegisterService(aClass, aService);
}
nsresult
nsServiceManager::UnregisterService(const nsCID& aClass)
{
nsCOMPtr<nsIServiceManager> mgr;
nsresult rv = NS_GetServiceManager(getter_AddRefs(mgr));
if (NS_FAILED(rv)) return rv;
return NS_ERROR_NOT_IMPLEMENTED;//mgr->UnregisterService(aClass);
}
////////////////////////////////////////////////////////////////////////////////
// let's do it again, this time with ContractIDs...
nsresult
nsServiceManager::GetService(const char* aContractID, const nsIID& aIID,
nsISupports* *result,
nsIShutdownListener* shutdownListener)
{
nsCOMPtr<nsIServiceManager> mgr;
nsresult rv = NS_GetServiceManager(getter_AddRefs(mgr));
if (NS_FAILED(rv)) return rv;
return mgr->GetServiceByContractID(aContractID, aIID, (void**)result);
}
nsresult
nsServiceManager::ReleaseService(const char* aContractID, nsISupports* service,
nsIShutdownListener* shutdownListener)
{
NS_RELEASE(service);
return NS_OK;
}
nsresult
nsServiceManager::RegisterService(const char* aContractID, nsISupports* aService)
{
nsCOMPtr<nsIServiceManager> mgr;
nsresult rv = NS_GetServiceManager(getter_AddRefs(mgr));
if (NS_FAILED(rv)) return rv;
return NS_ERROR_NOT_IMPLEMENTED;//mgr->RegisterServiceByContractID(aContractID, aService);
}
nsresult
nsServiceManager::UnregisterService(const char* aContractID)
{
// Don't create the global service manager here because we might
// be shutting down, and releasing all the services in its
// destructor
if (gXPCOMShuttingDown)
return NS_OK;
nsCOMPtr<nsIServiceManager> mgr;
nsresult rv = NS_GetServiceManager(getter_AddRefs(mgr));
if (NS_FAILED(rv)) return rv;
return NS_ERROR_NOT_IMPLEMENTED;//mgr->UnregisterServiceByContractID(aContractID);
}
////////////////////////////////////////////////////////////////////////////////
nsServiceManagerObsolete::nsServiceManagerObsolete() {
NS_INIT_ISUPPORTS();
}
nsServiceManagerObsolete::~nsServiceManagerObsolete() {
}
NS_IMPL_ISUPPORTS1(nsServiceManagerObsolete,
nsIServiceManagerObsolete);
NS_IMETHODIMP
nsServiceManagerObsolete::RegisterService(const nsCID& aClass, nsISupports* aService) {
return nsServiceManager::RegisterService(aClass, aService);
};
NS_IMETHODIMP
nsServiceManagerObsolete::UnregisterService(const nsCID& aClass){
return nsServiceManager::UnregisterService(aClass);
};
NS_IMETHODIMP
nsServiceManagerObsolete::GetService(const nsCID& aClass, const nsIID& aIID,
nsISupports* *result,
nsIShutdownListener* shutdownListener){
return nsServiceManager::GetService(aClass, aIID, result, shutdownListener);
};
NS_IMETHODIMP
nsServiceManagerObsolete::ReleaseService(const nsCID& aClass, nsISupports* service,
nsIShutdownListener* shutdownListener ){
return nsServiceManager::ReleaseService(aClass, service, shutdownListener);
};
NS_IMETHODIMP
nsServiceManagerObsolete::RegisterService(const char* aContractID, nsISupports* aService){
return nsServiceManager::RegisterService(aContractID, aService);
};
NS_IMETHODIMP
nsServiceManagerObsolete::UnregisterService(const char* aContractID){
return nsServiceManager::UnregisterService(aContractID);
};
NS_IMETHODIMP
nsServiceManagerObsolete::GetService(const char* aContractID, const nsIID& aIID,
nsISupports* *result,
nsIShutdownListener* shutdownListener ){
return nsServiceManager::GetService(aContractID, aIID, result, shutdownListener);
};
NS_IMETHODIMP
nsServiceManagerObsolete::ReleaseService(const char* aContractID, nsISupports* service,
nsIShutdownListener* shutdownListener ){
return nsServiceManager::ReleaseService(aContractID, service, shutdownListener);
};