refactoring message

This commit is contained in:
2025-11-10 10:43:13 +01:00
parent 598f1262d7
commit f064794499
13 changed files with 1968 additions and 1626 deletions
+24 -23
View File
@@ -19,12 +19,13 @@
#include "SPITPlayer.h"
#include "SPITSocket.h"
#include "SPITType.h"
#include "SPIT_Message.h"
#include "spit_message.hpp"
#include "SpitRepo.hpp"
#include <memory>
#include <vector>
using namespace std;
using namespace spit;
class SPIT_Client : I_SAD_Client {
@@ -112,7 +113,7 @@ class SPIT_Client : I_SAD_Client {
uint8_t m_MessageNumber_Send{1};
int m_MessageNumber_Received{-1}; // set to -1 because the first received message will set the number (1..255)
vector<unique_ptr<SPIT_Message>> m_OvertakingSPIT_Messages;
vector<unique_ptr<Message>> m_OvertakingSPIT_Messages;
// Server's info filled by parseConnectAnswer
string m_ServerID{};
@@ -173,7 +174,7 @@ class SPIT_Client : I_SAD_Client {
// Reconnect to the server when connection is lost see eventConnectionStatus and eventServerDetected
bool _doReconnect{}; // true = on eventServerDetected connect to the server identified by m_ServerID
public:
int sendSPITMessage(SPIT_Message::OPPart & spitMessageOPPart);
int sendSPITMessage(Message::OPPart & spitMessageOPPart);
//--------------- ServerAutoDetection SAD ---------------
public:
@@ -209,13 +210,13 @@ class SPIT_Client : I_SAD_Client {
private:
void disconnectInternal(Connection p_Cause);
void resetMessageNumberReceived();
void parseSPIT_Message(unique_ptr<SPIT_Message> p_SPITMessage);
void checkParseSPIT_Message(unique_ptr<SPIT_Message> p_SPITMessage);
void addOvertakingSPIT_Message(unique_ptr<SPIT_Message> p_SPIT_Message);
void parseConnectAnswer(SPIT_Message::ConnectAnswer &p_ConnectAnswer);
void parseDisconnect(SPIT_Message::Disconnect &p_Disconnect);
void parseWatchdog(SPIT_Message::Watchdog &p_Watchdog);
void parseWatchdogAnswer(SPIT_Message::WatchdogAnswer &p_WatchdogAnswer);
void parseSPIT_Message(unique_ptr<Message> p_SPITMessage);
void checkParseSPIT_Message(unique_ptr<Message> p_SPITMessage);
void addOvertakingSPIT_Message(unique_ptr<Message> p_SPIT_Message);
void parseConnectAnswer(Message::ConnectAnswer &p_ConnectAnswer);
void parseDisconnect(Message::Disconnect &p_Disconnect);
void parseWatchdog(Message::Watchdog &p_Watchdog);
void parseWatchdogAnswer(Message::WatchdogAnswer &p_WatchdogAnswer);
public:
/** Used internally*/
@@ -224,8 +225,8 @@ class SPIT_Client : I_SAD_Client {
void eventWatchdogLost();
//--------------- SPIT Project ---------------
private:
void parseReportSPITProject(SPIT_Message::ReportSPITProject &p_ReportSPITProject);
void parseCloseSPITProject(SPIT_Message::CloseSPITProject &p_CloseSPITProject);
void parseReportSPITProject(Message::ReportProject &p_ReportSPITProject);
void parseCloseSPITProject(Message::CloseProject &p_CloseSPITProject);
public:
/** Returns the SPITServer's project ID - may be the same as the project's name*/
@@ -236,9 +237,9 @@ class SPIT_Client : I_SAD_Client {
int getServerFramesPerSecond();
private:
void parseRequestProjectTransfer(SPIT_Message::RequestProjectTransfer &p_RequestProjectTransfer);
void parseStartProjectTransfer(SPIT_Message::StartProjectTransfer &p_StartProjectTransfer);
void parseEndProjectTransfer(SPIT_Message::EndProjectTransfer &p_EndProjectTransfer);
void parseRequestProjectTransfer(Message::RequestProjectTransfer &p_RequestProjectTransfer);
void parseStartProjectTransfer(Message::StartProjectTransfer &p_StartProjectTransfer);
void parseEndProjectTransfer(Message::EndProjectTransfer &p_EndProjectTransfer);
public:
static void sendProject(SPIT_Client *p_PtrSPIT_Client);
@@ -274,8 +275,8 @@ class SPIT_Client : I_SAD_Client {
private:
// receive SPITTypes
void parseReportSPITType(SPIT_Message::ReportSPITType &p_ReportSPITType);
void parseRemoveSPITType(SPIT_Message::RemoveSPITType &p_RemoveSPITType);
void parseReportSPITType(Message::ReportType &p_ReportSPITType);
void parseRemoveSPITType(Message::RemoveType &p_RemoveSPITType);
int sendSPITTypeInternal(SPITType &p_SPITType);
public:
@@ -297,8 +298,8 @@ class SPIT_Client : I_SAD_Client {
public:
//--------------- SPIT Objects ---------------
private:
void parseReportSPITObject(SPIT_Message::ReportSPITObject &p_ReportSPITObject);
void parseRemoveSPITObject(SPIT_Message::RemoveSPITObject &p_RemoveSPITObject);
void parseReportSPITObject(Message::ReportObject &p_ReportSPITObject);
void parseRemoveSPITObject(Message::RemoveObject &p_RemoveSPITObject);
int sendSPITObjectInternal(SPITObject *ptrSPITObject);
public:
@@ -320,10 +321,10 @@ class SPIT_Client : I_SAD_Client {
public:
//--------------- Play SPIT Objects ---------------
private:
void parsePlaySPITStart(SPIT_Message::PlaySPITStart &p_PlaySPITStart);
void parsePlaySPITObject(SPIT_Message::PlaySPITObject &p_PlaySPITObject);
void parsePlaySPITEnd(SPIT_Message::PlaySPITEnd &p_PlaySPITEnd);
void parseReportPlayStatus(SPIT_Message::ReportPlayStatus &p_ReportPlayStatus);
void parsePlaySPITStart(Message::PlayStart &p_PlaySPITStart);
void parsePlaySPITObject(Message::PlayObject &p_PlaySPITObject);
void parsePlaySPITEnd(Message::PlayEnd &p_PlaySPITEnd);
void parseReportPlayStatus(Message::ReportPlayStatus &p_ReportPlayStatus);
public:
//--------- Remote ----------