register finalization
This commit is contained in:
@@ -5,17 +5,15 @@
|
|||||||
#include "Register.h"
|
#include "Register.h"
|
||||||
|
|
||||||
|
|
||||||
Register* Register::getInstance() {
|
Register& Register::getInstance() {
|
||||||
if (m_instance == nullptr) {
|
static Register instance;
|
||||||
m_instance = new Register();
|
return instance;
|
||||||
} else {
|
|
||||||
m_instance = new Register();
|
|
||||||
}
|
|
||||||
return m_instance;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Register::setRegister() {
|
void Register::setRegister(const int reg, const int value) {
|
||||||
|
m_registers[reg] = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Register::getRegister(int r) {
|
int Register::getRegister(const int reg) const {
|
||||||
|
return m_registers[reg];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,8 @@
|
|||||||
#ifndef REGISTER_H
|
#ifndef REGISTER_H
|
||||||
#define REGISTER_H
|
#define REGISTER_H
|
||||||
|
|
||||||
|
/// Eine Registerklasse als Singleton implementiert.
|
||||||
|
/// Als Speicher (Registers) wird ein int Array genutzt.
|
||||||
|
|
||||||
|
|
||||||
class Register {
|
class Register {
|
||||||
@@ -12,19 +14,36 @@ class Register {
|
|||||||
private:
|
private:
|
||||||
Register() = default;
|
Register() = default;
|
||||||
|
|
||||||
|
/// Singleton instance
|
||||||
static Register *m_instance;
|
static Register *m_instance;
|
||||||
|
/// "Echter" Register Speicher
|
||||||
|
int m_registers[32];
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static Register* getInstance();
|
/// Singleton Logik
|
||||||
|
Register(const Register &) = delete;
|
||||||
|
Register(const Register &&) = delete;
|
||||||
|
Register& operator=(const Register &) = delete;
|
||||||
|
Register& operator=(const Register &&) = delete;
|
||||||
|
~Register() = default;
|
||||||
|
|
||||||
void setRegister();
|
static Register& getInstance();
|
||||||
|
|
||||||
int getRegister(int r);
|
/**
|
||||||
|
* Speichert den angegebenen Wert im angegebenen Register
|
||||||
|
*
|
||||||
|
* @param reg Die Position des Registers
|
||||||
|
* @param value Der Wert für das Register
|
||||||
|
*/
|
||||||
|
void setRegister(int reg, int value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param reg Die Position des Registers
|
||||||
|
* @return Der Wert des Registers
|
||||||
|
*/
|
||||||
|
int getRegister(int reg) const;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
Register *Register::m_instance = nullptr;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif //REGISTER_H
|
#endif //REGISTER_H
|
||||||
|
|||||||
Reference in New Issue
Block a user