Mercurial > hg > audiodb
view sparql/mod_audiodb/mod_audiodb.c @ 597:fac63f65753e
Remove LIBGSL from library link stage
At present, the library doesn't depend on libgsl. If Windows porting
goes faster than APIs for sample and index, removing libgsl from the
link equation will help.
author | mas01cr |
---|---|
date | Tue, 11 Aug 2009 21:57:46 +0000 |
parents | e3790284fd4a |
children | c6debbac3216 |
line wrap: on
line source
#include <httpd.h> #include <ap_config.h> #include <http_config.h> #include <http_protocol.h> #include <apr_strings.h> #include <librdf.h> #include <apreq_module.h> #include <apreq_parser.h> #include <apreq_param.h> #include "apreq2/apreq_module_apache2.h" static int ap_dump_table(void *baton, const char *key, const char *value) { if (key && value) fprintf(stderr, "%s:%s\n", key, value); fflush(stderr); return 1; } static int log_out(void *user_data, librdf_log_message *message) { fprintf(stderr, "%s\n", librdf_log_message_message(message)); fflush(stderr); return 1; } static int adb_handle_sparql_req(request_rec *r) { if(strcmp(r->handler, "audiodb-sparql-handler") != 0) { return DECLINED; } r->content_type = "text/plain"; r->status = OK; r->status_line = "200 OK"; if(!r->args) { r->args = ""; } const apr_table_t *form_table; apreq_handle_t *h = apreq_handle_apache2(r); if(apreq_args(h, &form_table) != APR_SUCCESS) return DECLINED; const unsigned char *query_string = apr_table_get(form_table, "query"); int rc = 0; librdf_world* world = librdf_new_world(); if(!world) { rc = 1; goto error; } librdf_world_open(world); librdf_world_set_logger(world, NULL, log_out); librdf_storage* storage = librdf_new_storage(world, "audiodb", "/tmp/test.adb", "new='yes'"); if(!storage) { rc = 2; goto error; } librdf_model *model; if (!(model = librdf_new_model(world, storage, NULL))) { rc = 5; goto error; } librdf_query *query; if (!(query = librdf_new_query(world, "sparql", NULL, query_string, NULL))) { rc = 3; goto error; } librdf_query_results *results; if (!(results = librdf_query_execute(query, model))) { rc = 4; goto error; } ap_rprintf(r, "Everything went awesomely!"); rc = 0; return r->status; error: ap_rprintf(r, "Fail %d", rc); return OK; } static void mod_audiodb_register_hooks (apr_pool_t *p) { ap_hook_handler(adb_handle_sparql_req, NULL, NULL, APR_HOOK_FIRST); } module AP_MODULE_DECLARE_DATA audiodb_module = { STANDARD20_MODULE_STUFF, NULL, NULL, NULL, NULL, NULL, mod_audiodb_register_hooks, };