AppleSAWS/src/memory/memorycell.cpp

66 lines
1.0 KiB
C++

#include "memorycell.h"
MemoryCell::MemoryCell(quint8 val)
{
m_value = val;
}
MemoryCell::~MemoryCell()
{
auto keys = m_roles.keys();
foreach (auto key, keys)
{
delete (m_roles.take(key));
}
}
bool MemoryCell::setRole(MemRole *role)
{
if (!role) {
qWarning("No role given!");
return false;
}
if (hasRole(role->id()))
{
qWarning("Address already has this role.");
return false;
}
m_roles.insert(role->id(),role);
role->setParent(this);
return true;
}
MemRole *MemoryCell::getRole(int id)
{
if (hasRole(id))
{
return m_roles[id];
}
return nullptr;
}
bool MemoryCell::hasRole(int id) const
{
return m_roles.contains(id);
}
bool MemoryCell::removeRole(int id)
{
if (hasRole(id))
{
m_roles.remove(id);
return true;
}
return false;
}
QList<MemRole *> MemoryCell::getAllRoles()
{
return m_roles.values();
}