1940f0c7be
The documentation was previously code-heavy and short on exposition, while focusing almost entirely on the CBOR converters. Prune most of the CBOR code quotes, shuffle some snippet markers, add and remove others and rewrite the main text. Shift focus to the base-class for converters and how it's used by main(). Retain relative focus on the CBOR converters, as they are relatively full-featured hence illustrate more than the others do, and replace the sequence of single-line sections about the others with a section collecting all into a table and saying some general things about them. Pick-to: 6.6 6.5 Task-number: QTBUG-111228 Change-Id: I8d41f25c165eb1a7ba20cb68aee6ab6b2fd050f8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
45 lines
1.2 KiB
C++
45 lines
1.2 KiB
C++
// Copyright (C) 2023 The Qt Company Ltd.
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
|
|
|
#include "converter.h"
|
|
|
|
//! [0]
|
|
Converter::Converter()
|
|
{
|
|
converters().append(this);
|
|
}
|
|
|
|
Converter::~Converter()
|
|
{
|
|
converters().removeAll(this);
|
|
}
|
|
|
|
QList<const Converter *> &Converter::converters()
|
|
{
|
|
Q_CONSTINIT static QList<const Converter *> store;
|
|
return store;
|
|
}
|
|
|
|
const QList<const Converter *> &Converter::allConverters()
|
|
{
|
|
return converters();
|
|
}
|
|
//! [0]
|
|
|
|
// Some virtual methods that Converter classes needn't override, when not relevant:
|
|
Converter::Options Converter::outputOptions() const { return {}; }
|
|
const char *Converter::optionsHelp() const { return nullptr; }
|
|
bool Converter::probeFile(QIODevice *) const { return false; }
|
|
|
|
// The virtual method they should override if they claim to support In:
|
|
QVariant Converter::loadFile(QIODevice *, const Converter *&outputConverter) const
|
|
{
|
|
Q_ASSERT(!directions().testFlag(Converter::Direction::In));
|
|
// For those that don't, this should never be called.
|
|
Q_UNIMPLEMENTED();
|
|
// But every implementation should at least do this:
|
|
if (!outputConverter)
|
|
outputConverter = this;
|
|
return QVariant();
|
|
}
|