#ifndef TOOLS_MEMORY_SIMULATOR_CONTIGUOUS_MEMORY_HOLDER_H_
#define TOOLS_MEMORY_SIMULATOR_CONTIGUOUS_MEMORY_HOLDER_H_
#include <cstddef>
#include <cstdint>
#include "tools/memory/simulator/memory_holder.h"
namespace memory_simulator {
class ContiguousMemoryHolder : public MemoryHolder {
public:
explicit ContiguousMemoryHolder(size_t max_pages);
~ContiguousMemoryHolder() override;
void Allocate() override;
void Read() override;
void Write() override;
private:
const size_t memory_length_;
const uintptr_t memory_;
uint64_t* alloc_position_ = nullptr;
uint64_t* read_position_ = nullptr;
uint64_t* write_position_ = nullptr;
};
}
#endif