Skip to content

Commit

Permalink
use containers for xml_init lists. (#1345)
Browse files Browse the repository at this point in the history
  • Loading branch information
tsteven4 authored Sep 26, 2024
1 parent 950fbd3 commit 48cdbec
Show file tree
Hide file tree
Showing 6 changed files with 53 additions and 52 deletions.
11 changes: 10 additions & 1 deletion gtrnctr.cc
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,20 @@

#define MYNAME "gtc"

const QStringList GtrnctrFormat::gtc_tags_to_ignore = {
"TrainingCenterDatabase",
"CourseFolder",
"Running",
"Biking",
"Other",
"Multisport"
};

void
GtrnctrFormat::rd_init(const QString& fname)
{
xml_reader = new XmlGenericReader;
xml_reader->xml_init(fname, this, gtc_map, nullptr, gtc_tags_to_ignore, nullptr);
xml_reader->xml_init(fname, this, gtc_map, nullptr, gtc_tags_to_ignore);
}

void
Expand Down
12 changes: 2 additions & 10 deletions gtrnctr.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@

#include <QList> // for QList
#include <QString> // for QString
#include <QStringList> // for QStringList
#include <QVector> // for QVector
#include <QXmlStreamAttributes> // for QXmlStreamAttributes

Expand Down Expand Up @@ -73,16 +74,6 @@ class GtrnctrFormat : public Format
static constexpr int kGtcMaxNameLen = 15;
static constexpr const char* gtc_sportlist[] = { "Biking", "Running", "MultiSport", "Other" };

static constexpr const char* gtc_tags_to_ignore[] = {
"TrainingCenterDatabase",
"CourseFolder",
"Running",
"Biking",
"Other",
"Multisport",
nullptr,
};

/* Member Functions */

[[gnu::format(printf, 3, 4)]] void gtc_write_xml(int indent, const char* fmt, ...);
Expand Down Expand Up @@ -124,6 +115,7 @@ class GtrnctrFormat : public Format

/* Data Members */

static const QStringList gtc_tags_to_ignore;
gbfile* ofd{};
int lap_ct = 0;
int lap_s = 0;
Expand Down
13 changes: 13 additions & 0 deletions kml.cc
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,19 @@

#define MYNAME "kml"

const QStringList KmlFormat::kml_tags_to_ignore = {
"kml",
"Document",
"Folder"
};

const QStringList KmlFormat::kml_tags_to_skip = {
"Camera",
"LookAt",
"styleUrl",
"snippet"
};

const QVector<KmlFormat::mt_field_t> KmlFormat::mt_fields_def = {
{ wp_field::igc_enl, "igc_enl", "Engine Noise", "double" },
{ wp_field::igc_tas, "igc_tas", "True Airspd", "double" },
Expand Down
42 changes: 15 additions & 27 deletions kml.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,22 +22,23 @@
#ifndef KML_H_INCLUDED_
#define KML_H_INCLUDED_

#include <bitset> // for bitset
#include <tuple> // for tuple, make_tuple, tie
#include <bitset> // for bitset
#include <tuple> // for tuple, make_tuple, tie

#include <QHash> // for QHash
#include <QList> // for QList
#include <QString> // for QString, QStringLiteral, operator+, operator!=
#include <QVector> // for QVector
#include <QXmlStreamAttributes> // for QXmlStreamAttributes
#include <QHash> // for QHash
#include <QList> // for QList
#include <QString> // for QString, QStringLiteral, operator+, operator!=
#include <QStringList> // for QStringList
#include <QVector> // for QVector
#include <QXmlStreamAttributes> // for QXmlStreamAttributes

#include "defs.h"
#include "format.h"
#include "src/core/datetime.h" // for DateTime
#include "src/core/file.h" // for File
#include "src/core/xmlstreamwriter.h" // for XmlStreamWriter
#include "units.h" // for UnitsFormatter
#include "xmlgeneric.h" // for cb_cdata, cb_end, cb_start, xg_callback, xg_cb_type, xml_deinit, xml_ignore_tags, xml_init, xml_read, xg_tag_mapping
#include "src/core/datetime.h" // for DateTime
#include "src/core/file.h" // for File
#include "src/core/xmlstreamwriter.h" // for XmlStreamWriter
#include "units.h" // for UnitsFormatter
#include "xmlgeneric.h" // for cb_cdata, cb_end, cb_start, xg_callback, xg_cb_type, xml_deinit, xml_ignore_tags, xml_init, xml_read, xg_tag_mapping


class KmlFormat : public Format
Expand Down Expand Up @@ -115,21 +116,6 @@ class KmlFormat : public Format
static constexpr const char* default_precision = "6";
static constexpr int kml_color_limit = 204; /* allowed range [0,255] */

static constexpr const char* kml_tags_to_ignore[] = {
"kml",
"Document",
"Folder",
nullptr
};

static constexpr const char* kml_tags_to_skip[] = {
"Camera",
"LookAt",
"styleUrl",
"snippet",
nullptr
};

/* Member Functions */

void kml_init_color_sequencer(int steps_per_rev);
Expand Down Expand Up @@ -200,6 +186,8 @@ class KmlFormat : public Format

/* Data Members */

static const QStringList kml_tags_to_ignore;
static const QStringList kml_tags_to_skip;
static const QVector<mt_field_t> mt_fields_def;
track_trait_t kml_track_traits;
QHash<const route_head*, track_trait_t> kml_track_traits_hash;
Expand Down
20 changes: 9 additions & 11 deletions xmlgeneric.cc
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@

#include "xmlgeneric.h"

#include <algorithm> // for for_each
#include <utility> // for as_const

#include <QByteArray> // for QByteArray
Expand Down Expand Up @@ -66,7 +67,7 @@ XmlGenericReader::xml_tbl_lookup(const QString& tag, xg_cb_type cb_type)

void
XmlGenericReader::xml_common_init(const QString& fname, const char* encoding,
const char* const* ignorelist, const char* const* skiplist)
const QStringList ignorelist, const QStringList skiplist)
{
rd_fname = fname;

Expand All @@ -80,16 +81,13 @@ XmlGenericReader::xml_common_init(const QString& fname, const char* encoding,
}

xg_shortcut_taglist.clear();
if (ignorelist != nullptr) {
for (; ignorelist && *ignorelist; ++ignorelist) {
xg_shortcut_taglist.insert(QString::fromUtf8(*ignorelist), xg_shortcut::sc_ignore);
}
}
if (skiplist != nullptr) {
for (; skiplist && *skiplist; ++skiplist) {
xg_shortcut_taglist.insert(QString::fromUtf8(*skiplist), xg_shortcut::sc_skip);
}
}
std::for_each(ignorelist.cbegin(), ignorelist.cend(), [this](const QString& tag)->void {
xg_shortcut_taglist.insert(tag, xg_shortcut::sc_ignore);
});

std::for_each(skiplist.cbegin(), skiplist.cend(), [this](const QString& tag)->void {
xg_shortcut_taglist.insert(tag, xg_shortcut::sc_skip);
});
}

XmlGenericReader::xg_shortcut
Expand Down
7 changes: 4 additions & 3 deletions xmlgeneric.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
#include <QList> // for QList
#include <QRegularExpression> // for QRegularExpression
#include <QString> // for QString
#include <QStringList> // for QStringList
#include <QStringView> // for QStringView
#include <QTextCodec> // for QTextCodec
#include <QXmlStreamAttributes> // for QXmlStreamAttributes
Expand Down Expand Up @@ -88,8 +89,8 @@ class XmlGenericReader
template<class MyFormat>
void xml_init(const QString& fname, MyFormat* instance, const QList<xg_fmt_map_entry<MyFormat>>& tbl,
const char* encoding = nullptr,
const char* const* ignorelist = nullptr,
const char* const* skiplist = nullptr)
const QStringList ignorelist = QStringList(),
const QStringList skiplist = QStringList())
{
build_xg_tag_map(instance, tbl);

Expand Down Expand Up @@ -164,7 +165,7 @@ class XmlGenericReader

XgCallbackBase* xml_tbl_lookup(const QString& tag, xg_cb_type cb_type);
void xml_common_init(const QString& fname, const char* encoding,
const char* const* ignorelist, const char* const* skiplist);
const QStringList ignorelist, const QStringList skiplist);
xg_shortcut xml_shortcut(QStringView name);
void xml_run_parser(QXmlStreamReader& reader);

Expand Down

0 comments on commit 48cdbec

Please sign in to comment.