Added group argument. Swapped args to NS_OpenURI

git-svn-id: svn://10.0.0.236/trunk@36780 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
warren%netscape.com 1999-06-25 00:07:34 +00:00
parent 5fc7f47ca8
commit 4c7ea3f2f7
2 changed files with 26 additions and 6 deletions

View File

@ -23,6 +23,7 @@
#include "netCore.h"
#include "nsIInputStream.h"
#include "nsIStreamListener.h"
#include "nsILoadGroup.h"
#include "nsIEventSinkGetter.h"
#include "nsString.h"
@ -37,10 +38,12 @@ extern nsresult
NS_NewURI(nsIURI* *result, const nsString& spec, nsIURI* baseURI = nsnull);
extern nsresult
NS_OpenURI(nsIURI* uri, nsIInputStream* *result);
NS_OpenURI(nsIInputStream* *result, nsIURI* uri,
nsILoadGroup* group = nsnull);
extern nsresult
NS_OpenURI(nsIURI* uri, nsIStreamListener* aConsumer);
NS_OpenURI(nsIStreamListener* aConsumer, nsIURI* uri,
nsILoadGroup* group = nsnull);
extern nsresult
NS_MakeAbsoluteURI(const char* spec, nsIURI* baseURI, char* *result);

View File

@ -44,7 +44,8 @@ NS_NewURI(nsIURI* *result, const nsString& spec, nsIURI* baseURI)
}
nsresult
NS_OpenURI(nsIURI* uri, nsIInputStream* *result)
NS_OpenURI(nsIInputStream* *result, nsIURI* uri,
nsILoadGroup* group)
{
nsresult rv;
NS_WITH_SERVICE(nsIIOService, serv, kIOServiceCID, &rv);
@ -56,15 +57,24 @@ NS_OpenURI(nsIURI* uri, nsIInputStream* *result)
nsIInputStream* inStr;
rv = channel->OpenInputStream(0, -1, &inStr);
NS_RELEASE(channel);
if (NS_FAILED(rv)) return rv;
if (NS_FAILED(rv)) goto done;
if (group) {
rv = group->AddChannel(channel);
if (NS_FAILED(rv)) {
NS_RELEASE(inStr);
goto done;
}
}
*result = inStr;
done:
NS_RELEASE(channel);
return rv;
}
nsresult
NS_OpenURI(nsIURI* uri, nsIStreamListener* aConsumer)
NS_OpenURI(nsIStreamListener* aConsumer, nsIURI* uri,
nsILoadGroup* group)
{
nsresult rv;
NS_WITH_SERVICE(nsIIOService, serv, kIOServiceCID, &rv);
@ -77,6 +87,13 @@ NS_OpenURI(nsIURI* uri, nsIStreamListener* aConsumer)
rv = channel->AsyncRead(0, -1, uri, // uri used as context
nsnull, // XXX need event queue of current thread
aConsumer);
if (NS_FAILED(rv)) goto done;
if (group) {
rv = group->AddChannel(channel);
if (NS_FAILED(rv)) goto done;
}
done:
NS_RELEASE(channel);
return rv;
}