1#ifndef FIXED_SIZE_ARRAY_TRACKER_HPP
2#define FIXED_SIZE_ARRAY_TRACKER_HPP
4#include <unordered_map>
13 void log(
const std::string &message)
const;
17 bool add_metadata(
int id,
unsigned int start,
unsigned int length);
19 std::optional<std::pair<unsigned int, unsigned int>>
get_metadata(
int id)
const;
23 const std::unordered_map<int, std::pair<unsigned int, unsigned int>> &
get_all_metadata()
const;
29 std::unordered_map<int, std::pair<unsigned int, unsigned int>> metadata;
30 std::set<std::pair<unsigned int, unsigned int>> occupied_intervals;
const std::unordered_map< int, std::pair< unsigned int, unsigned int > > & get_all_metadata() const
Definition fixed_size_array_tracker.cpp:117
void log(const std::string &message) const
Definition fixed_size_array_tracker.cpp:8
void compact()
Definition fixed_size_array_tracker.cpp:95
std::optional< std::pair< unsigned int, unsigned int > > get_metadata(int id) const
Definition fixed_size_array_tracker.cpp:87
bool add_metadata(int id, unsigned int start, unsigned int length)
Definition fixed_size_array_tracker.cpp:44
void remove_metadata(int id)
Definition fixed_size_array_tracker.cpp:73
FixedSizeArrayTracker(unsigned int size, bool logging_enabled=false)
Definition fixed_size_array_tracker.cpp:5
friend std::ostream & operator<<(std::ostream &os, const FixedSizeArrayTracker &tracker)
Definition fixed_size_array_tracker.cpp:121
std::optional< unsigned int > find_contiguous_space(unsigned int length)
Definition fixed_size_array_tracker.cpp:25
double get_usage_percentage() const
Definition fixed_size_array_tracker.cpp:16