diff --git a/src/client/distren.h b/src/client/distren.h --- a/src/client/distren.h +++ b/src/client/distren.h @@ -20,6 +20,48 @@ #ifndef DISTREN_H #define DISTREN_H 1 +#include /* size_t */ +typedef struct distren *distren_t; + +typedef void* (*distren_malloc_t)(size_t); +typedef void (*distren_free_t)(void*); + +typedef struct distren_job *distren_job_t; + +/** + Initialize a libdistren handle. In the spirit of respecting client programs' choices, + this initialization function allows malloc() and free() compatible function pointers + to be passed. +*/ +int distren_init_mf(distren_t *handle, distren_malloc_t mymalloc, distren_free_t myfree); + +/** + Initializes a libdistren handle using the system malloc() and free() implementation. +*/ +int distren_init(distren_t *handle); + +/** + Submits a file to distren. + @param job must not refer to a valid job. + TODO: create a stream-based interface +*/ +int distren_submit_file(distren_job_t *job, const char *filename); + +/* + TODO: extraction of a job-ID, retrieving job handle by job-ID, getting information + for a job handle, retrieving results of a job, callbacks for progress (i.e., job_is_finished callback) + -- threads? +*/ + +/** + Destroys and frees a job handle +*/ +int distren_job_free(distren_job_t job); + +/** + Destroys and frees a libdistren handle +*/ +int distren_free(distren_t handle); #endif