Tidied SyncSafe template class

This commit is contained in:
Nav
2022-04-14 22:58:00 +01:00
parent 8be1446e72
commit 75c28ba803
4 changed files with 24 additions and 35 deletions

View File

@@ -7,7 +7,8 @@ namespace Bloom
using namespace Bloom::Events;
std::set<Events::EventType> EventListener::getRegisteredEventTypes() {
return this->registeredEventTypes.getValue();
auto lock = this->registeredEventTypes.acquireLock();
return this->registeredEventTypes.getReference();
}
void EventListener::registerEvent(SharedGenericEventPointer event) {

View File

@@ -57,11 +57,11 @@ namespace Bloom
template <class EventType>
bool isEventTypeRegistered() {
return this->registeredEventTypes.getReference().contains(EventType::type);
return this->registeredEventTypes.getValue().contains(EventType::type);
}
bool isEventTypeRegistered(Events::EventType eventType) {
return this->registeredEventTypes.getReference().contains(eventType);
return this->registeredEventTypes.getValue().contains(eventType);
};
/**
@@ -76,13 +76,13 @@ namespace Bloom
template<class EventType>
void registerEventType() {
auto registeredEventTypesLock = this->registeredEventTypes.acquireLock();
this->registeredEventTypes.getReference().insert(EventType::type);
this->registeredEventTypes.getValue().insert(EventType::type);
}
template<class EventType>
void deRegisterEventType() {
auto registeredEventTypesLock = this->registeredEventTypes.acquireLock();
this->registeredEventTypes.getReference().erase(EventType::type);
this->registeredEventTypes.getValue().erase(EventType::type);
}
/**
@@ -118,7 +118,7 @@ namespace Bloom
;
auto mappingLock = this->eventTypeToCallbacksMapping.acquireLock();
auto& mapping = this->eventTypeToCallbacksMapping.getReference();
auto& mapping = this->eventTypeToCallbacksMapping.getValue();
mapping[EventType::type].push_back(parentCallback);
this->template registerEventType<EventType>();
@@ -138,7 +138,7 @@ namespace Bloom
{
auto mappingLock = this->eventTypeToCallbacksMapping.acquireLock();
auto& mapping = this->eventTypeToCallbacksMapping.getReference();
auto& mapping = this->eventTypeToCallbacksMapping.getValue();
if (mapping.contains(EventType::type)) {
mapping.at(EventType::type).clear();
@@ -147,11 +147,11 @@ namespace Bloom
{
auto registeredEventTypesLock = this->registeredEventTypes.acquireLock();
this->registeredEventTypes.getReference().erase(EventType::type);
this->registeredEventTypes.getValue().erase(EventType::type);
}
auto queueLock = this->eventQueueByEventType.acquireLock();
auto& eventQueueByType = this->eventQueueByEventType.getReference();
auto& eventQueueByType = this->eventQueueByEventType.getValue();
if (eventQueueByType.contains(EventType::type)) {
eventQueueByType.erase(EventType::type);
@@ -212,7 +212,7 @@ namespace Bloom
ReturnType output = std::nullopt;
auto queueLock = this->eventQueueByEventType.acquireLock();
auto& eventQueueByType = this->eventQueueByEventType.getReference();
auto& eventQueueByType = this->eventQueueByEventType.getValue();
auto eventTypes = std::set<Events::EventType>({EventTypeA::type});
auto eventTypesToDeRegister = std::set<Events::EventType>();
@@ -235,7 +235,7 @@ namespace Bloom
{
auto registeredEventTypesLock = this->registeredEventTypes.acquireLock();
auto& registeredEventTypes = this->registeredEventTypes.getReference();
auto& registeredEventTypes = this->registeredEventTypes.getValue();
for (const auto& eventType : eventTypes) {
if (!registeredEventTypes.contains(eventType)) {
@@ -281,7 +281,7 @@ namespace Bloom
if (!eventTypesToDeRegister.empty()) {
auto registeredEventTypesLock = this->registeredEventTypes.acquireLock();
auto& registeredEventTypes = this->registeredEventTypes.getReference();
auto& registeredEventTypes = this->registeredEventTypes.getValue();
for (const auto& eventType : eventTypesToDeRegister) {
registeredEventTypes.erase(eventType);