diff --git a/src/blackmisc/identifier.cpp b/src/blackmisc/identifier.cpp index e0c1dfd84..28cc0d36e 100644 --- a/src/blackmisc/identifier.cpp +++ b/src/blackmisc/identifier.cpp @@ -32,29 +32,22 @@ namespace BlackMisc m_processId(QCoreApplication::applicationPid()) { } - CIdentifier CIdentifier::anonymous() + CIdentifier::CIdentifier(const QString &name, const QString &machineId, const QString &machineName, + const QString &processName, qint64 processId) : + ITimestampBased(QDateTime::currentMSecsSinceEpoch()), + m_name(name), m_machineIdBase64(machineId), m_machineName(machineName), + m_processName(processName), m_processId(processId) + { } + + const CIdentifier &CIdentifier::anonymous() { - static CIdentifier id; - if (id.m_processId) - { - id.m_processId = 0; - id.m_processName = ""; - id.m_machineName = ""; - id.m_machineIdBase64 = ""; - } + static const CIdentifier id("anonymous", "", "", "", 0); return id; } - CIdentifier CIdentifier::fake() + const CIdentifier &CIdentifier::fake() { - static CIdentifier id; - if (id.m_processId) - { - id.m_processId = 0; - id.m_processName = "fake process"; - id.m_machineName = "fake machine"; - id.m_machineIdBase64 = QByteArrayLiteral("0").repeated(32).toBase64(); - } + static const CIdentifier id("fake", QByteArrayLiteral("0").repeated(32).toBase64(), "fake machine", "fake process", 0); return id; } @@ -101,7 +94,7 @@ namespace BlackMisc bool CIdentifier::isAnonymous() const { - return anonymous() == *this; + return &anonymous() == this || anonymous() == *this; } QString CIdentifier::convertToQString(bool i18n) const diff --git a/src/blackmisc/identifier.h b/src/blackmisc/identifier.h index e75ab7080..96e0bda5a 100644 --- a/src/blackmisc/identifier.h +++ b/src/blackmisc/identifier.h @@ -53,10 +53,10 @@ namespace BlackMisc CIdentifier(const QString &name = QString()); //! Returns an anonymous identifier. - static CIdentifier anonymous(); + static const CIdentifier &anonymous(); //! Returns a fake identifier. - static CIdentifier fake(); + static const CIdentifier &fake(); //! Produces a UUID generated from the identifier. QUuid toUuid() const; @@ -110,6 +110,10 @@ namespace BlackMisc void setPropertyByIndex(const BlackMisc::CPropertyIndex &index, const CVariant &variant); private: + //! Constructor. + CIdentifier(const QString &name, const QString &machineId, const QString &machineName, + const QString &processName, qint64 processId = 0); + QString m_name; //!< object name QString m_machineIdBase64; //!< base 64 encoded machine id QString m_machineName; //!< human readable machine name