#ifndef L2SU_DOWNLOADPOOL_H_INCLUDED #define L2SU_DOWNLOADPOOL_H_INCLUDED #include typedef struct l2_dlpool__pool_tag l2_dlpool_t; /* returns <0 for "error" (this handle is not used) * returns 0 for "ok I have made my changes" */ typedef int (l2_dlpool_download_init_proc_t)(CURL * /*easy*/, void * /*user*/); /* returns <0 for "give up on downloading everything (error)" * returns anything else for "download succeeded (proceed)" */ typedef int (l2_dlpool_one_downloaded_proc_t)(CURL * /*easy*/, CURLcode /*code*/, void * /*user*/); l2_dlpool_t *l2_dlpool_init(l2_dlpool_download_init_proc_t *init, l2_dlpool_one_downloaded_proc_t *dlproc); l2_dlpool_t *l2_dlpool_init2(l2_dlpool_download_init_proc_t *init, l2_dlpool_one_downloaded_proc_t *dlproc, size_t handles); /* returns >0 for a successful addition, 0 for aborted (init proc returned <0), <0 for error */ int l2_dlpool_add(l2_dlpool_t *pool, void *user); int l2_dlpool_perform(l2_dlpool_t *pool); void l2_dlpool_cleanup(l2_dlpool_t *pool); #endif /* include guard */