15 #include <QTextStream>
18 #include <QDomDocument>
23 QDir temp = QDir(QDir::tempPath());
25 m_monavSettings = QFileInfo(temp,
"monav_settings.ini");
26 QFile settingsFile(m_monavSettings.absoluteFilePath());
27 settingsFile.open(QFile::WriteOnly | QFile::Truncate);
28 QTextStream settingsStream(&settingsFile);
30 settingsStream <<
"[General]\npackaging=false\ndictionarySize=16384\nblockSize=16384\n";
31 settingsStream <<
"importer=OpenStreetMap Importer\nrouter=Contraction Hierarchies";
32 settingsStream <<
"renderer=Mapnik Renderer\ngpsLookup=GPS Grid\naddressLookup=Unicode Tournament Trie\n\n";
33 settingsStream <<
"[OSM%20Importer]\nlanguages=name\nspeedProfile=:/speed profiles/motorcar.spp\n\n";
34 settingsStream <<
"[ContractionHierarchies]\nblockSize=12\n";
46 file.open(QFile::ReadOnly);
49 if ( !xml.setContent( &file ) ) {
50 qDebug() <<
"Cannot parse xml file with regions.";
54 QDomElement root = xml.documentElement();
55 QDomNodeList regions = root.elementsByTagName(
"region" );
56 for (
unsigned int i = 0; i < regions.length(); ++i ) {
58 QDomNode node = regions.item( i );
59 if (!node.namedItem(
"continent").isNull()) {
60 region.
setContinent(node.namedItem(
"continent").toElement().text());
62 if (!node.namedItem(
"country").isNull()) {
63 region.
setCountry(node.namedItem(
"country").toElement().text());
65 if (!node.namedItem(
"name").isNull()) {
66 region.
setName(node.namedItem(
"name").toElement().text());
68 if (!node.namedItem(
"id").isNull()) {
69 region.
setId(node.namedItem(
"id").toElement().text());
71 if (!node.namedItem(
"path").isNull()) {
72 region.
setPath(node.namedItem(
"path").toElement().text());
74 if (!node.namedItem(
"pbf").isNull()) {
75 region.
setPbfFile(node.namedItem(
"pbf").toElement().text());
77 if (!node.namedItem(
"transport").isNull()) {
78 QStringList input = node.namedItem(
"transport").toElement().text().split(
',', QString::SkipEmptyParts);
79 foreach(
const QString &value, input ) {
80 if (!region.
continent().isEmpty() && !region.
name().isEmpty()) {
94 qDebug() <<
"Invalid transport type " << job.
m_transport
95 <<
" in .xml file, ignoring. Valid types are Motorcar, Bicycle and Pedestrian.";
105 m_resumeId = resumeId;
110 m_jobParameters = parameters;
113 void JobManager::update()
115 bool resume = m_resumeId.isEmpty();
116 foreach(
const PendingJob &job, m_pendingJobs) {
117 resume = resume || job.
m_region.
id() == m_resumeId;
123 QTimer::singleShot(1000*60*60*24,
this, SLOT(update()));
126 void JobManager::addJob(
const PendingJob &job)
133 m_queue.
addJob(countryJob);
136 #include "jobmanager.moc"
void setRegionsFile(const QString &filename)
void setTransport(const QString &transport)
void setProfile(const QString &profile)
void setMonavSettings(const QString &filename)
void setName(QString arg)
void setJobParameters(const JobParameters ¶meters)
void setResumeId(const QString &resumeId)
void setPbfFile(const QString &pbfFile)
JobManager(QObject *parent=0)
void setPath(const QString &path)
void setCountry(QString arg)
void setId(const QString &id)
void setContinent(QString arg)