s5curl_get - fetches a record from a remote BLOW5 file corresponding to a given read ID
int s5curl_get(const char *read_id, slow5_rec_t **record, S5CURLCONN *curl, s5curl_t *s5c)
s5curl_get() fetches and decodes a record from a remote BLOW5 file s5c for a specified read_id into a slow5_rec_t and stores it in *record.
The argument read_id points to a read identifier string.
If *record is set to NULL before the call, then s5curl_get() will allocate a slow5_rec_t for storing the record. This slow5_rec_t should be freed by the user program using slow5_rec_free().
The argument s5c points to a slow5_file_t opened using s5curl_open(). s5curl_get() requires the SLOW index to be pre-loaded to s5c using s5curl_idx_load() or s5curl_idx_load_with().
The argument curl points to a S5CURLCONN handle.
s5curl_get() can be called by multiple threads in parallel on the same slow5_file_t pointer, however it must have a different CURL handle.
Upon successful completion, s5curl_get() returns a non negative integer (>=0). Otherwise, a negative value is returned that indicates the error. If the error occured with SLOW5 then slow5_errno is set to indicate the error.
S5CURL_ERR_FETCH S5CURL_ERR_SLOW5 S5CURL_ERR_NOTFOUND #include <slow5curl/s5curl.h>
#define READ_ID "0032812b-1ea5-46f1-a844-5bcc3bf3c21f"
int main () {
// setup
S5CURLCONN *curl = s5curl_conn_init();
slow5_rec_t *rec = NULL;
ret = s5curl_get(s5c, curl, READ_ID, &rec);
if (ret < 0) {
fprintf(stderr, "Error in when fetching the read\n");
exit(EXIT_FAILURE);
}
slow5_rec_free(rec);
s5curl_conn_cleanup(curl);
// cleanup
}