Added with() and withValidation() methods in CLogCategoryList.

This commit is contained in:
Mat Sutcliffe
2019-03-02 18:23:52 +00:00
parent 1cb21f0a4b
commit a366ad8943
15 changed files with 30 additions and 21 deletions

View File

@@ -179,7 +179,7 @@ namespace BlackCore
Q_ASSERT(m_voice);
if (m_debugEnabled) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; }
CAudioDeviceInfoList devices = m_voiceOutputDevice->getOutputDevices();
devices = devices.join(m_voiceInputDevice->getInputDevices());
devices.push_back(m_voiceInputDevice->getInputDevices());
return devices;
}

View File

@@ -68,7 +68,7 @@ namespace BlackCore
CStatusMessageList CDatabaseAuthenticationService::login(const QString &username, const QString &password)
{
CStatusMessageList msgs;
static const CLogCategoryList cats(getLogCategories().join({ CLogCategory::validation() }));
static const CLogCategoryList cats(CLogCategoryList(this).withValidation());
if (!sApp || m_shutdown) { msgs.push_back(CStatusMessage(cats, CStatusMessage::SeverityError, u"Shutdown in progress")); return msgs; }
@@ -137,7 +137,7 @@ namespace BlackCore
return;
}
static const CLogCategoryList cats(CLogCategoryList(this).join({ CLogCategory::validation()}));
static const CLogCategoryList cats(CLogCategoryList(this).withValidation());
const QJsonObject jsonObj(Json::jsonObjectFromString(json));
CAuthenticatedUser user = CAuthenticatedUser::fromDatabaseJson(jsonObj.contains("user") ? jsonObj["user"].toObject() : jsonObj);
CStatusMessageList msgs;

View File

@@ -708,10 +708,10 @@ namespace BlackCore
const CLogCategoryList &CDatabaseReader::getLogCategories()
{
static const BlackMisc::CLogCategoryList cats
(
CThreadedReader::getLogCategories().join({ CLogCategory::swiftDbWebservice(), CLogCategory::webservice() })
);
static const CLogCategoryList cats = CThreadedReader::getLogCategories().with(
{
CLogCategory::swiftDbWebservice(), CLogCategory::webservice()
});
return cats;
}

View File

