annotate testapp/Loader.cpp @ 8:71cf328c2a9d classical-rdf

* Test output again after import & mapping
author Chris Cannam
date Thu, 11 Feb 2010 17:50:08 +0000
parents df999875c53b
children 9e2b203254ab
rev   line source
Chris@7 1
Chris@7 2 #include "Objects.h"
Chris@7 3 #include "TypeRegistrar.h"
Chris@7 4
Chris@7 5 #include <dataquay/BasicStore.h>
Chris@7 6 #include <dataquay/objectmapper/ObjectMapper.h>
Chris@7 7
Chris@7 8 #include <QTemporaryFile>
Chris@7 9
Chris@7 10 #include <iostream>
Chris@7 11
Chris@7 12 using namespace Dataquay;
Chris@7 13 using namespace ClassicalData;
Chris@7 14
Chris@7 15 bool
Chris@7 16 load(BasicStore *store, QString resourceName)
Chris@7 17 {
Chris@7 18 QTemporaryFile tf;
Chris@7 19 if (!tf.open()) return false;
Chris@7 20 tf.setAutoRemove(true);
Chris@7 21 QFile f(resourceName);
Chris@7 22 if (!f.open(QFile::ReadOnly)) return false;
Chris@7 23 QByteArray buffer;
Chris@7 24 int bufsiz = 10240;
Chris@7 25 while (!f.atEnd()) {
Chris@7 26 buffer = f.read(bufsiz);
Chris@7 27 tf.write(buffer);
Chris@7 28 }
Chris@7 29 std::cerr << "unpacked, importing..." << std::endl;
Chris@7 30 store->import("file://" + tf.fileName(),
Chris@7 31 BasicStore::ImportPermitDuplicates, // fastest mode
Chris@7 32 "ntriples");
Chris@7 33 return true;
Chris@7 34 }
Chris@7 35
Chris@7 36 int main(int argc, char **argv)
Chris@7 37 {
Chris@7 38 BasicStore *store = new BasicStore();
Chris@7 39 store->setBaseUri("http://dbtune.org/classical/resource/");
Chris@7 40 ObjectMapper *mapper = new ObjectMapper(store);
Chris@7 41
Chris@7 42 TypeRegistrar::addMappings(store, mapper);
Chris@7 43
Chris@7 44 if (!load(store, ":data.ntriples")) {
Chris@7 45 std::cerr << "Failed to unpack and load resource" << std::endl;
Chris@7 46 return 1;
Chris@7 47 }
Chris@7 48
Chris@7 49 std::cerr << "imported, mapping..." << std::endl;
Chris@7 50
Chris@8 51 QObject *root = mapper->loadAllObjects(0);
Chris@8 52
Chris@7 53 delete mapper;
Chris@7 54 delete store;
Chris@8 55
Chris@8 56 std::cerr << "mapped, storing again..." << std::endl;
Chris@8 57
Chris@8 58 BasicStore *outstore = new BasicStore();
Chris@8 59 outstore->setBaseUri("http://dbtune.org/classical/resource/");
Chris@8 60 ObjectMapper *outmapper = new ObjectMapper(outstore);
Chris@8 61
Chris@8 62 TypeRegistrar::addMappings(outstore, outmapper);
Chris@8 63
Chris@8 64 outmapper->storeObjects(root);
Chris@8 65 delete outmapper;
Chris@8 66
Chris@8 67 std::cerr << "stored, saving..." << std::endl;
Chris@8 68
Chris@8 69 outstore->save("test-output.ttl");
Chris@8 70
Chris@8 71 delete outstore;
Chris@7 72 }
Chris@7 73