Files
SimCore/include/SimCore/IdentifierMaker.hpp
2023-01-17 10:28:05 +01:00

38 lines
690 B
C++

#pragma once
#include <SimCore/SimCore.hpp>
#include <condition_variable>
#include <cstddef>
#include <list>
#include <SimCore/Identifier.hpp>
#include <memory>
#include <mutex>
namespace SimCore {
class IdentifierMaker{
public:
IdentifierMaker();
std::shared_ptr<SimCore::Identifier> getNewIdentifier(std::uint32_t parent,SimCore::ObjectSource);
bool isInList(std::shared_ptr<SimCore::Identifier>);
size_t size();
private:
std::list<std::shared_ptr<SimCore::Identifier>> IDList_;
bool ObjectSource_;
mutable std::mutex mx_;
std::condition_variable c;
};
}