Core: Add MovablePtr class

This commit is contained in:
Lynix
2017-09-30 13:57:25 +02:00
parent f95fc332f1
commit 2cd9fa2b7a
29 changed files with 157 additions and 259 deletions

View File

@@ -8,6 +8,7 @@
#define NAZARA_SOCKETPOLLER_HPP
#include <Nazara/Prerequesites.hpp>
#include <Nazara/Core/MovablePtr.hpp>
#include <Nazara/Network/AbstractSocket.hpp>
#include <Nazara/Network/IpAddress.hpp>
@@ -19,7 +20,7 @@ namespace Nz
{
public:
SocketPoller();
inline SocketPoller(SocketPoller&& socketPoller);
SocketPoller(SocketPoller&&) noexcept = default;
~SocketPoller();
void Clear();
@@ -33,10 +34,10 @@ namespace Nz
bool Wait(int msTimeout);
inline SocketPoller& operator=(SocketPoller&& socketPoller);
SocketPoller& operator=(SocketPoller&&) noexcept = default;
private:
SocketPollerImpl* m_impl;
MovablePtr<SocketPollerImpl> m_impl;
};
}

View File

@@ -8,30 +8,6 @@
namespace Nz
{
/*!
* \brief Constructs a SocketPoller object with another one by move semantic
*
* \param socketPoller SocketPoller to move into this
*/
inline SocketPoller::SocketPoller(SocketPoller&& socketPoller) :
m_impl(socketPoller.m_impl)
{
socketPoller.m_impl = nullptr;
}
/*!
* \brief Moves the SocketPoller into this
* \return A reference to this
*
* \param socketPoller SocketPoller to move in this
*/
inline SocketPoller& SocketPoller::operator=(SocketPoller&& socketPoller)
{
m_impl = socketPoller.m_impl;
socketPoller.m_impl = nullptr;
return *this;
}
}
#include <Nazara/Network/DebugOff.hpp>