- From: <Timo.Ross@ic3s.de>
- Date: Thu, 31 May 2001 09:48:01 +0200
- To: "Thorsten Rinkenberger" <rinkenberger@falkag.de>
- Cc: www-lib@w3.org
Hi!
I think you have to do all request before you jump in the deep,dark hole of
the "eventloop". If you go into the "eventloop" you loose control of the
programm. But its important to know that the "terminate_handler" is called
immediatly after every request is done, so you can't terminate the library.
Hope this will help you!
Also, greetings from Germany ....
Timo!
"Thorsten
Rinkenberger" To: <www-lib@w3.org>
<rinkenberger@ cc: (bcc: Timo Ross/IC3S)
falkag.de> Subject: multiple URL call using HTLoadToFile()
Sent by:
www-lib-reques
t@w3.org
30.05.2001
14:53
Hi,
I have a little question concerning the w3c-libwww library and I'll be very
grateful if
one of you out there would be so kind and find some time to help me. Until
now
I'm not very known in web programming. But currently I'm writing a small C
program
in which I try to call several URL's. To call the URL's I use
HTLoadToFile(url, request,file) and HTEventList_loop(request).
At last the terminate handler I defined with HTNet_addAfter(...) is
called.
All this works fine when I call only one URL. But I like to call several
URL's in a while() loop. In my current
program version the terminate handler will be executed already after the
first URL
was called. How can I place all my requests in the event loop before the
terminate handler is called? Below you can find the related parts
of my source code.
int TerminateHandler(HTRequest* request, HTResponse* response, void* param,
int status)
{
HTRequest_delete(request);
HTProfile_delete();
HTLibTerminate();
exit(status?status:0);
}
int InitW3CLib()
{
HTLibInit(APP_NAME,APP_VERSION);
if (HTLib_isInitialized() == YES)
return 0;
else
return -1;
}
int CallURL(char* strURL)
{
HTRequest* request = NULL;
BOOL state = NO;
HTProfile_newNoCacheClient(APP_NAME, APP_VERSION);
HTNet_addAfter(TerminateHandler,NULL,NULL,HT_ALL,HT_FILTER_LAST);
while (...condition...)
{
HTHost_setEventTimeout(10000);
request = HTRequest_new();
if (request == NULL)
return -1;
state = HTLoadToFile(strURL, request, file);
if (state != YES)
return -1;
HTEventList_loop(request);
// AFTER THIS (i.e. AFTER THE FIRST CALL) THE TERMINATE HANDLER IS
CALLED IMEDIATELY
}
return 0;
}
int main(int argc, char *argv[])
{
...
if (InitW3CLib() != 0)
exit -1;
CallURL(strURL);
exit (0);
}
I hope one of you will find some time to give
me a useful hint. Many many thanks in advance.
Greetings from Germany ...
Best regards
Thorsten
Received on Thursday, 31 May 2001 03:48:32 UTC