nsIRDFRemoteDataSource::GetIID(),
NS_GET_IID(nsIRDFRemoteDataSource),
nsXPINotifierImpl::OpenRemoteDataSource(const char* aURL, PRBool blocking, nsIRDFDataSource** aResult){    static NS_DEFINE_CID(kRDFXMLDataSourceCID, NS_RDFXMLDATASOURCE_CID);    nsresult rv;    nsCOMPtr<nsIRDFRemoteDataSource> remote;    rv = nsComponentManager::CreateInstance(kRDFXMLDataSourceCID,                                            nsnull,                                            nsIRDFRemoteDataSource::GetIID(),                                            getter_AddRefs(remote));    if (NS_FAILED(rv)) return rv;    rv = remote->Init(aURL);    if (NS_SUCCEEDED(rv))     {        if (! blocking)        {            nsCOMPtr<nsIRDFXMLSink> sink = do_QueryInterface(remote, &rv);            if (NS_FAILED(rv)) return rv;            rv = sink->AddXMLSinkObserver(this);            if (NS_FAILED(rv)) return rv;        }        rv = remote->Refresh(blocking);        if (NS_FAILED(rv)) return rv;        nsCOMPtr<nsIRDFDataSource> result = do_QueryInterface(remote, &rv);        *aResult = result;        NS_IF_ADDREF(*aResult);        return rv;    }    else     {        // we've already loaded this datasource. use cached copy        return mRDF->GetDataSource(aURL, aResult);    }}