What Brendan said.

The nsXMLHttpRequest is a good example to follow. You may even find 
other useful examples in the SOAP demos floating around (or ask 
{rayw,aruner}@netscape.com)

-Gagan

Brendan Eich wrote:

> Leonid Romanov wrote:
>
>> Hi!
>> I need to implement additional "standard" JavaScript class for making 
>> http
>> requests. SpiderMonkey will run as part of embedded browser and I prefer
>> to implement it inside libmozjs.so, without messing with XPConnect. For
>> class's users request will look as synchronous, however user can specify
>> timeout for it, so implementation should be asynchronous.
>>
>> My plan is following: implement full blown StreamListener, then, 
>> inside my
>> JavaScript class method implementation:
>>
>>  eventQService->PushThreadEventQueue(getter_AddRefs(mEventQueue));  ...
>>  mChannel->AsyncOpen(mMyListener, nsnull);  ...
>>  while (mRunEventLoop) {
>>    mEventQueue->ProcessPendingEvents();
>>    // timeout stuff using PR_IntervalNow()
>>  }
>>  ...
>>  eventQService->PopThreadEventQueue(mEventQueue);
>>
>> The big question is: will such aproach work at all? If so, are there 
>> any pitfalls which I should be aware of? For example, should I 
>> process all pending events from current event queue before pushing my 
>> own? Any useful sources from Mozilla's tree to look (so far I'm only 
>> found nsXMLHttpRequest.cpp)? Docs?
>>
>> P.S. I'm not too skilful with threads :(
>>
> I don't think you should be avoiding XPConnect, or hacking "inside 
> libmozjs.so".  Especially if you're new to threads.
>
> Why not use XPCOM properly, and from the right library in the embedded 
> browser?
>
> Anyway, I'm setting followup-to: m.netlib for advice from the Necko 
> gurus.
>
> /be
>
>>
>>
>> Thanks in advance. Leonid.
>>
>
>


Reply via email to