KItinerary

dosipasfactory.cpp
1/*
2 SPDX-FileCopyrightText: 2025 Volker Krause <vkrause@kde.org>
3 SPDX-License-Identifier: LGPL-2.0-or-later
4*/
5
6#include "dosipasfactory_p.h"
7
8using namespace KItinerary;
9
10QVariant DosipasFactory::decodeDataType(QByteArrayView format, const QByteArray &data)
11{
12 if (auto fcb = decodeFcb(format, data); fcb) {
13 return std::visit([](auto &&fcb) { return QVariant::fromValue(fcb); }, *fcb);
14 }
15
16 // TODO FCD, vendor extensions
17
18 return {};
19}
20
21std::optional<Fcb::UicRailTicketData> DosipasFactory::decodeFcb(QByteArrayView format, const QByteArray &data)
22{
23 if (format == "FCB3") {
24 auto fcb = Fcb::v3::UicRailTicketData(data);
25 return fcb.isValid() ? std::optional<Fcb::UicRailTicketData>(fcb) : std::nullopt;
26 }
27 if (format == "FCB1") {
28 auto fcb = Fcb::v13::UicRailTicketData(data);
29 return fcb.isValid() ? std::optional<Fcb::UicRailTicketData>(fcb) : std::nullopt;
30 }
31
32 return {};
33}
Top-level type for the ERA FCB ticket structure.
Top-level type for the ERA FCB ticket structure.
Classes for reservation/travel data models, data extraction and data augmentation.
Definition berelement.h:17
QVariant fromValue(T &&value)
This file is part of the KDE documentation.
Documentation copyright © 1996-2025 The KDE developers.
Generated on Fri Mar 28 2025 11:59:49 by doxygen 1.13.2 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.