mirror of
https://github.com/cookiengineer/audacity
synced 2025-10-14 14:41:11 +02:00
Move library tree where it belongs
This commit is contained in:
198
lib-src/redland/librdf/rdf_model_internal.h
Normal file
198
lib-src/redland/librdf/rdf_model_internal.h
Normal file
@@ -0,0 +1,198 @@
|
||||
/* -*- Mode: c; c-basic-offset: 2 -*-
|
||||
*
|
||||
* rdf_model_internal.h - Internal RDF Model definitions
|
||||
*
|
||||
* Copyright (C) 2000-2008, David Beckett http://www.dajobe.org/
|
||||
* Copyright (C) 2000-2005, University of Bristol, UK http://www.bristol.ac.uk/
|
||||
*
|
||||
* This package is Free Software and part of Redland http://librdf.org/
|
||||
*
|
||||
* It is licensed under the following three licenses as alternatives:
|
||||
* 1. GNU Lesser General Public License (LGPL) V2.1 or any newer version
|
||||
* 2. GNU General Public License (GPL) V2 or any newer version
|
||||
* 3. Apache License, V2.0 or any newer version
|
||||
*
|
||||
* You may not use this file except in compliance with at least one of
|
||||
* the above three licenses.
|
||||
*
|
||||
* See LICENSE.html or LICENSE.txt at the top of this package for the
|
||||
* complete terms and further detail along with the license texts for
|
||||
* the licenses in COPYING.LIB, COPYING and LICENSE-2.0.txt respectively.
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#ifndef LIBRDF_MODEL_INTERNAL_H
|
||||
#define LIBRDF_MODEL_INTERNAL_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct librdf_model_s {
|
||||
librdf_world *world;
|
||||
|
||||
/* usage: usage count of this instance
|
||||
*
|
||||
* Used by other redland classes such as iterator, stream
|
||||
* via librdf_model_add_reference librdf_model_remove_reference
|
||||
* The usage count of model after construction is 1.
|
||||
*/
|
||||
int usage;
|
||||
|
||||
/* sub_models: list of sub librdf_model* */
|
||||
librdf_list* sub_models;
|
||||
|
||||
/* supports_contexts : does the storage model support redland contexts? */
|
||||
int supports_contexts;
|
||||
|
||||
/* context : model implementation user data */
|
||||
void *context;
|
||||
|
||||
struct librdf_model_factory_s* factory;
|
||||
};
|
||||
|
||||
/* A Model Factory */
|
||||
struct librdf_model_factory_s {
|
||||
char* name;
|
||||
char* label;
|
||||
|
||||
/* the rest of this structure is populated by the
|
||||
model-specific register function */
|
||||
size_t context_length;
|
||||
|
||||
/* init the factory */
|
||||
void (*init)(void);
|
||||
|
||||
/* terminate the factory */
|
||||
void (*terminate)(void);
|
||||
|
||||
/* create a new model */
|
||||
int (*create)(librdf_model* model, librdf_storage* storage, librdf_hash* options);
|
||||
|
||||
/* copy a model */
|
||||
/* clone is assumed to do leave the new model in the same state
|
||||
* after an init() method on an existing model - i.e ready to
|
||||
* use but closed.
|
||||
*/
|
||||
librdf_model* (*clone)(librdf_model* new_model);
|
||||
|
||||
/* destroy model */
|
||||
void (*destroy)(librdf_model* model);
|
||||
|
||||
/* return the number of statements in the model for model */
|
||||
int (*size)(librdf_model* model);
|
||||
|
||||
/* add a statement to the model from the given model */
|
||||
int (*add_statement)(librdf_model* model, librdf_statement* statement);
|
||||
|
||||
/* add a statement to the model from the given model */
|
||||
int (*add_statements)(librdf_model* model, librdf_stream* statement_stream);
|
||||
|
||||
/* remove a statement from the model */
|
||||
int (*remove_statement)(librdf_model* model, librdf_statement* statement);
|
||||
|
||||
/* check if statement in model */
|
||||
int (*contains_statement)(librdf_model* model, librdf_statement* statement);
|
||||
/* check for [node, property, ?] */
|
||||
int (*has_arc_in)(librdf_model *model, librdf_node *node, librdf_node *property);
|
||||
/* check for [?, property, node] */
|
||||
int (*has_arc_out)(librdf_model *model, librdf_node *node, librdf_node *property);
|
||||
|
||||
|
||||
/* serialise the model in model */
|
||||
librdf_stream* (*serialise)(librdf_model* model);
|
||||
|
||||
/* serialise the results of a query */
|
||||
librdf_stream* (*find_statements)(librdf_model* model, librdf_statement* statement);
|
||||
librdf_stream* (*find_statements_with_options)(librdf_model* model, librdf_statement* statement, librdf_node* context_node, librdf_hash* options);
|
||||
|
||||
/* return a list of Nodes marching given arc, target */
|
||||
librdf_iterator* (*get_sources)(librdf_model* model, librdf_node *arc, librdf_node *target);
|
||||
|
||||
/* return a list of Nodes marching given source, target */
|
||||
librdf_iterator* (*get_arcs)(librdf_model* model, librdf_node *source, librdf_node *target);
|
||||
|
||||
/* return a list of Nodes marching given source, target */
|
||||
librdf_iterator* (*get_targets)(librdf_model* model, librdf_node *source, librdf_node *target);
|
||||
|
||||
/* return list of properties to/from a node */
|
||||
librdf_iterator* (*get_arcs_in)(librdf_model *model, librdf_node *node);
|
||||
librdf_iterator* (*get_arcs_out)(librdf_model *model, librdf_node *node);
|
||||
|
||||
/* add a statement to the model from the context */
|
||||
int (*context_add_statement)(librdf_model* model, librdf_node* context, librdf_statement *statement);
|
||||
|
||||
/* remove a statement from the context */
|
||||
int (*context_remove_statement)(librdf_model* model, librdf_node* context, librdf_statement *statement);
|
||||
|
||||
/* list statements in a context */
|
||||
librdf_stream* (*context_serialize)(librdf_model* model, librdf_node* context);
|
||||
|
||||
/* query the model */
|
||||
librdf_query_results* (*query_execute)(librdf_model* model, librdf_query* query);
|
||||
|
||||
/* sync the model to the storage - OPTIONAL */
|
||||
int (*sync)(librdf_model* model);
|
||||
|
||||
/* add a statement from the context - OPTIONAL (librdf_model will
|
||||
* implement using context_add_statement if missing)
|
||||
*/
|
||||
int (*context_add_statements)(librdf_model* model, librdf_node* context, librdf_stream *stream);
|
||||
|
||||
/* remove a statement from the context - OPTIONAL (librdf_model will
|
||||
* implement using context_remove_statement if missing)
|
||||
*/
|
||||
int (*context_remove_statements)(librdf_model* model, librdf_node* context);
|
||||
|
||||
/* get the single storage for this model if there is one - OPTIONAL */
|
||||
librdf_storage* (*get_storage)(librdf_model* model);
|
||||
|
||||
/* search for statement in a context - OPTIONAL (rdf_model will do
|
||||
* it using find_statements if missing)
|
||||
*/
|
||||
librdf_stream* (*find_statements_in_context)(librdf_model* model, librdf_statement* statement, librdf_node* context_node);
|
||||
|
||||
/* return an iterator of context nodes in the store - OPTIONAL
|
||||
* (returning NULL)
|
||||
*/
|
||||
librdf_iterator* (*get_contexts)(librdf_model* model);
|
||||
|
||||
/* features - OPTIONAL */
|
||||
librdf_node* (*get_feature)(librdf_model* model, librdf_uri* feature);
|
||||
int (*set_feature)(librdf_model* model, librdf_uri* feature, librdf_node* value);
|
||||
|
||||
/* transactions - OPTIONAL */
|
||||
int (*transaction_start)(librdf_model* model);
|
||||
int (*transaction_start_with_handle)(librdf_model* model, void* handle);
|
||||
int (*transaction_commit)(librdf_model* model);
|
||||
int (*transaction_rollback)(librdf_model* model);
|
||||
void* (*transaction_get_handle)(librdf_model* model);
|
||||
|
||||
};
|
||||
|
||||
/* module init */
|
||||
void librdf_init_model(librdf_world *world);
|
||||
|
||||
/* module terminate */
|
||||
void librdf_finish_model(librdf_world *world);
|
||||
|
||||
/* class methods */
|
||||
void librdf_model_register_factory(librdf_world *world, const char *name, const char *label, void (*factory) (librdf_model_factory*));
|
||||
librdf_model_factory* librdf_get_model_factory(librdf_world* world, const char *name);
|
||||
|
||||
void librdf_model_add_reference(librdf_model *model);
|
||||
void librdf_model_remove_reference(librdf_model *model);
|
||||
|
||||
|
||||
/* model storage factory initialise (the only model factory at present) */
|
||||
void librdf_init_model_storage(librdf_world *world);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user