Some minor updates
This commit is contained in:
parent
9f03f33a23
commit
f127894110
@ -3,6 +3,23 @@
|
||||
#include <any>
|
||||
#include <string>
|
||||
#include <cstddef>
|
||||
#include <chrono>
|
||||
|
||||
#define DEFINE_CONVERTER_ENUM(class, size_type) \
|
||||
namespace ts { \
|
||||
template <> \
|
||||
struct converter<class> { \
|
||||
static constexpr bool supported{true}; \
|
||||
static constexpr bool references{false}; \
|
||||
\
|
||||
static constexpr std::string(*to_string)(const std::any&) = [](const std::any& val) { \
|
||||
return std::to_string(std::any_cast<class>(val)); \
|
||||
}; \
|
||||
static constexpr class(*from_string_view)(const std::string_view&) = [](const std::string_view& val) { \
|
||||
return ((class(*)(const std::string_view&)) ts::converter<size_type>::from_string_view)(val); \
|
||||
}; \
|
||||
}; \
|
||||
}
|
||||
|
||||
namespace ts {
|
||||
typedef long double long_double;
|
||||
@ -17,7 +34,7 @@ namespace ts {
|
||||
static constexpr T(*from_string_view)(const std::string_view&) = nullptr;
|
||||
};
|
||||
|
||||
#define DECLARE_CONVERTER(type, decode, encode, references_) \
|
||||
#define DECLARE_CONVERTER(type, decode, encode, references_) \
|
||||
template <> \
|
||||
struct converter<type> { \
|
||||
static constexpr bool supported{true}; \
|
||||
@ -27,11 +44,11 @@ namespace ts {
|
||||
static constexpr type(*from_string_view)(const std::string_view&) = decode; \
|
||||
};
|
||||
|
||||
#define CONVERTER_METHOD_DECODE(type, name) type name(const std::string_view& str)
|
||||
#define CONVERTER_METHOD_ENCODE(type, name) std::string name(const std::any& value)
|
||||
#define CONVERTER_METHOD_DECODE(type, name) type name(const std::string_view& str)
|
||||
#define CONVERTER_METHOD_ENCODE(type, name) std::string name(const std::any& value)
|
||||
|
||||
/* helper for primitive types */
|
||||
#define CONVERTER_PRIMITIVE(type, references) \
|
||||
#define CONVERTER_PRIMITIVE(type, references) \
|
||||
namespace impl { \
|
||||
CONVERTER_METHOD_DECODE(type, converter_ ##type ##_decode); \
|
||||
CONVERTER_METHOD_ENCODE(type, converter_ ##type ##_encode); \
|
||||
@ -68,27 +85,21 @@ namespace ts {
|
||||
template <int length>
|
||||
struct converter<char[length]> {
|
||||
using type = char[length];
|
||||
static constexpr bool supported = true;
|
||||
static constexpr bool supported{true};
|
||||
|
||||
static constexpr std::string(*to_string)(const std::any&) = [](const std::any& value) { return std::string(std::any_cast<const char*>(value), length - 1); };
|
||||
};
|
||||
|
||||
#undef CONVERTER_PRIMITIVE
|
||||
}
|
||||
/* We're not enabling this since we don't transport the unit
|
||||
template <typename Rep, typename Period>
|
||||
struct converter<std::chrono::duration<Rep, Period>> {
|
||||
using type = std::chrono::duration<Rep, Period>;
|
||||
static constexpr bool supported{true};
|
||||
|
||||
#define DEFINE_CONVERTER_ENUM(class, size_type) \
|
||||
namespace ts { \
|
||||
template <> \
|
||||
struct converter<class> { \
|
||||
static constexpr bool supported{true}; \
|
||||
static constexpr bool references{false}; \
|
||||
\
|
||||
static constexpr std::string(*to_string)(const std::any&) = [](const std::any& val) { \
|
||||
return std::to_string(std::any_cast<class>(val)); \
|
||||
}; \
|
||||
static constexpr class(*from_string_view)(const std::string_view&) = [](const std::string_view& val) { \
|
||||
return ((class(*)(const std::string_view&)) ts::converter<size_type>::from_string_view)(val); \
|
||||
}; \
|
||||
}; \
|
||||
static constexpr std::string(*to_string)(const std::any&) = [](const std::any& value) { return std::to_string(std::any_cast<type>(value)); };
|
||||
}
|
||||
*/
|
||||
|
||||
#undef CONVERTER_PRIMITIVE
|
||||
}
|
||||
/* DO NOT REMOVE ME (NL warning) */
|
@ -84,7 +84,7 @@ namespace ts {
|
||||
/**
|
||||
* Helper class for tasks which could be executed multiple times.
|
||||
* It will avoid execution stacking while the task is executing.
|
||||
* The task will never be executed twice only sequential.
|
||||
* The task will never be executed twice, only sequential.
|
||||
* Note: If the `multi_shot_task` handle gets deleted no enqueued tasks will be executed.
|
||||
*/
|
||||
struct multi_shot_task {
|
||||
|
@ -6,7 +6,6 @@
|
||||
#include <mutex>
|
||||
#include "./Packet.h"
|
||||
|
||||
#define DEBUG_ACKNOWLEDGE
|
||||
namespace ts::connection {
|
||||
class AcknowledgeManager {
|
||||
public:
|
||||
|
@ -16,11 +16,9 @@ namespace ts::connection {
|
||||
|
||||
void reset();
|
||||
|
||||
//TeamSpeak old
|
||||
bool setupSharedSecret(const std::string& /* alpha */, const std::string& /* beta */, ecc_key* /* remote_public_key */, ecc_key* /* own_private_key */, std::string &/* error */);
|
||||
bool setupSharedSecret(const std::string& /* alpha */, const std::string& /* beta */, const std::string& /* shared_key */, std::string &/* error */);
|
||||
|
||||
//TeamSpeak new
|
||||
bool setupSharedSecretNew(const std::string& alpha, const std::string& beta, const char privateKey[32], const char publicKey[32]);
|
||||
|
||||
bool encrypt(
|
||||
|
@ -10,18 +10,15 @@
|
||||
|
||||
namespace ts::protocol {
|
||||
enum PacketType : uint8_t {
|
||||
VOICE = 0x00,
|
||||
VOICE_WHISPER = 0x01,
|
||||
COMMAND = 0x02,
|
||||
COMMAND_LOW = 0x03,
|
||||
PING = 0x04,
|
||||
PONG = 0x05,
|
||||
ACK = 0x06,
|
||||
ACK_LOW = 0x07,
|
||||
INIT1 = 0x08,
|
||||
|
||||
PACKET_MAX = INIT1,
|
||||
UNDEFINED = 0xFF
|
||||
VOICE = 0x00,
|
||||
VOICE_WHISPER = 0x01,
|
||||
COMMAND = 0x02,
|
||||
COMMAND_LOW = 0x03,
|
||||
PING = 0x04,
|
||||
PONG = 0x05,
|
||||
ACK = 0x06,
|
||||
ACK_LOW = 0x07,
|
||||
INIT1 = 0x08,
|
||||
};
|
||||
|
||||
class PacketIdManager {
|
||||
|
Loading…
Reference in New Issue
Block a user