27#include "Fundamentals.h"
60 using VectorType = std::vector<MusxInstance<T>>;
65 : m_document(document), m_partId(partId) {}
73 auto document = m_document.lock();
74 MUSX_ASSERT_IF(!document) {
75 throw std::logic_error(
"Document pointer is no longer valid.");
81 std::weak_ptr<Document> m_document;
119 std::optional<size_t> getIndexForStaff(
StaffCmper staffId)
const;
Represents a document object that encapsulates the entire EnigmaXML structure.
Definition Document.h:67
A container of pooled shared object instances from an ObjectPool.
Definition MusxInstance.h:59
MusxInstanceListBase(const std::weak_ptr< Document > &document, Cmper partId)
Default constructor.
Definition MusxInstance.h:64
Cmper getRequestedPartId() const
Gets the part id that was used to create this list.
Definition MusxInstance.h:68
std::shared_ptr< Document > getDocument() const
Gets the document that was used to create this list.
Definition MusxInstance.h:71
Provides optional per-type extension methods for MusxInstanceList.
Definition MusxInstance.h:96
An array of StaffUsed defines a set of staves in a staff system or in Scroll View.
Definition Others.h:631
std::shared_ptr< const T > MusxInstance
Defines the type of a musx instance stored in a pool.
Definition MusxInstance.h:35
uint16_t Cmper
Enigma "comperator" key type.
Definition Fundamentals.h:55
int16_t StaffCmper
Enigma staff (staffId) Cmper (may be negative when not applicable)
Definition Fundamentals.h:65
std::weak_ptr< const T > MusxInstanceWeak
Defines a weak ptr to the type of a musx instance stored in a pool.
Definition MusxInstance.h:40
object model for musx file (enigmaxml)
Definition BaseClasses.h:36