#include "utils/TeraSort.h"
#include "utils/type.h"
#include "triple.h"
double sampRate=0.001;
class TripleSort:public TeraWorker<string>
{
char* tmp;
public:
TripleSort():TeraWorker<string>(sampRate, false){
tmp = new char[TRIPLE_STRBUF_SIZE];
}
~TripleSort() {delete tmp;}
virtual TeraItem<string>* toVertex(char* line)
{
TeraItem<string>* v=new TeraItem<string>;
v->content=line;
statement o;
o.parseTriple(line);
v->key+=o.subject;
return v;
}
virtual void toline(TeraItem<string>* v)
{
sprintf(tmp, "%s\n", v->content.c_str());
write(tmp);
}
};
int main(int argc, char* argv[]){
WorkerParams param;
param.input_path="/dblp_nt";
param.output_path="/dblp_sorted";
param.force_write=true;
param.native_dispatcher=false;
TripleSort worker;
worker.run(param);
return 0;
}