Documentation for Core
Former-commit-id: d0d4a575149b9f3e70e07b3a815e669d6a79065f
This commit is contained in:
parent
8325db8037
commit
0a4381a95b
|
|
@ -47,6 +47,16 @@ namespace Nz
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \class Nz::Initializer<Args...>
|
||||||
|
* \brief Core class that represents a module initializer
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Constructs a Initializer object with a boolean
|
||||||
|
*
|
||||||
|
* \param initialize Initialize the module
|
||||||
|
*/
|
||||||
|
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
Initializer<Args...>::Initializer(bool initialize) :
|
Initializer<Args...>::Initializer(bool initialize) :
|
||||||
|
|
@ -56,12 +66,24 @@ namespace Nz
|
||||||
Initialize();
|
Initialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Destructs the object and call Uninitialize
|
||||||
|
*
|
||||||
|
* \see Uninitialize
|
||||||
|
*/
|
||||||
|
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
Initializer<Args...>::~Initializer()
|
Initializer<Args...>::~Initializer()
|
||||||
{
|
{
|
||||||
Uninitialize();
|
Uninitialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Initialize the module
|
||||||
|
*
|
||||||
|
* \see Uninitialize
|
||||||
|
*/
|
||||||
|
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
bool Initializer<Args...>::Initialize()
|
bool Initializer<Args...>::Initialize()
|
||||||
{
|
{
|
||||||
|
|
@ -71,12 +93,23 @@ namespace Nz
|
||||||
return m_initialized;
|
return m_initialized;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Checks whether the module is initialized
|
||||||
|
* \return true if initialized
|
||||||
|
*/
|
||||||
|
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
bool Initializer<Args...>::IsInitialized() const
|
bool Initializer<Args...>::IsInitialized() const
|
||||||
{
|
{
|
||||||
return m_initialized;
|
return m_initialized;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Uninitialize the module
|
||||||
|
*
|
||||||
|
* \see Initialize
|
||||||
|
*/
|
||||||
|
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
void Initializer<Args...>::Uninitialize()
|
void Initializer<Args...>::Uninitialize()
|
||||||
{
|
{
|
||||||
|
|
@ -84,6 +117,11 @@ namespace Nz
|
||||||
Detail::Initializer<Args...>::Uninit();
|
Detail::Initializer<Args...>::Uninit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Converts the initializer to boolean
|
||||||
|
* \return true if initialized
|
||||||
|
*/
|
||||||
|
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
Initializer<Args...>::operator bool() const
|
Initializer<Args...>::operator bool() const
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -13,12 +13,24 @@
|
||||||
|
|
||||||
namespace Nz
|
namespace Nz
|
||||||
{
|
{
|
||||||
|
/*!
|
||||||
|
* \class Nz::CoreCore
|
||||||
|
* \brief Core class that represents the module initializer of Core
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Initializes the Core module
|
||||||
|
* \return true if initialization is successful
|
||||||
|
*
|
||||||
|
* \remark Produces a NazaraNotice
|
||||||
|
*/
|
||||||
|
|
||||||
bool Core::Initialize()
|
bool Core::Initialize()
|
||||||
{
|
{
|
||||||
if (s_moduleReferenceCounter > 0)
|
if (s_moduleReferenceCounter > 0)
|
||||||
{
|
{
|
||||||
s_moduleReferenceCounter++;
|
s_moduleReferenceCounter++;
|
||||||
return true; // Déjà initialisé
|
return true; // Already initialized
|
||||||
}
|
}
|
||||||
|
|
||||||
s_moduleReferenceCounter++;
|
s_moduleReferenceCounter++;
|
||||||
|
|
@ -29,23 +41,34 @@ namespace Nz
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Checks whether the module is initialized
|
||||||
|
* \return true if module is initialized
|
||||||
|
*/
|
||||||
|
|
||||||
bool Core::IsInitialized()
|
bool Core::IsInitialized()
|
||||||
{
|
{
|
||||||
return s_moduleReferenceCounter != 0;
|
return s_moduleReferenceCounter != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Uninitializes the Core module
|
||||||
|
*
|
||||||
|
* \remark Produces a NazaraNotice
|
||||||
|
*/
|
||||||
|
|
||||||
void Core::Uninitialize()
|
void Core::Uninitialize()
|
||||||
{
|
{
|
||||||
if (s_moduleReferenceCounter != 1)
|
if (s_moduleReferenceCounter != 1)
|
||||||
{
|
{
|
||||||
// Le module est soit encore utilisé, soit pas initialisé
|
// The module is still in use, or can not be uninitialized
|
||||||
if (s_moduleReferenceCounter > 1)
|
if (s_moduleReferenceCounter > 1)
|
||||||
s_moduleReferenceCounter--;
|
s_moduleReferenceCounter--;
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Libération du module
|
// Free of module
|
||||||
s_moduleReferenceCounter = 0;
|
s_moduleReferenceCounter = 0;
|
||||||
|
|
||||||
HardwareInfo::Uninitialize();
|
HardwareInfo::Uninitialize();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue