예제 #1
0
int main(int argc, char** argv)
{
   printf("Speed test...\n");

   size_t bytes;
   clock_t stime = clock();

   rdfacontext* context = rdfa_create_context("http://example.org/speed");
   rdfa_set_triple_handler(context, &process_triple);
   rdfa_parse_start(context);
   while(g_iteration <= MAX_ITERATIONS)
   {
      bytes = fill_buffer(context);
      rdfa_parse_buffer(context, bytes);
   }
   rdfa_parse_buffer(context, 0);
   rdfa_parse_end(context);
   rdfa_free_context(context);

   clock_t etime = clock();

   float delta = etime - stime;
   printf("Processed %1.2f triples per second from %lli bytes of data.\n",
          (MAX_ITERATIONS / (delta / CLOCKS_PER_SEC)), g_bytes_processed);

   return 0;
}
예제 #2
0
파일: rdfa.c 프로젝트: Distrotech/raptor
int rdfa_parse(rdfacontext* context)
{
  int rval;

  rval = rdfa_parse_start(context);
  if(rval != RDFA_PARSE_SUCCESS)
  {
    context->done = 1;
    return rval;
  }

  do
  {
     size_t wblen;
     int done;

     wblen = context->buffer_filler_callback(
        context->working_buffer, context->wb_allocated,
        context->callback_data);
     done = (wblen == 0);

     rval = rdfa_parse_chunk(context, context->working_buffer, wblen, done);
     context->done=done;
  }
  while(!context->done && rval == RDFA_PARSE_SUCCESS);

  rdfa_parse_end(context);

  return rval;
}
예제 #3
0
static void
raptor_librdfa_parse_terminate(raptor_parser* rdf_parser)
{
  raptor_librdfa_parser_context *librdfa_parser=(raptor_librdfa_parser_context*)rdf_parser->context;

  if(librdfa_parser->context) {
    rdfa_parse_end(librdfa_parser->context);
    rdfa_free_context(librdfa_parser->context);
    librdfa_parser->context=NULL;
  }
}