#ifndef ATTRIBUTEDMEMORY_H #define ATTRIBUTEDMEMORY_H #include "memorycell.h" class AttributedMemory { public: AttributedMemory(quint16 expectedBottom = 0x0000, quint16 expectedTop = 0xffff); void setExpectedRange(quint16 bottom, quint16 top); quint16 getExpectedBottom() const { return m_expected_bottom; } quint16 getExpectedTop() const; quint16 getExpectedSize() const { return m_expected_top-m_expected_bottom; } bool setValueAt(quint16 address, quint8 withValue, MemRole *andRole = nullptr); quint8 valueAt(quint16 address) const { return m_cells[address].value(); }; bool setRoleAt(quint16 address, MemRole *withRole); bool hasRoleAt(quint16 address, int withId); MemRole *getRoleAt(quint16 address, int withId); QList getAllRolesAt(quint16 address); bool removeRoleAt(quint16 address, int withId); bool replaceRoleAt(quint16 address, MemRole *withRole); QByteArray getAllValues() const; QByteArray getAllValuesInExpectedRange() const; QByteArray getAllValuesInRange(quint16 bottom, quint16 top) const; quint8 at(quint16 address) const { return m_cells[address].value(); } bool addFile(QByteArray data, quint16 start); // From Memory.h. Should be replaced? protected: quint16 m_expected_bottom; quint16 m_expected_top; QList m_cells; }; #endif // ATTRIBUTEDMEMORY_H