fixes bug 219400 "remove callers of nsServiceManager:: methods" r=bsmedberg

git-svn-id: svn://10.0.0.236/trunk@165089 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
darin%meer.net
2004-11-07 23:59:35 +00:00
parent 00224b05c0
commit 3d52b0860b
80 changed files with 387 additions and 784 deletions

View File

@@ -36,8 +36,8 @@
*
* ***** END LICENSE BLOCK ***** */
#ifndef __nsProxiedServiceManager_h_
#define __nsProxiedServiceManager_h_
#ifndef nsProxiedService_h_
#define nsProxiedService_h_
#include "nsIServiceManager.h"
#include "nsIProxyObjectManager.h"
@@ -94,71 +94,45 @@
class nsProxiedService
{
public:
public:
nsProxiedService(const nsCID &aClass, const nsIID &aIID,
nsIEventQueue* pIProxyQueue, PRBool always, nsresult*rv)
nsIEventQueue* aEventQ, PRBool always, nsresult* rv)
{
*rv = nsServiceManager::GetService(aClass,
aIID,
getter_AddRefs(mService));
if (NS_FAILED(*rv)) return;
InitProxy(aIID, pIProxyQueue, always, rv);
nsCOMPtr<nsISupports> svc = do_GetService(aClass, rv);
if (NS_SUCCEEDED(*rv))
InitProxy(svc, aIID, aEventQ, always, rv);
}
nsProxiedService(const char* aContractID, const nsIID &aIID,
nsIEventQueue* pIProxyQueue, PRBool always, nsresult*rv)
nsIEventQueue* aEventQ, PRBool always, nsresult* rv)
{
*rv = nsServiceManager::GetService(aContractID,
aIID,
getter_AddRefs(mService));
if (NS_FAILED(*rv)) return;
InitProxy(aIID, pIProxyQueue, always, rv);
}
void InitProxy(const nsIID &aIID, nsIEventQueue* pIProxyQueue,
PRBool always, nsresult*rv)
{
static NS_DEFINE_CID(kProxyObjectManagerCID, NS_PROXYEVENT_MANAGER_CID);
nsCOMPtr<nsIProxyObjectManager> pIProxyObjectManager =
do_GetService(kProxyObjectManagerCID, rv);
if (NS_FAILED(*rv)) return;
PRInt32 proxyType = PROXY_SYNC;
if (always) proxyType |= PROXY_ALWAYS;
*rv = pIProxyObjectManager->GetProxyForObject(pIProxyQueue,
aIID,
mService,
proxyType,
getter_AddRefs(mProxiedService));
nsCOMPtr<nsISupports> svc = do_GetService(aContractID, rv);
if (NS_SUCCEEDED(*rv))
InitProxy(svc, aIID, aEventQ, always, rv);
}
~nsProxiedService()
operator nsISupports*() const
{
return mProxiedService;
}
nsISupports* operator->() const
{
NS_PRECONDITION(mProxiedService != 0, "Your code should test the error result from the constructor.");
return mProxiedService;
}
private:
PRBool operator==(const nsISupports* other)
{
return ((mProxiedService == other) || (mService == other));
}
void InitProxy(nsISupports *aObj, const nsIID &aIID,
nsIEventQueue* aEventQ, PRBool always, nsresult*rv)
{
PRInt32 proxyType = PROXY_SYNC;
if (always)
proxyType |= PROXY_ALWAYS;
operator nsISupports*() const
{
return mProxiedService;
}
*rv = NS_GetProxyForObject(aEventQ,
aIID,
aObj,
proxyType,
getter_AddRefs(mProxiedService));
}
protected:
nsCOMPtr<nsISupports> mProxiedService;
nsCOMPtr<nsISupports> mService;
};
nsCOMPtr<nsISupports> mProxiedService;
};
#endif //__nsProxiedServiceManager_h_
#endif // nsProxiedService_h_

View File

