Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 7 additions & 3 deletions qrail.pri
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,12 @@ SOURCES += \
$$PWD/src/engines/router/routerroutelegend.cpp \
$$PWD/src/engines/router/routerstationstopprofile.cpp \
$$PWD/src/engines/router/routertrainprofile.cpp \
$$PWD/src/engines/router/routerjourney.cpp \
$$PWD/src/engines/router/routernulljourney.cpp \
$$PWD/src/engines/liveboard/liveboardfactory.cpp \
$$PWD/src/engines/liveboard/liveboardboard.cpp \
$$PWD/src/engines/liveboard/liveboardnullboard.cpp \
$$PWD/src/engines/vehicle/vehiclenullvehicle.cpp \
$$PWD/src/engines/station/stationstation.cpp \
$$PWD/src/engines/station/stationnullstation.cpp \
$$PWD/src/engines/station/stationfactory.cpp \
Expand All @@ -47,9 +51,7 @@ SOURCES += \
$$PWD/src/fragments/fragmentspage.cpp \
$$PWD/src/fragments/fragmentsfactory.cpp \
$$PWD/src/fragments/fragmentsdispatcher.cpp \
$$PWD/src/qrail.cpp \
$$PWD/src/engines/vehicle/vehiclenullvehicle.cpp \
$$PWD/src/engines/liveboard/liveboardnullboard.cpp
$$PWD/src/qrail.cpp

HEADERS += \
$$PWD/src/include/engines/alerts/alertsmessage.h \
Expand All @@ -60,6 +62,8 @@ HEADERS += \
$$PWD/src/include/engines/router/routerroutelegend.h \
$$PWD/src/include/engines/router/routerstationstopprofile.h \
$$PWD/src/include/engines/router/routertrainprofile.h \
$$PWD/src/include/engines/router/routerjourney.h \
$$PWD/src/include/engines/router/routernulljourney.h \
$$PWD/src/include/engines/liveboard/liveboardfactory.h \
$$PWD/src/include/engines/liveboard/liveboardboard.h \
$$PWD/src/include/engines/liveboard/liveboardnullboard.h \
Expand Down
2 changes: 1 addition & 1 deletion qrail.pro
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
#

TARGET = qrail
VERSION = 0.0.2
VERSION = 0.0.4

# Uncomment this config if you want to build a static library
CONFIG += staticlib
Expand Down
9 changes: 2 additions & 7 deletions src/engines/liveboard/liveboardboard.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ QRail::LiveboardEngine::Board::Board(const QList<QRail::VehicleEngine::Vehicle *
m_station = station;
m_from = from;
m_until = until;
m_hydraNext = QUrl();
m_hydraPrevious = QUrl();
}

/**
Expand Down Expand Up @@ -120,8 +122,6 @@ void QRail::LiveboardEngine::Board::setHydraNext(const QUrl &hydraNext)
QDateTime timeOldHydraNext = QDateTime::fromString(
queryOldHydraNext.queryItemValue("departureTime"), Qt::ISODate);

qDebug() << "HYDRA NEXT=" << hydraNext << timeNewHydraNext << "|" << this->hydraNext() <<
timeOldHydraNext;
// Only accept URI that's later in time
if (timeNewHydraNext > timeOldHydraNext) {
m_hydraNext = hydraNext;
Expand All @@ -130,7 +130,6 @@ void QRail::LiveboardEngine::Board::setHydraNext(const QUrl &hydraNext)
}
// Current hydraNext is still empty, setting it to the received hydraNext
else {
qDebug() << "Empty hydraNext";
m_hydraNext = hydraNext;
emit this->hydraNextChanged();
}
Expand All @@ -151,9 +150,6 @@ void QRail::LiveboardEngine::Board::setHydraPrevious(const QUrl &hydraPrevious)
queryNewHydraPrevious.queryItemValue("departureTime"), Qt::ISODate);
QDateTime timeOldHydraPrevious = QDateTime::fromString(
queryOldHydraPrevious.queryItemValue("departureTime"), Qt::ISODate);
qDebug() << "HYDRA PREVIOUS=" << hydraPrevious << timeNewHydraPrevious << "|" <<
this->hydraPrevious() <<
timeOldHydraPrevious;
// Only accept URI that's earlier in time
if (timeNewHydraPrevious < timeOldHydraPrevious) {
m_hydraPrevious = hydraPrevious;
Expand All @@ -162,7 +158,6 @@ void QRail::LiveboardEngine::Board::setHydraPrevious(const QUrl &hydraPrevious)
}
// Current hydraPrevious is still empty, setting it to the received hydraPrevious
else {
qDebug() << "Empty hydraPrevious";
m_hydraPrevious = hydraPrevious;
emit this->hydraPreviousChanged();
}
Expand Down
192 changes: 192 additions & 0 deletions src/engines/router/routerjourney.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,192 @@
/*
* This file is part of QRail.
*
* QRail is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* QRail is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with QRail. If not, see <http://www.gnu.org/licenses/>.
*/
#include "engines/router/routerjourney.h"
using namespace QRail;

