3 #ifndef GRAIL_SYNCHRONIZED_ENTITY_CONTAINER_H
4 #define GRAIL_SYNCHRONIZED_ENTITY_CONTAINER_H
25 const std::pair<std::shared_ptr<AIEntity>,
int> operator [](std::size_t index);
27 void SetData(
const std::vector<std::pair<std::shared_ptr<AIEntity>,
int>>& newData);
29 void MarkDone(std::size_t index);
30 ProcessingStatus GetStatus(std::size_t index);
32 bool IsEntityPriorityValid(std::size_t index);
33 int GetCurrentPriority();
36 void SetNextPriority();
37 void MarkDoneNonBlocking(std::size_t index);
39 std::vector<std::pair<std::shared_ptr<AIEntity>,
int>> data{};
40 std::size_t dataDone{};
41 std::size_t priorityDone{};
44 int lowestPriority = {std::numeric_limits<int>::max()};
45 int highestPriority = {std::numeric_limits<int>::min()};
46 int currentPriority = {0};
47 std::map<int, std::size_t> entitiesPerPriority{};
51 #endif //GRAIL_SYNCHRONIZED_ENTITY_CONTAINER_H