1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-05-04 09:39:42 +02:00
audacity/lib-src/libraptor/win32/raptortest.cpp

83 lines
1.8 KiB
C++

// raptortest.cpp : Defines the entry point for the console application.
//
#include <stdio.h>
#include <windows.h>
#include "..\raptor.h"
#define TIMEIT
#define DUMPIT
int nStmts = 0;
void dump_statement(void* user_data, const raptor_statement *statement)
{
nStmts++;
#ifdef DUMPIT
printf("%li, [%s, ", nStmts, statement->subject);
if(statement->predicate_type == RAPTOR_PREDICATE_TYPE_ORDINAL)
printf("[rdf:_%d]", *((int*)statement->predicate));
else if(statement->predicate_type == RAPTOR_PREDICATE_TYPE_XML_NAME)
printf("%s", (const char*)statement->predicate);
else
printf("[%s]", (const char*)statement->predicate);
if(statement->object_type == RAPTOR_OBJECT_TYPE_LITERAL ||
statement->object_type == RAPTOR_OBJECT_TYPE_XML_LITERAL)
printf(", \"%s\"]", (const char*)statement->object);
else if(statement->object_type == RAPTOR_OBJECT_TYPE_XML_NAME)
printf(", %s]", (const char*)statement->object);
else
printf(", %s]", statement->object);
printf("\n");
#endif
}
void usage()
{
printf("Usage: raptortest <rdffileurl>\nE.g. file:c:\\test.rdf\n");
}
int main(int argc, char* argv[])
{
if (argc != 2)
{
usage();
return -1;
}
raptor_init();
raptor_parser* p = raptor_new("");
raptor_set_statement_handler(p, NULL, dump_statement);
#ifdef TIMEIT
LARGE_INTEGER Start;
QueryPerformanceCounter(&Start);
#endif
raptor_parse_file(p, argv[1], NULL);
#ifdef TIMEIT
LARGE_INTEGER End;
QueryPerformanceCounter(&End);
LARGE_INTEGER Frec;
QueryPerformanceFrequency(&Frec);
double Total = (End.LowPart-Start.LowPart);
double StmtsPer = Total/nStmts;
printf("%li statments processed in %g t. %g t/stmts, %li t/s, %g stmts/s", nStmts, Total, StmtsPer, Frec.LowPart, (double)Frec.LowPart/StmtsPer);
#endif
raptor_free(p);
raptor_finish();
return 0;
}