RouterEngine::Journey::Journey(QObject *parent) : QObject(parent)
{

}

RouterEngine::Journey::Journey(const QList<RouterEngine::Route *> &routes,
const QMap<QUrl, RouterEngine::TrainProfile *> &TArray,
const QMap<QUrl, QList<RouterEngine::StationStopProfile *> > &SArray,
const QUrl &departureStation,
const QUrl &arrivalStation,
const QDateTime &departureTime,
const QDateTime &arrivalTime,
const quint16 &maxTransfers,
QObject *parent) : QObject(parent)
{
// Use private members to avoid signal firing on construction
m_routes = routes;
m_TArray = TArray;
m_SArray = SArray;
m_departureStation = departureStation;
m_arrivalStation = arrivalStation;
m_departureTime = departureTime;
m_arrivalTime = arrivalTime;
m_maxTransfers = maxTransfers;
m_hydraPrevious = QUrl();
m_hydraNext = QUrl();
}

// Getters & Setters
QList<QRail::RouterEngine::Route *> RouterEngine::Journey::routes() const
{
return m_routes;
}

void RouterEngine::Journey::setRoutes(const QList<QRail::RouterEngine::Route *> &routes)
{
m_routes = routes;
emit this->routesChanged();
}

QMap<QUrl, QRail::RouterEngine::TrainProfile *> RouterEngine::Journey::TArray() const
{
return m_TArray;
}

void RouterEngine::Journey::setTArray(const QMap<QUrl, QRail::RouterEngine::TrainProfile *>
&TArray)
{
m_TArray = TArray;
emit this->TArrayChanged();
}

QMap<QUrl, QList<QRail::RouterEngine::StationStopProfile *> > RouterEngine::Journey::SArray() const
{
return m_SArray;
}

void RouterEngine::Journey::setSArray(const
QMap<QUrl, QList<QRail::RouterEngine::StationStopProfile *> > &SArray)
{
m_SArray = SArray;
emit this->SArrayChanged();
}

QUrl RouterEngine::Journey::departureStation() const
{
return m_departureStation;
}

void RouterEngine::Journey::setDepartureStation(const QUrl &departureStation)
{
m_departureStation = departureStation;
emit this->departureStationChanged();
}

QUrl RouterEngine::Journey::arrivalStation() const
{
return m_arrivalStation;
}

void RouterEngine::Journey::setArrivalStation(const QUrl &arrivalStation)
{
m_arrivalStation = arrivalStation;
emit this->arrivalStationChanged();
}

quint16 RouterEngine::Journey::maxTransfers() const
{
return m_maxTransfers;
}

void RouterEngine::Journey::setMaxTransfers(const quint16 &maxTransfers)
{
m_maxTransfers = maxTransfers;
emit this->maxTransfersChanged();
}

QUrl RouterEngine::Journey::hydraPrevious() const
{
return m_hydraPrevious;
}

void RouterEngine::Journey::setHydraPrevious(const QUrl &hydraPrevious)
{
// New hydraPrevious URI is earlier in time?
if (hydraPrevious.hasQuery() && this->hydraPrevious().hasQuery()) {
QUrlQuery queryNewHydraPrevious = QUrlQuery(hydraPrevious.query());
QUrlQuery queryOldHydraPrevious = QUrlQuery(this->hydraPrevious().query());
QDateTime timeNewHydraPrevious = QDateTime::fromString(
queryNewHydraPrevious.queryItemValue("departureTime"), Qt::ISODate);
QDateTime timeOldHydraPrevious = QDateTime::fromString(
queryOldHydraPrevious.queryItemValue("departureTime"), Qt::ISODate);
// Only accept URI that's earlier in time
if (timeNewHydraPrevious < timeOldHydraPrevious) {
m_hydraPrevious = hydraPrevious;
emit this->hydraPreviousChanged();
}
}
// Current hydraPrevious is still empty, setting it to the received hydraPrevious
else {
m_hydraPrevious = hydraPrevious;
emit this->hydraPreviousChanged();
}
}

