/// /// Created by Anonymous275 on 5/8/2020 /// #pragma once #ifdef __WIN32 #include #else #include #define SOCKET int #endif #include "Buffer.h" #include #include #include #include struct VData{ int ID = -1; std::string Data; }; class Client { private: std::set VehicleData; //ID and Data; std::string Name = "Unknown Client"; sockaddr_in UDPADDR; std::string Role; std::string DID; SOCKET TCPSOCK; int Status = 0; int ID = -1; public: void AddNewCar(int ident,const std::string& Data); void SetCarData(int ident,const std::string&Data); void SetName(const std::string& name); void SetRole(const std::string& role); void SetDID(const std::string& did); std::string GetCarData(int ident); void SetUDPAddr(sockaddr_in Addr); std::set GetAllCars(); void SetTCPSock(SOCKET CSock); void SetStatus(int status); void DeleteCar(int ident); sockaddr_in GetUDPAddr(); bool isConnected = false; std::string GetRole(); std::string GetName(); bool isSynced = false; std::string GetDID(); SOCKET GetTCPSock(); void SetID(int ID); int GetOpenCarID(); int GetCarCount(); void ClearCars(); int GetStatus(); Buffer Handler; int GetID(); }; struct ClientInterface{ std::set Clients; void RemoveClient(Client *c){ Clients.erase(c); delete c; c = nullptr; } void AddClient(Client *c){ Clients.insert(c); } int Size(){ return int(Clients.size()); } }; extern ClientInterface* CI;