/** * librdf_storage_trees_close: * @storage: the storage * * . * * Close the storage, and free all content since there is no persistance. * * Return value: non 0 on failure **/ static int librdf_storage_trees_close(librdf_storage* storage) { librdf_storage_trees_instance* context=(librdf_storage_trees_instance*)storage->instance; librdf_storage_trees_graph_free(context->graph); context->graph=NULL; #ifdef RDF_STORAGE_TREES_WITH_CONTEXTS librdf_free_avltree(context->contexts); context->contexts=NULL; #endif return 0; }
/** * librdf_storage_trees_context_remove_statement: * @storage: #librdf_storage object * @context_node: #librdf_node object * @statement: #librdf_statement statement to remove * * Remove a statement from a storage context. * * Return value: non 0 on failure **/ static int librdf_storage_trees_context_remove_statement(librdf_storage* storage, librdf_node* context_node, librdf_statement* statement) { librdf_storage_trees_instance* context=(librdf_storage_trees_instance*)storage->instance; librdf_storage_trees_graph* key=librdf_storage_trees_graph_new(storage, context_node); librdf_storage_trees_graph* graph=(librdf_storage_trees_graph*) librdf_avltree_search(context->contexts, &key); librdf_storage_trees_graph_free(key); if (graph) { return librdf_storage_trees_remove_statement_internal(graph, statement); } else { return -1; } }
/** * librdf_storage_trees_context_add_statement: * @storage: #librdf_storage object * @context_node: #librdf_node object * @statement: #librdf_statement statement to add * * Add a statement to a storage context. * * Return value: non 0 on failure **/ static int librdf_storage_trees_context_add_statement(librdf_storage* storage, librdf_node* context_node, librdf_statement* statement) { librdf_storage_trees_context* context=(librdf_storage_trees_context*)storage->context; librdf_storage_trees_graph* key=librdf_storage_trees_graph_new(storage, context_node); librdf_storage_trees_graph* graph=(librdf_storage_trees_graph*) librdf_avltree_search(context->contexts, key); if(graph) { librdf_storage_trees_graph_free(key); } else { librdf_avltree_add(context->contexts, key); graph=key; } return librdf_storage_trees_add_statement_internal(storage, graph, statement); }