20 lines
342 B
C
20 lines
342 B
C
|
#pragma once
|
||
|
|
||
|
#include <cstdint>
|
||
|
|
||
|
class ProvidesSeqCountIF {
|
||
|
public:
|
||
|
virtual ~ProvidesSeqCountIF() = default;
|
||
|
|
||
|
[[nodiscard]] virtual unsigned int bitWidth() const = 0;
|
||
|
|
||
|
virtual uint64_t get() = 0;
|
||
|
virtual void increment() = 0;
|
||
|
|
||
|
virtual uint64_t getAndIncrement() {
|
||
|
uint64_t val = get();
|
||
|
increment();
|
||
|
return val;
|
||
|
}
|
||
|
};
|