@@ -24,10 +24,10 @@ namespace BlackCore
{
const CLogCategoryList &CNetworkWatchdog::getLogCategories()
{
static const BlackMisc::CLogCategoryList cats
(
CContinuousWorker::getLogCategories().join({ CLogCategory::swiftDbWebservice(), CLogCategory::webservice(), CLogCategory::network() })
);
static const BlackMisc::CLogCategoryList cats = CContinuousWorker::getLogCategories().with(
{
CLogCategory::swiftDbWebservice(), CLogCategory::webservice(), CLogCategory::network()
});
return cats;
}

View File

@@ -388,7 +388,7 @@ namespace BlackGui
const CLogCategoryList &CDbStashComponent::validationCategories() const
{
static const CLogCategoryList cats(CLogCategoryList(this).join({ CLogCategory::validation()}));
static const CLogCategoryList cats(CLogCategoryList(this).withValidation());
return cats;
}

View File

@@ -27,7 +27,7 @@ namespace BlackMisc
CStatusMessageList CVoiceSetup::validate() const
{
static const CLogCategoryList cats(CLogCategoryList(this).join({ CLogCategory::validation()}));
static const CLogCategoryList cats(CLogCategoryList(this).withValidation());
CStatusMessageList msgs;
if (this->getVatsimUdpVoicePort() < 1 || this->getVatsimUdpVoicePort() > 65535) { msgs.push_back(CStatusMessage(CStatusMessage::SeverityError, u"Invalid voice port")); }
msgs.addCategories(cats);

View File

@@ -262,7 +262,7 @@ namespace BlackMisc
CStatusMessageList CAirlineIcaoCode::validate() const
{
static const CLogCategoryList cats(CLogCategoryList(this).join({ CLogCategory::validation() }));
static const CLogCategoryList cats(CLogCategoryList(this).withValidation());
CStatusMessageList msgs;
if (!hasValidDesignator()) { msgs.push_back(CStatusMessage(cats, CStatusMessage::SeverityError, u"Airline: missing designator")); }
if (!hasValidCountry()) { msgs.push_back(CStatusMessage(cats, CStatusMessage::SeverityError, u"Airline: missing country")); }

View File

@@ -151,7 +151,7 @@ namespace BlackMisc
CStatusMessageList CLivery::validate() const
{
static const CLogCategoryList cats(CLogCategoryList(this).join({ CLogCategory::validation() }));
static const CLogCategoryList cats(CLogCategoryList(this).withValidation());
CStatusMessageList msg;
if (!hasCombinedCode()) { msg.push_back(CStatusMessage(cats, CStatusMessage::SeverityError, u"Livery: missing livery code")); }
if (!hasColorFuselage()) { msg.push_back(CStatusMessage(cats, CStatusMessage::SeverityWarning, u"Livery: no fuselage color")); }

View File

@@ -68,6 +68,15 @@ namespace BlackMisc
template <typename T, typename = std::enable_if_t<std::is_class<T>::value>>
CLogCategoryList(const T *pointer) : CLogCategoryList(fromClass<T>()) { Q_UNUSED(pointer); }
//! Return a copy with another category appended.
CLogCategoryList with(const CLogCategory &other) const { auto copy = *this; copy.push_back(other); return copy; }
//! Return a copy with some other categories appended.
CLogCategoryList with(const CLogCategoryList &other) const { auto copy = *this; copy.push_back(other); return copy; }
//! Return a copy with validation category appended.
CLogCategoryList withValidation() const { return with(CLogCategory::validation()); }
//! Convert each of the categories to a QString and return the result as a QStringList.
QStringList toQStringList() const;

View File

@@ -83,7 +83,7 @@ namespace BlackMisc
CStatusMessageList CAuthenticatedUser::validate() const
{
static const CLogCategoryList cats(CLogCategoryList(this).join({ CLogCategory::validation()}));
static const CLogCategoryList cats(CLogCategoryList(this).withValidation());
CStatusMessageList msgs;
// callsign optional
if (!this->hasValidDbKey()) { msgs.push_back(CStatusMessage(cats, CStatusMessage::SeverityWarning, u"Invalid id"));}

View File

@@ -82,7 +82,7 @@ namespace BlackMisc
CStatusMessageList CFsdSetup::validate() const
{
static const CLogCategoryList cats(CLogCategoryList(this).join({ CLogCategory::validation()}));
static const CLogCategoryList cats(CLogCategoryList(this).withValidation());
CStatusMessageList msgs;
if (this->getTextCodec().isEmpty()) { msgs.push_back(CStatusMessage(CStatusMessage::SeverityError, u"No codec")); }
if (!textCodecNames(true, true).contains(this->getTextCodec())) { msgs.push_back(CStatusMessage(CStatusMessage::SeverityError, u"Unrecognized codec name")); }

View File

@@ -171,7 +171,7 @@ namespace BlackMisc
CStatusMessageList CServer::validate() const
{
static const CLogCategoryList cats(CLogCategoryList(this).join({ CLogCategory::validation()}));
static const CLogCategoryList cats(CLogCategoryList(this).withValidation());
CStatusMessageList msgs;
if (this->getName().isEmpty()) { msgs.push_back(CStatusMessage(CStatusMessage::SeverityError, u"Missing name")); }
if (this->getAddress().isEmpty()) { msgs.push_back(CStatusMessage(CStatusMessage::SeverityError, u"Missing address")); }

View File

@@ -781,7 +781,7 @@ namespace BlackMisc
CStatusMessageList CAircraftModel::validate(bool withNestedObjects) const
{
static const CLogCategoryList cats(CLogCategoryList(this).join({ CLogCategory::validation() }));
static const CLogCategoryList cats(CLogCategoryList(this).withValidation());
CStatusMessageList msgs;
if (!hasModelString()) { msgs.push_back(CStatusMessage(cats, CStatusMessage::SeverityError, u"Model: missing model string (aka key)")); }
if (!hasValidSimulator()) {msgs.push_back(CStatusMessage(cats, CStatusMessage::SeverityError, u"Model: no simulator set")); }

View File

@@ -132,7 +132,7 @@ namespace BlackMisc
CStatusMessageList CDistributor::validate() const
{
static const CLogCategoryList cats(CLogCategoryList(this).join({ CLogCategory::validation() }));
static const CLogCategoryList cats(CLogCategoryList(this).withValidation());
CStatusMessageList msgs;
if (!hasValidDbKey()) { msgs.push_back(CStatusMessage(cats, CStatusMessage::SeverityError, u"Distributor: missing id")); }
if (!hasDescription()) { msgs.push_back(CStatusMessage(cats, CStatusMessage::SeverityError, u"Distributor: missing description")); }

View File

@@ -218,7 +218,7 @@ namespace BlackMisc
newMsgs.append(msg.getMessage());
CStatusMessage::StatusSeverity ms = msg.getSeverity();
if (s < ms) { s = ms; }
cats = cats.join(msg.getCategories());
cats.push_back(msg.getCategories());
}
const CStatusMessage newMsg(cats, s, newMsgs.join(", "));
return newMsg;