Modified DynLib/PluginManager interface

Former-commit-id: 2dae56cad852a46c9bac828cc7775a4da42c96cf
This commit is contained in:
Lynix
2014-01-05 15:30:27 +01:00
parent 3625713914
commit 3dd8b8fce1
6 changed files with 30 additions and 34 deletions

View File

@@ -16,8 +16,7 @@
#include <Nazara/Core/Debug.hpp>
NzDynLib::NzDynLib(const NzString& libraryPath) :
m_path(libraryPath),
NzDynLib::NzDynLib() :
m_impl(nullptr)
{
}
@@ -46,17 +45,22 @@ NzDynLibFunc NzDynLib::GetSymbol(const NzString& symbol) const
}
#endif
return m_impl->GetSymbol(symbol);
return m_impl->GetSymbol(symbol, &m_lastError);
}
bool NzDynLib::Load()
bool NzDynLib::IsLoaded() const
{
return m_impl != nullptr;
}
bool NzDynLib::Load(const NzString& libraryPath, bool appendExtension)
{
NazaraLock(m_mutex)
Unload();
m_impl = new NzDynLibImpl(this);
if (!m_impl->Load(m_path))
if (!m_impl->Load(libraryPath, appendExtension, &m_lastError))
{
delete m_impl;
m_impl = nullptr;
@@ -78,10 +82,3 @@ void NzDynLib::Unload()
m_impl = nullptr;
}
}
void NzDynLib::SetLastError(const NzString& error)
{
NazaraLock(m_mutex)
m_lastError = error;
}