Revert "Added ResourceConstListener"
This reverts commit 2492f87ba89bafa180308c60d2470b07e3aac27d [formerly 793b9a8884fb6153d5da152e2cf22659fc7e511b]. Former-commit-id: 05a9dff26921db1e7c1c5b90c0cd50073a839f3c
This commit is contained in:
parent
40db7a7292
commit
c2f3ba00f2
|
|
@ -17,7 +17,6 @@
|
|||
#include <Nazara/Core/ThreadSafetyOff.hpp>
|
||||
#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<const NzResourceConstListener*, std::pair<int, unsigned int>>;
|
||||
using ResourceListenerMap = std::unordered_map<NzResourceListener*, std::pair<int, unsigned int>>;
|
||||
|
||||
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;
|
||||
|
|
|
|||
|
|
@ -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 <Nazara/Prerequesites.hpp>
|
||||
|
||||
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
|
||||
|
|
@ -5,7 +5,6 @@
|
|||
#include <Nazara/Core/Resource.hpp>
|
||||
#include <Nazara/Core/Config.hpp>
|
||||
#include <Nazara/Core/Error.hpp>
|
||||
#include <Nazara/Core/ResourceConstListener.hpp>
|
||||
#include <Nazara/Core/ResourceListener.hpp>
|
||||
|
||||
#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;
|
||||
|
|
|
|||
|
|
@ -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 <Nazara/Core/ResourceConstListener.hpp>
|
||||
#include <Nazara/Core/Debug.hpp>
|
||||
|
||||
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);
|
||||
}
|
||||
Loading…
Reference in New Issue