static void librdf_storage_tstore_find_finished(void* context) { librdf_storage_tstore_find_stream_context* scontext=(librdf_storage_tstore_find_stream_context*)context; if(scontext->triple) { /* The docs say about rs_find_triples:[[ * NB Once rs_find_triples has been called, all the triples * /must/ be fetched with rs_next_triple(), even if they are * not required. * ]] */ while(rs_next_triple(scontext->result)) ; } if(scontext->result) rs_free_result(scontext->result); /* FIXME: as alloced in librdf_storage_tstore_statement_as_rs_triple */ if(scontext->search_triple) LIBRDF_FREE(rs_triple, scontext->search_triple); if(scontext->storage) librdf_storage_remove_reference(scontext->storage); LIBRDF_FREE(librdf_storage_tstore_find_stream_context, scontext); }
static void librdf_storage_tstore_serialise_finished(void* context) { librdf_storage_tstore_serialise_stream_context* scontext=(librdf_storage_tstore_serialise_stream_context*)context; if(scontext->triple) { /* The docs say about rs_find_triples:[[ * NB Once rs_find_triples has been called, all the triples * /must/ be fetched with rs_next_triple(), even if they are * not required. * ]] * but let's assume it applies to rs_find_all_resources */ while(rs_next_triple(scontext->result)) ; } if(scontext->result) rs_free_result(scontext->result); if(scontext->storage) librdf_storage_remove_reference(scontext->storage); LIBRDF_FREE(librdf_storage_tstore_serialise_stream_context, scontext); }
static void cassandra_results_stream_finished(void* context) { cassandra_results_stream* scontext; scontext = (cassandra_results_stream*)context; if (scontext->iter) cass_iterator_free(scontext->iter); if (scontext->result) cass_result_free(scontext->result); if (scontext->stmt) cass_statement_free(scontext->stmt); if(scontext->storage) librdf_storage_remove_reference(scontext->storage); if(scontext->statement) librdf_free_statement(scontext->statement); if(scontext->context) librdf_free_node(scontext->context); LIBRDF_FREE(librdf_storage_cassandra_find_statements_stream_context, scontext); }
static void librdf_storage_trees_serialise_finished(void* context) { librdf_storage_trees_serialise_stream_context* scontext=(librdf_storage_trees_serialise_stream_context*)context; if(scontext->iterator) librdf_free_iterator(scontext->iterator); if(scontext->storage) librdf_storage_remove_reference(scontext->storage); LIBRDF_FREE(librdf_storage_trees_serialise_stream_context, scontext); }
static void librdf_storage_stream_to_node_iterator_finished(void* iterator) { librdf_storage_stream_to_node_iterator_context* context=(librdf_storage_stream_to_node_iterator_context*)iterator; librdf_statement *partial_statement=context->partial_statement; /* make sure librdf_free_statement() doesn't free anything here */ if(partial_statement) { librdf_statement_set_subject(partial_statement, NULL); librdf_statement_set_predicate(partial_statement, NULL); librdf_statement_set_object(partial_statement, NULL); librdf_free_statement(partial_statement); } if(context->stream) librdf_free_stream(context->stream); if(context->storage) librdf_storage_remove_reference(context->storage); LIBRDF_FREE(librdf_storage_stream_to_node_iterator_context, context); }