On 3/21/06, doug b <[EMAIL PROTECTED]> wrote:
> Jon Smirl wrote:
>
> > http://xulplanet.com/references/xpcomref/ifaces/nsIAsyncOutputStream.html
> > http://www.xulplanet.com/references/xpcomref/ifaces/nsIOutputStreamCallback.html
> >
> > When you get NS_BASE_STREAM_WOULD_BLOCK call AsyncWait and then
> > continue writing from the OnOutputStreamReady notification.
> >
>
> Thanks, but how is AsyncOutputStream implemented? Right now, I take an
> nsITransport object and call openOutputStream - how do I get an
> AsyncOutputStream instead?

Query instance, this is the input version....

nsresult
ProxyServer::OnSocketAccepted(nsIServerSocket *aServ,
nsISocketTransport *aTransport) {
        nsresult rv;
        nsCOMPtr<nsIInputStream> instream;
        nsCOMPtr<nsIAsyncInputStream> astream;
        nsCOMPtr<nsIOutputStream> outstream;
        
        rv = aTransport->OpenInputStream(nsITransport::OPEN_UNBUFFERED, 0, 0,
getter_AddRefs(instream));
        rv = aTransport->OpenOutputStream(nsITransport::OPEN_UNBUFFERED, 0,
0, getter_AddRefs(outstream));

        astream = do_QueryInterface(instream);
        rv = astream->AsyncWait(new BrowserConnection(instream, outstream),
0, 0, NULL);
        
        return rv;
}




> _______________________________________________
> dev-tech-xpcom mailing list
> [email protected]
> https://lists.mozilla.org/listinfo/dev-tech-xpcom
>


--
Jon Smirl
[EMAIL PROTECTED]
_______________________________________________
dev-tech-xpcom mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-xpcom

Reply via email to