finish rewrite, builds fully

This commit is contained in:
Lion Kortlepel
2021-02-17 00:46:18 +01:00
committed by Anonymous275
parent bf74b1ae32
commit d360403c56
16 changed files with 971 additions and 111 deletions

View File

@@ -1,13 +1,16 @@
#pragma once
#include "IThreaded.h"
#include "RWMutex.h"
#include <functional>
#include <memory>
#include <mutex>
#include <unordered_set>
#include "RWMutex.h"
class TClient;
class TUDPServer;
class TTCPServer;
class TPPSMonitor;
class TServer final {
public:
@@ -17,10 +20,16 @@ public:
std::weak_ptr<TClient> InsertNewClient();
void RemoveClient(std::weak_ptr<TClient>);
// in Fn, return true to continue, return false to break
void ForEachClient(const std::function<bool(std::weak_ptr<TClient>)>& Fn);
size_t ClientCount() const;
static void GlobalParser(std::weak_ptr<TClient> Client, std::string Packet, TPPSMonitor& PPSMonitor, TUDPServer& UDPServer, TTCPServer& TCPServer);
static void HandleEvent(TClient& c, const std::string& Data);
private:
TClientSet mClients;
mutable RWMutex mClientsMutex;
static void ParseVehicle(TClient& c, const std::string& Pckt, TTCPServer& TCPServer, TUDPServer& UDPServer);
static void Apply(TClient& c, int VID, const std::string& pckt);
};