E2kResult (private)

E2kResult (private) — private E2kResult methods

Synopsis




GArray*     e2k_results_array_new           (void);
void        e2k_results_array_add_from_multistatus
                                            (GArray *results_array,
                                             SoupMessage *msg);
void        e2k_results_array_free          (GArray *results_array,
                                             gboolean free_results);
void        e2k_results_from_multistatus    (SoupMessage *msg,
                                             E2kResult **results,
                                             int *nresults);
E2kResult*  e2k_results_copy                (E2kResult *results,
                                             int nresults);

E2kHTTPStatus (*E2kResultIterFetchFunc)     (E2kResultIter *iter,
                                             E2kContext *ctx,
                                             E2kOperation *op,
                                             E2kResult **results,
                                             int *nresults,
                                             int *first,
                                             int *total,
                                             gpointer user_data);
void        (*E2kResultIterFreeFunc)        (E2kResultIter *iter,
                                             gpointer user_data);
E2kResultIter* e2k_result_iter_new          (E2kContext *ctx,
                                             E2kOperation *op,
                                             gboolean ascending,
                                             int total,
                                             E2kResultIterFetchFunc fetch_func,
                                             E2kResultIterFreeFunc free_func,
                                             gpointer user_data);

Description

These are the E2kOperation methods used internally by E2kContext.

Details

e2k_results_array_new ()

GArray*     e2k_results_array_new           (void);

Creates a new results array

Returns : the array

e2k_results_array_add_from_multistatus ()

void        e2k_results_array_add_from_multistatus
                                            (GArray *results_array,
                                             SoupMessage *msg);

Constructs an E2kResult for each response in msg and appends them to results_array.

results_array : a results array, created by e2k_results_array_new()
msg : a 207 Multi-Status response

e2k_results_array_free ()

void        e2k_results_array_free          (GArray *results_array,
                                             gboolean free_results);

Frees results_array, and optionally its contents

results_array : the array
free_results : whether or not to also free the contents of the array

e2k_results_from_multistatus ()

void        e2k_results_from_multistatus    (SoupMessage *msg,
                                             E2kResult **results,
                                             int *nresults);

Parses msg and puts the results in *results and *nresults. The caller should free the data with e2k_results_free()

msg : a 207 Multi-Status response
results : pointer to a variable to store an array of E2kResult in
nresults : pointer to a variable to store the length of *results in

e2k_results_copy ()

E2kResult*  e2k_results_copy                (E2kResult *results,
                                             int nresults);

Performs a deep copy of results

results : a results array returned from e2k_results_from_multistatus()
nresults : the length of results
Returns : a copy of results.

E2kResultIterFetchFunc ()

E2kHTTPStatus (*E2kResultIterFetchFunc)     (E2kResultIter *iter,
                                             E2kContext *ctx,
                                             E2kOperation *op,
                                             E2kResult **results,
                                             int *nresults,
                                             int *first,
                                             int *total,
                                             gpointer user_data);

This is used by E2kResultIter to fetch more results

iter : the E2kResultIter
ctx : iter's E2kContext
op : iter's E2kOperation
results : on return, should contain the new results
nresults : on return, should contain the number of results on results
first : on return, indicates the index of the first returned result. (That is, where results[0] would fall in the complete list of results.)
total : on return, indicates the total number of results that will eventually be returned
user_data : iter's user_data
Returns : the HTTP status (if successful, implies that results, etc, were set)

E2kResultIterFreeFunc ()

void        (*E2kResultIterFreeFunc)        (E2kResultIter *iter,
                                             gpointer user_data);

Called to free an E2kResultIter when the caller is done with it

iter : the iter
user_data : iter's user_data

e2k_result_iter_new ()

E2kResultIter* e2k_result_iter_new          (E2kContext *ctx,
                                             E2kOperation *op,
                                             gboolean ascending,
                                             int total,
                                             E2kResultIterFetchFunc fetch_func,
                                             E2kResultIterFreeFunc free_func,
                                             gpointer user_data);

Creates a object that can be used to return the results of a Multi-Status query on ctx.

fetch_func will be called to fetch results, and it may update the first and total fields if necessary. If ascending is TRUE, then e2k_result_iter_next() will first return the first result, then the second result, etc. If ascending is FALSE, it will return the last result, then the second-to-last result, etc.

When all of the results returned by the first fetch_func call have been returned to the caller, fetch_func will be called again to get more results. This will continue until fetch_func returns 0 results, or returns an error code.

ctx : an E2kContext
op : an E2kOperation, to use for cancellation
ascending : TRUE if results should be returned in ascending order, FALSE if they should be returned in descending order
total : the total number of results that will be returned, or -1 if not yet known
fetch_func : function to call to fetch more results
free_func : function to call when the iterator is freed
user_data : data to pass to fetch_func and free_func
Returns : the new iterator

See Also

E2kResult, E2kContext