@@ -131,25 +131,21 @@ NS_IMPL_THREADSAFE_ISUPPORTS1(nsTestXPCFoo2, nsITestProxy)
NS_IMETHODIMP nsTestXPCFoo2::Test(PRInt32 p1, PRInt32 p2, PRInt32* retval)
{
printf("calling back to caller!\n\n");
printf("calling back to caller!\n\n");
nsIProxyObjectManager* manager;
nsITestProxy * proxyObject;
nsServiceManager::GetService( NS_XPCOMPROXY_CONTRACTID,
NS_GET_IID(nsIProxyObjectManager),
(nsISupports **)&manager);
nsCOMPtr<nsIProxyObjectManager> manager =
do_GetService(NS_XPCOMPROXY_CONTRACTID);
printf("ProxyObjectManager: %p \n", manager);
printf("ProxyObjectManager: %p \n", (void *) manager.get());
PR_ASSERT(manager);
manager->GetProxyForObject((nsIEventQueue*)p1, NS_GET_IID(nsITestProxy), this, PROXY_SYNC, (void**)&proxyObject);
nsCOMPtr<nsITestProxy> proxyObject;
manager->GetProxyForObject((nsIEventQueue*)p1, NS_GET_IID(nsITestProxy),
this, PROXY_SYNC, (void**)&proxyObject);
proxyObject->Test3(nsnull, nsnull);
printf("Deleting Proxy Object\n");
NS_RELEASE(proxyObject);
return NS_OK;
}
@@ -184,13 +180,10 @@ void TestCase_TwoClassesOneInterface(void *arg)
ArgsStruct *argsStruct = (ArgsStruct*) arg;
nsIProxyObjectManager* manager;
nsServiceManager::GetService( NS_XPCOMPROXY_CONTRACTID,
NS_GET_IID(nsIProxyObjectManager),
(nsISupports **)&manager);
nsCOMPtr<nsIProxyObjectManager> manager =
do_GetService(NS_XPCOMPROXY_CONTRACTID);
printf("ProxyObjectManager: %p \n", manager);
printf("ProxyObjectManager: %p \n", (void *) manager.get());
PR_ASSERT(manager);
@@ -254,14 +247,10 @@ void TestCase_NestedLoop(void *arg)
{
ArgsStruct *argsStruct = (ArgsStruct*) arg;
nsCOMPtr<nsIProxyObjectManager> manager =
do_GetService(NS_XPCOMPROXY_CONTRACTID);
nsIProxyObjectManager* manager;
nsServiceManager::GetService( NS_XPCOMPROXY_CONTRACTID,
NS_GET_IID(nsIProxyObjectManager),
(nsISupports **)&manager);
printf("ProxyObjectManager: %p \n", manager);
printf("ProxyObjectManager: %p\n", (void *) manager.get());
PR_ASSERT(manager);
@@ -319,11 +308,8 @@ void TestCase_2(void *arg)
ArgsStruct *argsStruct = (ArgsStruct*) arg;
nsIProxyObjectManager* manager;
nsServiceManager::GetService( NS_XPCOMPROXY_CONTRACTID,
NS_GET_IID(nsIProxyObjectManager),
(nsISupports **)&manager);
nsCOMPtr<nsIProxyObjectManager> manager =
do_GetService(NS_XPCOMPROXY_CONTRACTID);
PR_ASSERT(manager);
@@ -349,11 +335,8 @@ void TestCase_nsISupports(void *arg)
ArgsStruct *argsStruct = (ArgsStruct*) arg;
nsIProxyObjectManager* manager;
nsServiceManager::GetService( NS_XPCOMPROXY_CONTRACTID,
NS_GET_IID(nsIProxyObjectManager),
(nsISupports **)&manager);
nsCOMPtr<nsIProxyObjectManager> manager =
do_GetService(NS_XPCOMPROXY_CONTRACTID);
PR_ASSERT(manager);
@@ -427,11 +410,8 @@ static void PR_CALLBACK EventLoop( void *arg )
printf("Verifing calling Proxy on eventQ thread.\n");
nsIProxyObjectManager* manager;
nsServiceManager::GetService( NS_XPCOMPROXY_CONTRACTID,
NS_GET_IID(nsIProxyObjectManager),
(nsISupports **)&manager);
nsCOMPtr<nsIProxyObjectManager> manager =
do_GetService(NS_XPCOMPROXY_CONTRACTID);
PR_ASSERT(manager);