The services
C++ namespace offers an easy and efficient alternative for obtaining a service as compared to the indirect XPCOM approach: GetService()
, CallGetService()
, etc methods are expensive and should be avoided when possible.
To use it, you first need to include the header into your C++ file:
#include "mozilla/Services.h"
Then you can obtain references to services by simply accessing them from the mozilla::services
namespace. For example, to obtain a reference to the IOService:
nsCOMPtr<nsIIOService> ioService = mozilla::services::GetIOService();
Provided service getters
Service Accessor | Service Interface | Service Name |
GetChromeRegistryService | nsIChromeRegistryService | Chrome Registry service |
GetIOService | nsIIOService | IO Service |
GetObserverService | nsIObserverService | Observer service |
GetStringBundleService | nsIStringBundleService | String Bundle Service |
GetToolkitChromeRegistryService | nsIToolkitChromeRegistry | Toolkit Chrome Registry service |
GetXULChromeRegistryService | nsIXULChromeRegistry | XUL Chrome Registry service |
GetXULOverlayProviderServ ice | nsIXULOverlayProvider | XUL Overlay Provider service |
More services will be added as needed.