HTText callback functions for multiple HTRequests

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

HTText callback functions for multiple HTRequests

New Developer
Hi

I'm just starting to use libwww and had a question regarding multiple requests. I am using libwww to parse data from websites and fill up my internal data structures. I checked the sample codes that are up and specifically I am using the techniques used in showtag.c and showtext.c.

What I a doing right now is registering the callback functions beginElement(), endElement() and addText() with:
HText_registerElementCallback(beginElement, endElement);
HText_registerTextCallback(addText)

This achieves what I am trying to do. However, these callback functions are not tied to a particular HTequest. What if I want to issue two separate HTRequests (to different URLs, of course) and want two different sets of callback functions to be called once the data start coming back?

Is there any way to tie the HTText_register*() functions with specific requests? Or do I have to use the HTStream class to achieve what I am trying to do? In case I have to use HTStream class, I'd really appreciate if someone can give some high level pointers on how to get started.

Thanks in advance!


Reply | Threaded
Open this post in threaded view
|

Re: HTText callback functions for multiple HTRequests

Vic Bancroft-2

New Developer wrote:
> I'm just starting to use libwww and had a question regarding multiple
> requests. I am using libwww to parse data from websites and fill up my
> internal data structures. I checked the sample codes that are up and
> specifically I am using the techniques used in showtag.c and showtext.c.
>  
Welcome, that is a good place to start . . .

> What I a doing right now is registering the callback functions
> beginElement(), endElement() and addText() with:
> HText_registerElementCallback(beginElement, endElement);
> HText_registerTextCallback(addText)
>
> This achieves what I am trying to do. However, these callback functions are
> not tied to a particular HTequest. What if I want to issue two separate
> HTRequests (to different URLs, of course) and want two different sets of
> callback functions to be called once the data start coming back?
>  
As has been discussed in the archives, the libwww is not designed to be
multithreaded.  Rather the design is to achieve high throughput with a
flexible architecture . . .
> Is there any way to tie the HTText_register*() functions with specific
> requests? Or do I have to use the HTStream class to achieve what I am trying
> to do? In case I have to use HTStream class, I'd really appreciate if
> someone can give some high level pointers on how to get started.
>  
Sure, you might consider constructing a thread safe queue, perhaps using
a struct which includes the head and tail pointer of an HTList.  Each
queue entry could be a container of your request specific call back
function pointers . . .

more,
l8r,
v

--
"The future is here. It's just not evenly distributed yet."
 -- William Gibson, quoted by Whitfield Diffie