Example #1
0
/* ..._start and ..._finish share an int * count parameter
 * the same variable should be passed by reference both times */
int fs_import_stream_start(fsp_link *link, const char *model_uri, const char *mimetype, int has_o_index, int *count)
{
    if (inited == 0) {
        memset(&parse_data, 0, sizeof(parse_data));
        inited = 1;
    }

    parse_data.link = link;
    parse_data.segments = fsp_link_segments(link);
    parse_data.ext_count = count;

    for (int i=0; i<parse_data.segments; i++) {
        for (int j=0; j<RES_BUF_SIZE; j++) {
            lex_tmp[i][j] = malloc(RES_BUF_SIZE);
        }
    }

    memset(nodecache, 0, sizeof(nodecache));

    parse_data.quad_fn = g_strdup(FS_TMP_PATH "/importXXXXXX");
    parse_data.quad_fd = mkstemp(parse_data.quad_fn);
    if (parse_data.quad_fd < 0) {
        fs_error(LOG_ERR, "Cannot create tmp file ā€œ%sā€", parse_data.quad_fn);
        return 1;
    }

    parse_data.muri = raptor_new_uri((unsigned char *) model_uri);

    parse_data.model = g_strdup(model_uri);
    parse_data.model_hash = fs_hash_uri(model_uri);
    parse_data.count_trip = 0;
    parse_data.count_err = 0;
    parse_data.last_count = 0;
    parse_data.has_o_index = has_o_index;

    /* store the model uri */
    buffer_res(link, parse_data.segments, parse_data.model_hash, parse_data.model, FS_RID_NULL, parse_data.dryrun);

    parse_data.parser = raptor_new_parser_for_content(NULL, mimetype, NULL, 0, (unsigned char *) parse_data.model);

    if (!parse_data.parser) {
        return 1;
    }

    /* use us as a vector for an indirect attack? no thanks */
    raptor_set_feature(parse_data.parser, RAPTOR_FEATURE_NO_NET, 0);

    raptor_set_fatal_error_handler(parse_data.parser, link, fatal_rdf_parser_error);
    raptor_set_error_handler(parse_data.parser, link, rdf_parser_error);

    raptor_set_statement_handler(parse_data.parser, &parse_data, store_stmt);
    raptor_set_graph_handler(parse_data.parser, &parse_data, graph_handler);

    raptor_start_parse(parse_data.parser, parse_data.muri);

    fs_hash_freshen(); /* blank nodes are unique per file */

    return 0;
}
Example #2
0
void raptorNewParser(string prs)
{
  string_copyto(Seqbyte_print_buf,Seqbyte_print_buf_length,prs);
  theParser = raptor_new_parser(Seqbyte_print_buf);
//  raptor_set_feature(theParser,RAPTOR_FEATURE_SCANNING,1);
  raptor_set_fatal_error_handler(theParser,NULL,raptorErrorHandler);
  raptor_set_error_handler(theParser,NULL,raptorMessageHandler); 
  raptor_set_warning_handler(theParser,NULL,raptorMessageHandler); 
  raptor_set_statement_handler(theParser,NULL,raptorStatementHandler);
 }
Example #3
0
CRDFParser::CRDFParser() :
    CRaptorInit(),
    mpParser(NULL)
{
  mpParser = raptor_new_parser("rdfxml");

  raptor_set_fatal_error_handler(mpParser, NULL, &CRDFParser::FatalErrorHandler);
  raptor_set_error_handler(mpParser, NULL, &CRDFParser::ErrorHandler);
  raptor_set_warning_handler(mpParser, NULL, &CRDFParser::WarningHandler);
}