1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/xpcom/glue/nsComponentManagerUtils.cpp Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,269 @@ 1.4 +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 1.5 +/* This Source Code Form is subject to the terms of the Mozilla Public 1.6 + * License, v. 2.0. If a copy of the MPL was not distributed with this 1.7 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 1.8 + 1.9 +#ifndef nsXPCOM_h__ 1.10 +#include "nsXPCOM.h" 1.11 +#endif 1.12 + 1.13 +#ifndef nsCOMPtr_h__ 1.14 +#include "nsCOMPtr.h" 1.15 +#endif 1.16 + 1.17 +#include "nsComponentManagerUtils.h" 1.18 +#include "nsServiceManagerUtils.h" 1.19 + 1.20 +#include "nsIComponentManager.h" 1.21 + 1.22 +#ifndef MOZILLA_INTERNAL_API 1.23 + 1.24 +nsresult 1.25 +CallGetService(const nsCID &aCID, const nsIID &aIID, void **aResult) 1.26 +{ 1.27 + nsCOMPtr<nsIServiceManager> servMgr; 1.28 + nsresult status = NS_GetServiceManager(getter_AddRefs(servMgr)); 1.29 + if (servMgr) 1.30 + status = servMgr->GetService(aCID, aIID, aResult); 1.31 + return status; 1.32 +} 1.33 + 1.34 +nsresult 1.35 +CallGetService(const char *aContractID, const nsIID &aIID, void **aResult) 1.36 +{ 1.37 + nsCOMPtr<nsIServiceManager> servMgr; 1.38 + nsresult status = NS_GetServiceManager(getter_AddRefs(servMgr)); 1.39 + if (servMgr) 1.40 + status = servMgr->GetServiceByContractID(aContractID, aIID, aResult); 1.41 + return status; 1.42 +} 1.43 + 1.44 +#else 1.45 + 1.46 +#include "nsComponentManager.h" 1.47 + 1.48 +nsresult 1.49 +CallGetService(const nsCID &aCID, const nsIID &aIID, void **aResult) 1.50 +{ 1.51 + nsComponentManagerImpl *compMgr = nsComponentManagerImpl::gComponentManager; 1.52 + if (NS_WARN_IF(!compMgr)) 1.53 + return NS_ERROR_NOT_INITIALIZED; 1.54 + 1.55 + return compMgr->nsComponentManagerImpl::GetService(aCID, aIID, aResult); 1.56 +} 1.57 + 1.58 +nsresult 1.59 +CallGetService(const char *aContractID, const nsIID &aIID, void **aResult) 1.60 +{ 1.61 + nsComponentManagerImpl *compMgr = nsComponentManagerImpl::gComponentManager; 1.62 + if (NS_WARN_IF(!compMgr)) 1.63 + return NS_ERROR_NOT_INITIALIZED; 1.64 + 1.65 + return compMgr-> 1.66 + nsComponentManagerImpl::GetServiceByContractID(aContractID, 1.67 + aIID, aResult); 1.68 +} 1.69 + 1.70 +#endif 1.71 + 1.72 +#ifndef MOZILLA_INTERNAL_API 1.73 + 1.74 +nsresult 1.75 +CallCreateInstance(const nsCID &aCID, nsISupports *aDelegate, 1.76 + const nsIID &aIID, void **aResult) 1.77 +{ 1.78 + nsCOMPtr<nsIComponentManager> compMgr; 1.79 + nsresult status = NS_GetComponentManager(getter_AddRefs(compMgr)); 1.80 + if (compMgr) 1.81 + status = compMgr->CreateInstance(aCID, aDelegate, aIID, aResult); 1.82 + return status; 1.83 +} 1.84 + 1.85 +nsresult 1.86 +CallCreateInstance(const char *aContractID, nsISupports *aDelegate, 1.87 + const nsIID &aIID, void **aResult) 1.88 +{ 1.89 + nsCOMPtr<nsIComponentManager> compMgr; 1.90 + nsresult status = NS_GetComponentManager(getter_AddRefs(compMgr)); 1.91 + if (compMgr) 1.92 + status = compMgr->CreateInstanceByContractID(aContractID, aDelegate, 1.93 + aIID, aResult); 1.94 + return status; 1.95 +} 1.96 + 1.97 +nsresult 1.98 +CallGetClassObject(const nsCID &aCID, const nsIID &aIID, void **aResult) 1.99 +{ 1.100 + nsCOMPtr<nsIComponentManager> compMgr; 1.101 + nsresult status = NS_GetComponentManager(getter_AddRefs(compMgr)); 1.102 + if (compMgr) 1.103 + status = compMgr->GetClassObject(aCID, aIID, aResult); 1.104 + return status; 1.105 +} 1.106 + 1.107 +nsresult 1.108 +CallGetClassObject(const char *aContractID, const nsIID &aIID, void **aResult) 1.109 +{ 1.110 + nsCOMPtr<nsIComponentManager> compMgr; 1.111 + nsresult status = NS_GetComponentManager(getter_AddRefs(compMgr)); 1.112 + if (compMgr) 1.113 + status = compMgr->GetClassObjectByContractID(aContractID, aIID, 1.114 + aResult); 1.115 + return status; 1.116 +} 1.117 + 1.118 +#else 1.119 + 1.120 +#include "nsComponentManager.h" 1.121 + 1.122 +nsresult 1.123 +CallCreateInstance(const nsCID &aCID, nsISupports *aDelegate, 1.124 + const nsIID &aIID, void **aResult) 1.125 +{ 1.126 + nsComponentManagerImpl *compMgr = nsComponentManagerImpl::gComponentManager; 1.127 + if (NS_WARN_IF(!compMgr)) 1.128 + return NS_ERROR_NOT_INITIALIZED; 1.129 + 1.130 + return compMgr-> 1.131 + nsComponentManagerImpl::CreateInstance(aCID, aDelegate, aIID, aResult); 1.132 +} 1.133 + 1.134 +nsresult 1.135 +CallCreateInstance(const char *aContractID, nsISupports *aDelegate, 1.136 + const nsIID &aIID, void **aResult) 1.137 +{ 1.138 + nsComponentManagerImpl *compMgr = nsComponentManagerImpl::gComponentManager; 1.139 + if (NS_WARN_IF(!compMgr)) 1.140 + return NS_ERROR_NOT_INITIALIZED; 1.141 + 1.142 + return compMgr-> 1.143 + nsComponentManagerImpl::CreateInstanceByContractID(aContractID, 1.144 + aDelegate, aIID, 1.145 + aResult); 1.146 +} 1.147 + 1.148 +nsresult 1.149 +CallGetClassObject(const nsCID &aCID, const nsIID &aIID, void **aResult) 1.150 +{ 1.151 + nsComponentManagerImpl *compMgr = nsComponentManagerImpl::gComponentManager; 1.152 + if (NS_WARN_IF(!compMgr)) 1.153 + return NS_ERROR_NOT_INITIALIZED; 1.154 + 1.155 + return compMgr-> 1.156 + nsComponentManagerImpl::GetClassObject(aCID, aIID, aResult); 1.157 +} 1.158 + 1.159 +nsresult 1.160 +CallGetClassObject(const char *aContractID, const nsIID &aIID, void **aResult) 1.161 +{ 1.162 + nsComponentManagerImpl *compMgr = nsComponentManagerImpl::gComponentManager; 1.163 + if (NS_WARN_IF(!compMgr)) 1.164 + return NS_ERROR_NOT_INITIALIZED; 1.165 + 1.166 + return compMgr-> 1.167 + nsComponentManagerImpl::GetClassObjectByContractID(aContractID, aIID, 1.168 + aResult); 1.169 +} 1.170 + 1.171 +#endif 1.172 + 1.173 +nsresult 1.174 +nsCreateInstanceByCID::operator()( const nsIID& aIID, void** aInstancePtr ) const 1.175 +{ 1.176 + nsresult status = CallCreateInstance(mCID, mOuter, aIID, aInstancePtr); 1.177 + if ( NS_FAILED(status) ) 1.178 + *aInstancePtr = 0; 1.179 + if ( mErrorPtr ) 1.180 + *mErrorPtr = status; 1.181 + return status; 1.182 +} 1.183 + 1.184 +nsresult 1.185 +nsCreateInstanceByContractID::operator()( const nsIID& aIID, void** aInstancePtr ) const 1.186 +{ 1.187 + nsresult status = CallCreateInstance(mContractID, mOuter, aIID, aInstancePtr); 1.188 + if (NS_FAILED(status)) 1.189 + *aInstancePtr = 0; 1.190 + if ( mErrorPtr ) 1.191 + *mErrorPtr = status; 1.192 + return status; 1.193 +} 1.194 + 1.195 +nsresult 1.196 +nsCreateInstanceFromFactory::operator()( const nsIID& aIID, void** aInstancePtr ) const 1.197 +{ 1.198 + nsresult status = mFactory->CreateInstance(mOuter, aIID, aInstancePtr); 1.199 + if ( NS_FAILED(status) ) 1.200 + *aInstancePtr = 0; 1.201 + if ( mErrorPtr ) 1.202 + *mErrorPtr = status; 1.203 + return status; 1.204 +} 1.205 + 1.206 + 1.207 +nsresult 1.208 +nsGetClassObjectByCID::operator()( const nsIID& aIID, void** aInstancePtr ) const 1.209 +{ 1.210 + nsresult status = CallGetClassObject(mCID, aIID, aInstancePtr); 1.211 + if ( NS_FAILED(status) ) 1.212 + *aInstancePtr = 0; 1.213 + if ( mErrorPtr ) 1.214 + *mErrorPtr = status; 1.215 + return status; 1.216 +} 1.217 + 1.218 +nsresult 1.219 +nsGetClassObjectByContractID::operator()( const nsIID& aIID, void** aInstancePtr ) const 1.220 +{ 1.221 + nsresult status = CallGetClassObject(mContractID, aIID, aInstancePtr); 1.222 + if ( NS_FAILED(status) ) 1.223 + *aInstancePtr = 0; 1.224 + if ( mErrorPtr ) 1.225 + *mErrorPtr = status; 1.226 + return status; 1.227 +} 1.228 + 1.229 + 1.230 +nsresult 1.231 +nsGetServiceByCID::operator()( const nsIID& aIID, void** aInstancePtr ) const 1.232 +{ 1.233 + nsresult status = CallGetService(mCID, aIID, aInstancePtr); 1.234 + if ( NS_FAILED(status) ) 1.235 + *aInstancePtr = 0; 1.236 + 1.237 + return status; 1.238 +} 1.239 + 1.240 +nsresult 1.241 +nsGetServiceByCIDWithError::operator()( const nsIID& aIID, void** aInstancePtr ) const 1.242 +{ 1.243 + nsresult status = CallGetService(mCID, aIID, aInstancePtr); 1.244 + if ( NS_FAILED(status) ) 1.245 + *aInstancePtr = 0; 1.246 + 1.247 + if ( mErrorPtr ) 1.248 + *mErrorPtr = status; 1.249 + return status; 1.250 +} 1.251 + 1.252 +nsresult 1.253 +nsGetServiceByContractID::operator()( const nsIID& aIID, void** aInstancePtr ) const 1.254 +{ 1.255 + nsresult status = CallGetService(mContractID, aIID, aInstancePtr); 1.256 + if ( NS_FAILED(status) ) 1.257 + *aInstancePtr = 0; 1.258 + 1.259 + return status; 1.260 +} 1.261 + 1.262 +nsresult 1.263 +nsGetServiceByContractIDWithError::operator()( const nsIID& aIID, void** aInstancePtr ) const 1.264 +{ 1.265 + nsresult status = CallGetService(mContractID, aIID, aInstancePtr); 1.266 + if ( NS_FAILED(status) ) 1.267 + *aInstancePtr = 0; 1.268 + 1.269 + if ( mErrorPtr ) 1.270 + *mErrorPtr = status; 1.271 + return status; 1.272 +}