Dne nedelja, 05. avgust 2012 20:05:58 UTC+2 je oseba Josh Matthews napisala:
> On 07/24/2012 06:54 AM, justSomeGuy wrote:
>
> > Hi,
>
> >
>
> > I'm trying to get responses but I can't seem to figure out how to use
> > nsiTraceableChannel. What I already did is that i registered an observer
> > for http-on-modify-request and http-on-examine-response, which is working
> > just fine. Now what I'm trying to do is use nsiTraceableChannel to replace
> > a stream listener with my own which i implemented. This code is not working:
>
> >
>
> > ...
>
> > nsresult rv;
>
> >
>
> > ...
>
> > if(strcmp(aTopic, "http-on-examine-response"))
>
> > {
>
> > nsCOMPtr<nsITraceableChannel> traceableChannel =
> > do_QueryInterface(aSubject, &rv);
>
> > MyListener *myListener = new MyListener;
>
> > //nsCOMPtry<MyListener> myListener = new MyListener; //i tried this way
> > too
>
> > rv = traceableChannel->SetNewListener(myListener,
> > getter_AddRefs(myListener->mListener)); //I put the
> > nsCOMPtr<nsIStreamListener> mListener; into the implementation of
> > nsIStreamListener
>
> > ...
>
> > }
>
> >
>
> > It seems not to work. Am I doing something wrong (maybe i should create my
> > object in a diferent way)? Because my implementation of onStartRequest,
> > onDataAvailable and onStopRequest are never called.
>
> >
>
> > In rv (nsresult) i get 0 (NS_OK). But it seems that the listener was never
> > replaced. I would realy apreciate your help.
>
> >
>
> > Thank you in advanced for your help!
>
> >
>
>
>
> Looking over this code again, |if(strcmp(aTopic,
>
> "http-on-examine-response"))| is incorrect. If that's present in the
>
> original code, you should fix it.
Thank you for your rapid response. If I may ask what is wrong with it. Because
it does come into this part. It also creates MyListener ant the return
I also have the same line for the http-on-modify-request |if(strcmp(aTopic,
"http-on-modify-request"))| and it seems to work just fine there.
in fact in the observer i have:
if(strcmp(aTopic, "http-on-modify-request"))
{
//here everything works just fine. Can do everything i want.
}
else if(strcmp(aTopic, "http-on-examine-response"))
{
//it comes in here. it says it everything is ok
nsCOMPtr<nsITraceableChannel> traceableChannel = do_QueryInterface(aSubject,
&rv);
MyListener *myListener = new MyListener;
//nsCOMPtry<MyListener> myListener = new MyListener; //i tried this way too
rv = traceableChannel->SetNewListener(myListener,
getter_AddRefs(myListener->mListener)); //I put the nsCOMPtr<nsIStreamListener>
mListener; into the implementation of nsIStreamListener
...
//but the listener doesn't seem to be changed.
}
If something is wrong with strcmp(aTopic, "http-on-modify-request") or
strcmp(aTopic, "http-on-examine-response") i would really appreciate if you
could point me to the right direction.
Really appreciate your help.
Regards
_______________________________________________
dev-platform mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-platform