Mercurial > hg > classical
view testapp/Loader.cpp @ 7:df999875c53b classical-rdf
* Test application for load/query (beginnings of)
author | Chris Cannam |
---|---|
date | Tue, 09 Feb 2010 17:33:39 +0000 |
parents | |
children | 71cf328c2a9d |
line wrap: on
line source
#include "Objects.h" #include "TypeRegistrar.h" #include <dataquay/BasicStore.h> #include <dataquay/objectmapper/ObjectMapper.h> #include <QTemporaryFile> #include <iostream> using namespace Dataquay; using namespace ClassicalData; bool load(BasicStore *store, QString resourceName) { QTemporaryFile tf; if (!tf.open()) return false; tf.setAutoRemove(true); QFile f(resourceName); if (!f.open(QFile::ReadOnly)) return false; QByteArray buffer; int bufsiz = 10240; while (!f.atEnd()) { buffer = f.read(bufsiz); tf.write(buffer); } std::cerr << "unpacked, importing..." << std::endl; store->import("file://" + tf.fileName(), BasicStore::ImportPermitDuplicates, // fastest mode "ntriples"); return true; } int main(int argc, char **argv) { BasicStore *store = new BasicStore(); store->setBaseUri("http://dbtune.org/classical/resource/"); ObjectMapper *mapper = new ObjectMapper(store); TypeRegistrar::addMappings(store, mapper); if (!load(store, ":data.ntriples")) { std::cerr << "Failed to unpack and load resource" << std::endl; return 1; } std::cerr << "imported, mapping..." << std::endl; QObject *parent = mapper->loadAllObjects(0); delete mapper; delete store; }