ComSquare
MemoryShadow.hpp
Go to the documentation of this file.
1 //
2 // Created by anonymus-raccoon on 1/28/20.
3 //
4 
5 #ifndef COMSQUARE_MEMORYSHADOW_HPP
6 #define COMSQUARE_MEMORYSHADOW_HPP
7 
8 #include <memory>
9 #include "IMemory.hpp"
10 
11 namespace ComSquare::Memory
12 {
13  class MemoryShadow : public IMemory {
14  private:
16  std::shared_ptr<IMemory> _initial;
17  public:
19  explicit MemoryShadow(std::shared_ptr<IMemory> initial, uint24_t start, uint24_t end);
20 
21  static std::shared_ptr<IMemory> createShadow(std::shared_ptr<IMemory> initial, uint24_t start, uint24_t end);
26  uint8_t read(uint24_t addr) override;
31  void write(uint24_t addr, uint8_t data) override;
32  };
33 }
34 
35 #endif //COMSQUARE_MEMORYSHADOW_HPP
ComSquare::Memory::MemoryShadow::read
uint8_t read(uint24_t addr) override
Read from the initial IMemory given.
Definition: MemoryShadow.cpp:22
ComSquare::Memory::MemoryShadow
Definition: MemoryShadow.hpp:13
ComSquare::Memory::MemoryShadow::write
void write(uint24_t addr, uint8_t data) override
Write data to the ram.
Definition: MemoryShadow.cpp:27
ComSquare::Memory::MemoryShadow::createShadow
static std::shared_ptr< IMemory > createShadow(std::shared_ptr< IMemory > initial, uint24_t start, uint24_t end)
Definition: MemoryShadow.cpp:17
ComSquare::Memory::MemoryShadow::_initial
std::shared_ptr< IMemory > _initial
Memory to shadow from.
Definition: MemoryShadow.hpp:16
uint24_t
unsigned uint24_t
Definition: Ints.hpp:8
ComSquare::Memory::IMemory
Common interface implemented by all components mapping memory.
Definition: IMemory.hpp:16
ComSquare::Memory
Definition: IMemory.cpp:8
IMemory.hpp
ComSquare::Memory::MemoryShadow::MemoryShadow
MemoryShadow(std::shared_ptr< IMemory > initial, uint24_t start, uint24_t end)
Create a shadow for the memory given as parameter.
Definition: MemoryShadow.cpp:11