jigdo API

glibcurl/glibcurl.h File Reference

Use the libcurl multi interface from GTK+/glib programs without having to resort to multithreading. More...

#include <curl/curl.h>

Go to the source code of this file.


Typedefs

typedef void(* GlibcurlCallback )(void *)
 Callback function for glibcurl_set_callback.

Functions

void glibcurl_init ()
 Initialize libcurl.
CURLM * glibcurl_handle ()
 Return global multi handle.
CURLMcode glibcurl_add (CURL *easy_handle)
 Convenience function, just executes curl_multi_add_handle(glibcurl_handle(), easy_handle); glibcurl_start().
CURLMcode glibcurl_remove (CURL *easy_handle)
 Convenience function, just executes curl_multi_remove_handle(glibcurl_handle(), easy_handle).
void glibcurl_start ()
 Call this whenever you have added a request using curl_multi_add_handle().
void glibcurl_set_callback (GlibcurlCallback function, void *data)
 Set function to call after each invocation of curl_multi_perform().
void glibcurl_cleanup ()
 You must call glibcurl_remove() and curl_easy_cleanup() for all requests before calling this.

Detailed Description

Use the libcurl multi interface from GTK+/glib programs without having to resort to multithreading.


Typedef Documentation

typedef void(* GlibcurlCallback)(void *)

Callback function for glibcurl_set_callback.


Function Documentation

CURLMcode glibcurl_add ( CURL easy_handle  ) 

Convenience function, just executes curl_multi_add_handle(glibcurl_handle(), easy_handle); glibcurl_start().

References CurlGSource_::callPerform, and CurlGSource_::multiHandle.

Referenced by Download::cont(), main(), and Download::run().

void glibcurl_cleanup (  ) 

You must call glibcurl_remove() and curl_easy_cleanup() for all requests before calling this.

This function makes calls to curl_multi_cleanup() and curl_global_cleanup().

References CurlGSource_::multiHandle, and CurlGSource_::source.

Referenced by Download::cleanup(), and main().

CURLM* glibcurl_handle (  ) 

Return global multi handle.

References CurlGSource_::multiHandle.

Referenced by curlCallback().

void glibcurl_init (  ) 

Initialize libcurl.

Call this once at the beginning of your program. This function makes calls to curl_global_init() and curl_multi_init()

References CurlGSource_::callPerform, D, GLIBCURL_EXC, GLIBCURL_FDMAX, GLIBCURL_READ, GLIBCURL_WRITE, CurlGSource_::lastPollFd, CurlGSource_::lastPollFdMax, CurlGSource_::multiHandle, NULL, and CurlGSource_::source.

Referenced by Download::init(), and main().

CURLMcode glibcurl_remove ( CURL easy_handle  ) 

Convenience function, just executes curl_multi_remove_handle(glibcurl_handle(), easy_handle).

References CurlGSource_::multiHandle.

Referenced by main(), Download::pause(), Download::stop(), and Download::~Download().

void glibcurl_set_callback ( GlibcurlCallback  function,
void *  data 
)

Set function to call after each invocation of curl_multi_perform().

Pass function==0 to unregister a previously set callback. The callback function will be called with the supplied data pointer as its first argument.

References NULL, and CurlGSource_::source.

Referenced by Download::init(), and main().

void glibcurl_start (  ) 

Call this whenever you have added a request using curl_multi_add_handle().

This is necessary to start new requests. It does so by triggering a call to curl_multi_perform() even in the case where no open fds cause that function to be called anyway. The call happens "later", i.e. during the next iteration of the glib main loop. glibcurl_start() only sets a flag to make it happen.

References CurlGSource_::callPerform.


Generated on Tue Sep 23 14:27:42 2008 for jigdo by  doxygen 1.5.6