/** * Helper Class for handling Entity IdentifierStructs * $Id$ * $HeadURL$ * $Author$ * Created by Malte Diers, NLE, 2019-07-11 */ #pragma once #include #include namespace rpr2 { class EntityIdentifierStruct; } namespace HighLevelArchitecture { class HLACOMMON_EXPORT IdentifierStruct { public: IdentifierStruct() = default; explicit IdentifierStruct(quint16 equipmentNo) : m_siteId(ownSiteId()) , m_applicationId(ownApplicationId()) , m_entityNumber(equipmentNo) {} explicit IdentifierStruct(const rpr2::EntityIdentifierStruct &eis); static IdentifierStruct fromInt64(qint64 value); quint16 siteId() const { return m_siteId; } void setSiteId(quint16 siteId) { m_siteId = siteId; } quint16 applicationId() const { return m_applicationId; } void setApplicationId(quint16 applicationId) { m_applicationId = applicationId; } quint16 entityNumber() const { return m_entityNumber; } void setEntityNumber(quint16 entityNumber) { m_entityNumber = entityNumber; } static quint16 ownSiteId(); static void setOwnSiteId(quint16 siteId) { s_ownSiteId = siteId; } rpr2::EntityIdentifierStruct toEIS() const; QString toString() const; qint64 toInt64() const; bool isOwnElement() const { return siteId() == ownSiteId() && applicationId() == ownApplicationId(); } void makeOwn(); bool isNull() const { return (m_siteId == 0 && m_applicationId == 0 && m_entityNumber == 0); } static quint16 getNextId() { return s_nextId++; } private: quint16 m_siteId = 0; quint16 m_applicationId = 0; quint16 m_entityNumber = 0; static quint16 ownApplicationId(); static quint16 s_nextId; static quint16 s_ownSiteId; }; }