/* -*- Mode: c; c-basic-offset: 2 -*- * * rdf_init_internal.h - Internal library initialisation / termination * * $Id: rdf_init_internal.h 11436 2006-10-07 08:28:14Z dajobe $ * * Copyright (C) 2000-2006, David Beckett http://purl.org/net/dajobe/ * 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_INIT_INTERNAL_H #define LIBRDF_INIT_INTERNAL_H #ifdef __cplusplus extern "C" { #endif struct librdf_world_s { void *error_user_data; librdf_log_level_func error_handler; void *warning_user_data; librdf_log_level_func warning_handler; void *log_user_data; librdf_log_func log_handler; /* static (last) log message */ librdf_log_message log; char *digest_factory_name; librdf_digest_factory* digest_factory; /* URI interning */ librdf_hash* uris_hash; int uris_hash_allocated_here; /* Node interning */ librdf_hash* nodes_hash[3]; /* resource, literal, blank */ /* Sequence of model factories */ raptor_sequence* models; /* Sequence of storage factories */ raptor_sequence* storages; /* Sequence of parser factories */ raptor_sequence* parsers; /* Sequence of serializer factories */ raptor_sequence* serializers; /* List of query factories */ librdf_query_factory* query_factories; /* List of digest factories */ librdf_digest_factory *digests; /* list of hash factories */ librdf_hash_factory* hashes; /* list of free librdf_hash_datums is kept */ librdf_hash_datum* hash_datums_list; /* hash load_factor out of 1000 */ int hash_load_factor; /* ID base from startup time */ long genid_base; /* Unique counter from there */ long genid_counter; #ifdef WITH_THREADS /* mutex so we can lock around this when we need to */ pthread_mutex_t* mutex; /* mutex to lock the nodes class */ pthread_mutex_t* nodes_mutex; /* mutex to lock the statements class */ pthread_mutex_t* statements_mutex; #endif }; unsigned char* librdf_world_get_genid(librdf_world* world); #ifdef __cplusplus } #endif #endif