28#include "musx/dom/Fundamentals.h"
60 auto document = m_document.lock();
61 MUSX_ASSERT_IF(!document) {
62 throw std::logic_error(
"Document pointer is no longer valid.");
80 : m_document(document), m_partId(partId) {}
93 const Cmper m_partId{};
104 Cmper getPartId()
const =
delete;
Base for DOM classes that belong to a Document.
Definition DocumentElement.h:103
DocumentElementNoPart(const DocumentWeakPtr &document)
Constructs the document element (with no meaningful associated part)
Definition DocumentElement.h:112
Base for DOM classes that belong to a Document.
Definition DocumentElement.h:46
DocumentPtr getDocument() const
Gets a reference to the Document.
Definition DocumentElement.h:58
DocumentElement(DocumentElement &&) noexcept=default
explicit default move constructor
DocumentElement(const DocumentWeakPtr &document, Cmper partId)
Constructs the document element.
Definition DocumentElement.h:79
DocumentElement(const DocumentElement &)=default
explicit default copy constructor
Cmper getPartId() const
Gets the part id associated with this instance.
Definition DocumentElement.h:70
virtual ~DocumentElement() noexcept(false)=default
Virtual destructor for polymorphic behavior.
DocumentElement & operator=(DocumentElement &&) noexcept
no-op move assignment operator allows subclasses to move their values.
Definition DocumentElement.h:89
constexpr Cmper SCORE_PARTID
The part id of the score.
Definition Fundamentals.h:79
uint16_t Cmper
Enigma "comperator" key type.
Definition Fundamentals.h:55
std::weak_ptr< Document > DocumentWeakPtr
Shared weak Document pointer.
Definition DocumentElement.h:37
std::shared_ptr< Document > DocumentPtr
Shared Document pointer.
Definition DocumentElement.h:35
object model for musx file (enigmaxml)
Definition BaseClasses.h:38