jigdo API
glibcurl/glibcurl.c File Reference
#include <glib.h>
#include <glibcurl.h>
#include <stdio.h>
#include <string.h>
#include <assert.h>
Classes | |
struct | CurlGSource_ |
A structure which "derives" (in glib speak) from GSource. More... | |
Defines | |
#define | D(_args) |
#define | GLIBCURL_FDMAX 127 |
#define | GLIBCURL_TIMEOUT 1000 |
#define | GLIBCURL_READ (G_IO_IN | G_IO_PRI | G_IO_ERR | G_IO_HUP) |
#define | GLIBCURL_WRITE (G_IO_OUT | G_IO_ERR | G_IO_HUP) |
#define | GLIBCURL_EXC (G_IO_ERR | G_IO_HUP) |
Typedefs | |
typedef struct CurlGSource_ | CurlGSource |
A structure which "derives" (in glib speak) from GSource. | |
Functions | |
static gboolean | prepare (GSource *source, gint *timeout) |
static gboolean | check (GSource *source) |
static gboolean | dispatch (GSource *source, GSourceFunc callback, gpointer user_data) |
static void | finalize (GSource *source) |
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. | |
static void | registerUnregisterFds () |
Variables | |
static CurlGSource * | curlSrc = 0 |
static GSourceFuncs | curlFuncs |
Define Documentation
#define D | ( | _args | ) |
Referenced by glibcurl_init(), prepare(), and registerUnregisterFds().
#define GLIBCURL_EXC (G_IO_ERR | G_IO_HUP) |
Referenced by glibcurl_init(), and registerUnregisterFds().
#define GLIBCURL_FDMAX 127 |
Referenced by glibcurl_init(), and registerUnregisterFds().
#define GLIBCURL_READ (G_IO_IN | G_IO_PRI | G_IO_ERR | G_IO_HUP) |
Referenced by glibcurl_init(), and registerUnregisterFds().
#define GLIBCURL_TIMEOUT 1000 |
Referenced by prepare().
#define GLIBCURL_WRITE (G_IO_OUT | G_IO_ERR | G_IO_HUP) |
Referenced by glibcurl_init(), and registerUnregisterFds().
Typedef Documentation
typedef struct CurlGSource_ CurlGSource |
A structure which "derives" (in glib speak) from GSource.
Function Documentation
gboolean check | ( | GSource * | source | ) | [static] |
gboolean dispatch | ( | GSource * | source, | |
GSourceFunc | callback, | |||
gpointer | user_data | |||
) | [static] |
void finalize | ( | GSource * | source | ) | [static] |
References registerUnregisterFds(), and CurlGSource_::source.
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 | ( | ) |
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.
gboolean prepare | ( | GSource * | source, | |
gint * | timeout | |||
) | [static] |
static void registerUnregisterFds | ( | ) | [static] |
References D, CurlGSource_::fdExc, CurlGSource_::fdMax, CurlGSource_::fdRead, CurlGSource_::fdWrite, GLIBCURL_EXC, GLIBCURL_FDMAX, GLIBCURL_READ, GLIBCURL_WRITE, CurlGSource_::lastPollFd, CurlGSource_::lastPollFdMax, CurlGSource_::multiHandle, and CurlGSource_::source.
Referenced by dispatch(), finalize(), and prepare().
Variable Documentation
CurlGSource* curlSrc = 0 [static] |
Generated on Tue Sep 23 14:27:42 2008 for jigdo by
