register finalization
This commit is contained in:
@@ -5,17 +5,15 @@
|
||||
#include "Register.h"
|
||||
|
||||
|
||||
Register* Register::getInstance() {
|
||||
if (m_instance == nullptr) {
|
||||
m_instance = new Register();
|
||||
} else {
|
||||
m_instance = new Register();
|
||||
}
|
||||
return m_instance;
|
||||
Register& Register::getInstance() {
|
||||
static Register instance;
|
||||
return 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
|
||||
#define REGISTER_H
|
||||
|
||||
/// Eine Registerklasse als Singleton implementiert.
|
||||
/// Als Speicher (Registers) wird ein int Array genutzt.
|
||||
|
||||
|
||||
class Register {
|
||||
@@ -12,19 +14,36 @@ class Register {
|
||||
private:
|
||||
Register() = default;
|
||||
|
||||
/// Singleton instance
|
||||
static Register *m_instance;
|
||||
/// "Echter" Register Speicher
|
||||
int m_registers[32];
|
||||
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user