diff --git a/include/Nazara/Core/Resource.hpp b/include/Nazara/Core/Resource.hpp index e82b33fad..adf0eace2 100644 --- a/include/Nazara/Core/Resource.hpp +++ b/include/Nazara/Core/Resource.hpp @@ -17,7 +17,6 @@ #include #endif -class NzResourceConstListener; class NzResourceListener; class NAZARA_API NzResource @@ -26,7 +25,6 @@ class NAZARA_API NzResource NzResource(bool persistent = true); virtual ~NzResource(); - void AddResourceConstListener(const NzResourceConstListener* listener, int index = 0) const; void AddResourceListener(NzResourceListener* listener, int index = 0) const; void AddResourceReference() const; @@ -34,7 +32,6 @@ class NAZARA_API NzResource bool IsPersistent() const; - void RemoveResourceConstListener(const NzResourceConstListener* listener) const; void RemoveResourceListener(NzResourceListener* listener) const; bool RemoveResourceReference() const; @@ -46,16 +43,13 @@ class NAZARA_API NzResource void NotifyModified(unsigned int code); private: - using ResourceConstListenerMap = std::unordered_map>; using ResourceListenerMap = std::unordered_map>; - void RemoveResourceConstListenerIterator(ResourceConstListenerMap::iterator iterator) const; void RemoveResourceListenerIterator(ResourceListenerMap::iterator iterator) const; NazaraMutexAttrib(m_mutex, mutable) // Je fais précéder le nom par 'resource' pour éviter les éventuels conflits de noms - mutable ResourceConstListenerMap m_resourceConstListeners; mutable ResourceListenerMap m_resourceListeners; std::atomic_bool m_resourcePersistent; mutable std::atomic_uint m_resourceReferenceCount; diff --git a/include/Nazara/Core/ResourceConstListener.hpp b/include/Nazara/Core/ResourceConstListener.hpp deleted file mode 100644 index 7113c3c94..000000000 --- a/include/Nazara/Core/ResourceConstListener.hpp +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (C) 2015 Jérôme Leclercq -// This file is part of the "Nazara Engine - Core module" -// For conditions of distribution and use, see copyright notice in Config.hpp - -#pragma once - -#ifndef NAZARA_RESOURCECONSTLISTENER_HPP -#define NAZARA_RESOURCECONSTLISTENER_HPP - -#include - -class NzResource; - -class NAZARA_API NzResourceConstListener -{ - public: - NzResourceConstListener() = default; - virtual ~NzResourceConstListener(); - - virtual bool OnResourceCreated(const NzResource* resource, int index) const; - virtual bool OnResourceDestroy(const NzResource* resource, int index) const; - virtual bool OnResourceModified(const NzResource* resource, int index, unsigned int code) const; - virtual void OnResourceReleased(const NzResource* resource, int index) const; -}; - -#endif // NAZARA_RESOURCECONSTLISTENER_HPP diff --git a/src/Nazara/Core/Resource.cpp b/src/Nazara/Core/Resource.cpp index fbdaf1853..5610d9d13 100644 --- a/src/Nazara/Core/Resource.cpp +++ b/src/Nazara/Core/Resource.cpp @@ -5,7 +5,6 @@ #include #include #include -#include #include #if NAZARA_CORE_THREADSAFE && NAZARA_THREADSAFETY_RESOURCE @@ -35,19 +34,6 @@ NzResource::~NzResource() #endif } -void NzResource::AddResourceConstListener(const NzResourceConstListener* listener, int index) const -{ - ///DOC: Est ignoré si appelé depuis un évènement - NazaraLock(m_mutex) - - if (!m_resourceListenersLocked) - { - auto pair = m_resourceConstListeners.insert(std::make_pair(listener, std::make_pair(index, 1U))); - if (!pair.second) - pair.first->second.second++; - } -} - void NzResource::AddResourceListener(NzResourceListener* listener, int index) const { ///DOC: Est ignoré si appelé depuis un évènement @@ -76,19 +62,6 @@ bool NzResource::IsPersistent() const return m_resourcePersistent; } -void NzResource::RemoveResourceConstListener(const NzResourceConstListener* listener) const -{ - ///DOC: Est ignoré si appelé depuis un évènement - NazaraLock(m_mutex); - - if (!m_resourceListenersLocked) - { - ResourceConstListenerMap::iterator it = m_resourceConstListeners.find(listener); - if (it != m_resourceConstListeners.end()) - RemoveResourceConstListenerIterator(it); - } -} - void NzResource::RemoveResourceListener(NzResourceListener* listener) const { ///DOC: Est ignoré si appelé depuis un évènement @@ -142,15 +115,6 @@ void NzResource::NotifyCreated() m_resourceListenersLocked = true; - auto constIt = m_resourceConstListeners.begin(); - while (constIt != m_resourceConstListeners.end()) - { - if (!constIt->first->OnResourceCreated(this, constIt->second.first)) - RemoveResourceConstListenerIterator(constIt++); - else - ++constIt; - } - auto it = m_resourceListeners.begin(); while (it != m_resourceListeners.end()) { @@ -169,15 +133,6 @@ void NzResource::NotifyDestroy() m_resourceListenersLocked = true; - auto constIt = m_resourceConstListeners.begin(); - while (constIt != m_resourceConstListeners.end()) - { - if (!constIt->first->OnResourceDestroy(this, constIt->second.first)) - RemoveResourceConstListenerIterator(constIt++); - else - ++constIt; - } - auto it = m_resourceListeners.begin(); while (it != m_resourceListeners.end()) { @@ -196,15 +151,6 @@ void NzResource::NotifyModified(unsigned int code) m_resourceListenersLocked = true; - auto constIt = m_resourceConstListeners.begin(); - while (constIt != m_resourceConstListeners.end()) - { - if (!constIt->first->OnResourceModified(this, constIt->second.first, code)) - RemoveResourceConstListenerIterator(constIt++); - else - ++constIt; - } - auto it = m_resourceListeners.begin(); while (it != m_resourceListeners.end()) { @@ -217,15 +163,6 @@ void NzResource::NotifyModified(unsigned int code) m_resourceListenersLocked = false; } -void NzResource::RemoveResourceConstListenerIterator(ResourceConstListenerMap::iterator iterator) const -{ - unsigned int& referenceCount = iterator->second.second; - if (referenceCount == 1) - m_resourceConstListeners.erase(iterator); - else - referenceCount--; -} - void NzResource::RemoveResourceListenerIterator(ResourceListenerMap::iterator iterator) const { unsigned int& referenceCount = iterator->second.second; diff --git a/src/Nazara/Core/ResourceConstListener.cpp b/src/Nazara/Core/ResourceConstListener.cpp deleted file mode 100644 index ebcbdc0ec..000000000 --- a/src/Nazara/Core/ResourceConstListener.cpp +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright (C) 2014 Jérôme Leclercq -// This file is part of the "Nazara Engine - Core module" -// For conditions of distribution and use, see copyright notice in Config.hpp - -#include -#include - -NzResourceConstListener::~NzResourceConstListener() = default; - -bool NzResourceConstListener::OnResourceCreated(const NzResource* resource, int index) const -{ - NazaraUnused(resource); - NazaraUnused(index); - - return true; -} - -bool NzResourceConstListener::OnResourceDestroy(const NzResource* resource, int index) const -{ - NazaraUnused(resource); - NazaraUnused(index); - - return true; -} - -bool NzResourceConstListener::OnResourceModified(const NzResource* resource, int index, unsigned int code) const -{ - NazaraUnused(resource); - NazaraUnused(index); - NazaraUnused(code); - - return true; -} - -void NzResourceConstListener::OnResourceReleased(const NzResource* resource, int index) const -{ - NazaraUnused(resource); - NazaraUnused(index); -}