Merge branch 'main' of github.com:Persson-dev/Blitz
This commit is contained in:
15
include/blitz/common/NonCopyable.h
Normal file
15
include/blitz/common/NonCopyable.h
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
namespace blitz {
|
||||||
|
|
||||||
|
class NonCopyable {
|
||||||
|
public:
|
||||||
|
NonCopyable(const NonCopyable&) = delete;
|
||||||
|
NonCopyable& operator=(const NonCopyable&) = delete;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
NonCopyable() {}
|
||||||
|
~NonCopyable() {}
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace blitz
|
||||||
@@ -81,19 +81,19 @@ struct Vec4 {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
using Vec2uc = Vec2<unsigned int>;
|
using Vec2uc = Vec2<unsigned char>;
|
||||||
using Vec2i = Vec2<int>;
|
using Vec2i = Vec2<int>;
|
||||||
using Vec2u = Vec2<unsigned int>;
|
using Vec2u = Vec2<unsigned int>;
|
||||||
using Vec2f = Vec2<float>;
|
using Vec2f = Vec2<float>;
|
||||||
using Vec2d = Vec2<double>;
|
using Vec2d = Vec2<double>;
|
||||||
|
|
||||||
using Vec3uc = Vec3<unsigned int>;
|
using Vec3uc = Vec3<unsigned char>;
|
||||||
using Vec3i = Vec3<int>;
|
using Vec3i = Vec3<int>;
|
||||||
using Vec3u = Vec3<unsigned int>;
|
using Vec3u = Vec3<unsigned int>;
|
||||||
using Vec3f = Vec3<float>;
|
using Vec3f = Vec3<float>;
|
||||||
using Vec3d = Vec3<double>;
|
using Vec3d = Vec3<double>;
|
||||||
|
|
||||||
using Vec4uc = Vec4<unsigned int>;
|
using Vec4uc = Vec4<unsigned char>;
|
||||||
using Vec4i = Vec4<int>;
|
using Vec4i = Vec4<int>;
|
||||||
using Vec4u = Vec4<unsigned int>;
|
using Vec4u = Vec4<unsigned int>;
|
||||||
using Vec4f = Vec4<float>;
|
using Vec4f = Vec4<float>;
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#define REMOVE_COPY(className) \
|
|
||||||
className(const className&) = delete; \
|
|
||||||
className& operator=(const className&) = delete
|
|
||||||
@@ -16,7 +16,7 @@ namespace network {
|
|||||||
* \class Connexion
|
* \class Connexion
|
||||||
* \brief Represents a network connexion
|
* \brief Represents a network connexion
|
||||||
*/
|
*/
|
||||||
class Connexion : public protocol::PacketHandler {
|
class Connexion : public protocol::PacketHandler, private NonCopyable {
|
||||||
protected:
|
protected:
|
||||||
protocol::PacketDispatcher m_Dispatcher;
|
protocol::PacketDispatcher m_Dispatcher;
|
||||||
|
|
||||||
@@ -72,11 +72,6 @@ class Connexion : public protocol::PacketHandler {
|
|||||||
* \param packet The protocol::Packet to send
|
* \param packet The protocol::Packet to send
|
||||||
*/
|
*/
|
||||||
void SendPacket(const protocol::Packet* packet);
|
void SendPacket(const protocol::Packet* packet);
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Disables Connexion copy
|
|
||||||
*/
|
|
||||||
REMOVE_COPY(Connexion);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace network
|
} // namespace network
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ namespace network {
|
|||||||
* \note This class is meant to be created only once in your program. \n
|
* \note This class is meant to be created only once in your program. \n
|
||||||
* The easiest thing to do is to create an instance of this class at the top of your **main.cpp**.
|
* The easiest thing to do is to create an instance of this class at the top of your **main.cpp**.
|
||||||
*/
|
*/
|
||||||
class NetworkInitializer {
|
class NetworkInitializer : private NonCopyable {
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* \brief Creates the networking context
|
* \brief Creates the networking context
|
||||||
@@ -31,8 +31,6 @@ class NetworkInitializer {
|
|||||||
* \brief Destroys the networking context
|
* \brief Destroys the networking context
|
||||||
*/
|
*/
|
||||||
~NetworkInitializer();
|
~NetworkInitializer();
|
||||||
|
|
||||||
REMOVE_COPY(NetworkInitializer);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace network
|
} // namespace network
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ namespace network {
|
|||||||
* \class TCPListener
|
* \class TCPListener
|
||||||
* \brief Cross platform abstraction of a TCP socket server
|
* \brief Cross platform abstraction of a TCP socket server
|
||||||
*/
|
*/
|
||||||
class TCPListener {
|
class TCPListener : private NonCopyable {
|
||||||
private:
|
private:
|
||||||
SocketHandle m_Handle;
|
SocketHandle m_Handle;
|
||||||
std::uint16_t m_Port;
|
std::uint16_t m_Port;
|
||||||
@@ -79,11 +79,6 @@ class TCPListener {
|
|||||||
int GetMaximumConnections() const {
|
int GetMaximumConnections() const {
|
||||||
return m_MaxConnections;
|
return m_MaxConnections;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Disables TCPListener copy
|
|
||||||
*/
|
|
||||||
REMOVE_COPY(TCPListener);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace network
|
} // namespace network
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "blitz/common/DataBuffer.h"
|
#include "blitz/common/DataBuffer.h"
|
||||||
#include "blitz/misc/ClassEntity.h"
|
#include "blitz/common/NonCopyable.h"
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#include <winsock2.h>
|
#include <winsock2.h>
|
||||||
@@ -40,7 +40,7 @@ typedef int SocketHandle;
|
|||||||
* \class TCPSocket
|
* \class TCPSocket
|
||||||
* \brief Cross platform abstraction of a TCP socket
|
* \brief Cross platform abstraction of a TCP socket
|
||||||
*/
|
*/
|
||||||
class TCPSocket {
|
class TCPSocket : private NonCopyable {
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* \enum Status
|
* \enum Status
|
||||||
@@ -153,11 +153,6 @@ class TCPSocket {
|
|||||||
*/
|
*/
|
||||||
std::size_t Receive(DataBuffer& buffer, std::size_t amount);
|
std::size_t Receive(DataBuffer& buffer, std::size_t amount);
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Disable TCPSocket copy, as it disconnects when destroyed
|
|
||||||
*/
|
|
||||||
REMOVE_COPY(TCPSocket);
|
|
||||||
|
|
||||||
friend class TCPListener;
|
friend class TCPListener;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "blitz/misc/ClassEntity.h"
|
#include "blitz/common/NonCopyable.h"
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
@@ -13,7 +13,7 @@ struct VertexAttribPointer {
|
|||||||
unsigned int m_Offset;
|
unsigned int m_Offset;
|
||||||
};
|
};
|
||||||
|
|
||||||
class ElementBuffer {
|
class ElementBuffer : private NonCopyable {
|
||||||
private:
|
private:
|
||||||
unsigned int m_ID = 0;
|
unsigned int m_ID = 0;
|
||||||
std::size_t m_TriangleCount;
|
std::size_t m_TriangleCount;
|
||||||
@@ -33,11 +33,9 @@ class ElementBuffer {
|
|||||||
std::size_t GetTriangleCount() const {
|
std::size_t GetTriangleCount() const {
|
||||||
return m_TriangleCount;
|
return m_TriangleCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
REMOVE_COPY(ElementBuffer);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class VertexBuffer {
|
class VertexBuffer : private NonCopyable {
|
||||||
private:
|
private:
|
||||||
unsigned int m_ID = 0, m_DataStride;
|
unsigned int m_ID = 0, m_DataStride;
|
||||||
std::vector<VertexAttribPointer> m_VertexAttribs;
|
std::vector<VertexAttribPointer> m_VertexAttribs;
|
||||||
@@ -56,11 +54,9 @@ class VertexBuffer {
|
|||||||
void Unbind() const;
|
void Unbind() const;
|
||||||
void AddVertexAttribPointer(unsigned int index, unsigned int coordinateSize, unsigned int offset);
|
void AddVertexAttribPointer(unsigned int index, unsigned int coordinateSize, unsigned int offset);
|
||||||
void BindVertexAttribs() const;
|
void BindVertexAttribs() const;
|
||||||
|
|
||||||
REMOVE_COPY(VertexBuffer);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class VertexArray {
|
class VertexArray : private NonCopyable {
|
||||||
private:
|
private:
|
||||||
unsigned int m_ID = 0;
|
unsigned int m_ID = 0;
|
||||||
ElementBuffer m_ElementBuffer;
|
ElementBuffer m_ElementBuffer;
|
||||||
@@ -82,8 +78,6 @@ class VertexArray {
|
|||||||
void Bind() const;
|
void Bind() const;
|
||||||
void Unbind() const;
|
void Unbind() const;
|
||||||
|
|
||||||
REMOVE_COPY(VertexArray);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void BindElementArrayBuffer();
|
void BindElementArrayBuffer();
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -49,8 +49,6 @@ class ServerConnexion : public network::Connexion {
|
|||||||
|
|
||||||
virtual bool UpdateSocket();
|
virtual bool UpdateSocket();
|
||||||
|
|
||||||
REMOVE_COPY(ServerConnexion);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void RegisterHandlers();
|
void RegisterHandlers();
|
||||||
void CheckKeepAlive();
|
void CheckKeepAlive();
|
||||||
|
|||||||
@@ -46,13 +46,13 @@ std::string ChatPacket::GetTextColor(Vec3uc color) {
|
|||||||
ss << std::hex << "\\u";
|
ss << std::hex << "\\u";
|
||||||
if (color.r <= 0xF)
|
if (color.r <= 0xF)
|
||||||
ss << 0;
|
ss << 0;
|
||||||
ss << color.r;
|
ss << +color.r;
|
||||||
if (color.g <= 0xF)
|
if (color.g <= 0xF)
|
||||||
ss << 0;
|
ss << 0;
|
||||||
ss << color.g;
|
ss << +color.g;
|
||||||
if (color.b <= 0xF)
|
if (color.b <= 0xF)
|
||||||
ss << 0;
|
ss << 0;
|
||||||
ss << color.b;
|
ss << +color.b;
|
||||||
return ss.str();
|
return ss.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user