Orion
high-rate readout
regmem.hpp
1 
5 #pragma once
6 
7 #include <cstdint>
8 
9 namespace itk {
10 
16 template<typename T>
17 class RegMem {
18 public:
19  using reg_t = T;
20 
22  virtual ~RegMem() = default;
23 
27  virtual reg_t get_mem(uint16_t addr) const = 0;
28 
32  virtual void set_mem(uint16_t addr, reg_t val) = 0;
33 
39  virtual reg_t get_mem_bits(uint16_t addr, uint8_t low, uint8_t num) const = 0;
40 
46  virtual void set_mem_bits(uint16_t addr, uint8_t low, uint8_t num, reg_t val) = 0;
47 
49  virtual void reset() = 0;
50 
51 }; // RegMem
52 
53 } // itk
virtual void set_mem_bits(uint16_t addr, uint8_t low, uint8_t num, reg_t val)=0
Set bits to memory.
virtual void set_mem(uint16_t addr, reg_t val)=0
Set a value into memory.
virtual reg_t get_mem(uint16_t addr) const =0
Get a value from memory.
virtual reg_t get_mem_bits(uint16_t addr, uint8_t low, uint8_t num) const =0
Get bits from memory.
virtual ~RegMem()=default
Default destructor.
virtual void reset()=0
Reset memory.