QUrl RouterEngine::Journey::hydraNext() const
{
return m_hydraNext;
}

void RouterEngine::Journey::setHydraNext(const QUrl &hydraNext)
{
// New hydraNext URI is further in time?
if (hydraNext.hasQuery() && this->hydraNext().isValid()) {
QUrlQuery queryNewHydraNext = QUrlQuery(hydraNext.query());
QUrlQuery queryOldHydraNext = QUrlQuery(this->hydraNext().query());
QDateTime timeNewHydraNext = QDateTime::fromString(
queryNewHydraNext.queryItemValue("departureTime"), Qt::ISODate);
QDateTime timeOldHydraNext = QDateTime::fromString(
queryOldHydraNext.queryItemValue("departureTime"), Qt::ISODate);

// Only accept URI that's later in time
if (timeNewHydraNext > timeOldHydraNext) {
m_hydraNext = hydraNext;
emit this->hydraNextChanged();
}
}
// Current hydraNext is still empty, setting it to the received hydraNext
else {
m_hydraNext = hydraNext;
emit this->hydraNextChanged();
}
}

QDateTime RouterEngine::Journey::arrivalTime() const
{
return m_arrivalTime;
}

void RouterEngine::Journey::setArrivalTime(const QDateTime &arrivalTime)
{
m_arrivalTime = arrivalTime;
}

QDateTime RouterEngine::Journey::departureTime() const
{
return m_departureTime;
}

void RouterEngine::Journey::setDepartureTime(const QDateTime &departureTime)
{
m_departureTime = departureTime;
}
71 changes: 71 additions & 0 deletions src/engines/router/routernulljourney.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
/*
* This file is part of QRail.
*
* QRail is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* QRail is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with QRail. If not, see <http://www.gnu.org/licenses/>.
*/
#include "engines/router/routernulljourney.h"
using namespace QRail;
RouterEngine::NullJourney *RouterEngine::NullJourney::m_instance = nullptr;

/**
* @file routernulljourney.cpp
* @author Dylan Van Assche
* @date 07 Oct 2018
* @brief Gets a RouterEngine::NullJourney instance
* @return RouterEngine::NullJourney *journey
* @package RouterEngine
* @public
* Constructs a RouterEngine::NullJourney if none exists and returns the instance.
*/
RouterEngine::NullJourney::NullJourney(
const QList<QRail::RouterEngine::Route *> &routes,
const QMap<QUrl, QRail::RouterEngine::TrainProfile *> &TArray,
const QMap<QUrl, QList<QRail::RouterEngine::StationStopProfile *> > &SArray,
const QUrl &departureStation,
const QUrl &arrivalStation,
const QDateTime &departureTime,
const QDateTime &arrivalTime,
const quint16 &maxTransfers,
QObject *parent) : RouterEngine::Journey(routes, TArray, SArray, departureStation, arrivalStation,
departureTime, arrivalTime, maxTransfers, parent)
{

}

/**
* @file routernulljourney.cpp
* @author Dylan Van Assche
* @date 07 Oct 2018
* @brief Gets a RouterEngine::NullJourney instance
* @return RouterEngine::NullJourney *journey
* @package RouterEngine
* @public
* Constructs a RouterEngine::NullJourney if none exists and returns the instance.
*/
RouterEngine::NullJourney *QRail::RouterEngine::NullJourney::getInstance()
{
// Singleton pattern
if (m_instance == nullptr) {
qDebug() << "Generating new NullJourney";
m_instance = new NullJourney(QList<QRail::RouterEngine::Route *>(),
QMap<QUrl, QRail::RouterEngine::TrainProfile *>(),
QMap<QUrl, QList<QRail::RouterEngine::StationStopProfile *> >(),
QUrl(),
QUrl(),
QDateTime(),
QDateTime(),
0);
}
return m_instance;
}
Loading