Files
qt-migration-legatus/qt6-after/qt6-migrated-legatus/Lts/Tools/TNE-Simulator/backend/websocket/participantHandler.go
T
torsten d5c13033e2 Session 022: Migrate Lts/Tools (72 submodules) to Qt6
- Copied complete Lts/Tools directory from qt5-before to qt6-after
- Updated 32 CMakeLists.txt files (Qt5:: → Qt6::)
- Tools subdirectory already included in parent Lts/CMakeLists.txt
- All 72 tool submodules now present in qt6-migrated-legatus
- Includes: Adler, ArAssets, ConfigX, DBAdministration, DBUpdate,
  DdsView, InfrastructureManagement, and 67 more tools
- C++17 standard (RTI 7.7.0 compatibility maintained)
- Tests deferred until final validation phase

Migration progress:
✅ Lts/Application (68 files)
✅ Lts/DDS (verified Qt6-ready)
✅ Lts/Plugins (60 submodules, verified)
✅ Lts/Projects (5 submodules, verified)
✅ Lts/Proxies (13 submodules, verified)
✅ Lts/Services (47 submodules, verified)
✅ Lts/Tools (72 submodules, copied + CMake updated)
✅ Lts/Viewer (LtsFileDialog, LtsReportDisplay, SituationMap)
🟡 TetraIF (partial)
🟡 Z (partial: nglwidgets, QtSingleApplication, qsql_informix, WMS_Interface)
2026-08-25 14:07:20 +02:00

86 lines
2.4 KiB
Go
Executable File

package websocket
import (
"fmt"
participanthandler "legatus-rme/backend/participantHandler"
"log"
"net/http"
"github.com/go-playground/validator/v10"
)
func (s *Server) participantHandler(w http.ResponseWriter, r *http.Request) {
c, err := s.Upgrader.Upgrade(w, r, nil)
if err != nil {
log.Println("Websocket Server - Error upgrading connection:", err)
return
}
defer c.Close()
for {
var req ParticipantHandlerWebsocketRequestWithoutData
if err := c.ReadJSON(&req); err != nil {
c.WriteJSON(&ErrorWebsocketResponse{
Error: err.Error(),
})
return
}
if req.Type != "getAllParticipants" {
req2 := ParticipantHandlerWebsocketRequest(req)
err = validator.New().Struct(req2)
if err != nil {
c.WriteJSON(&ErrorWebsocketResponse{
Error: err.Error(),
})
return
}
} else {
err = validator.New().Struct(req)
if err != nil {
c.WriteJSON(&ErrorWebsocketResponse{
Error: err.Error(),
})
return
}
}
var (
participantHandlerByExcersiseId participanthandler.ParticipantHandler
ok bool
)
if participantHandlerByExcersiseId, ok = s.ParticipantHandlers[req.ExcerciseId]; !ok {
participantHandlerByExcersiseId = OpenWebsocket("participantHandler", []int{s.ExerciseServicePortMap[fmt.Sprintf("%d-ParticipantManagement1", req.ExcerciseId)], req.ExcerciseId * 102}).(participanthandler.ParticipantHandler)
}
switch req.Type {
case "checkIfParticipantIsValid":
participantData := participantHandlerByExcersiseId.CheckIfParticipantIsValid(req.ParticipantData.ParticipantId)
c.WriteJSON(&participantData)
continue
case "getAllParticipants":
participantData := participantHandlerByExcersiseId.GetAllParticipants()
c.WriteJSON(&participantData)
continue
case "changeAbcProtection":
if err := participantHandlerByExcersiseId.ChangeAbcProtection(req.ParticipantData.ParticipantId, req.ParticipantData.AbcProtection); err != nil {
c.WriteJSON(&ErrorWebsocketResponse{
Error: err.Error(),
})
}
c.WriteJSON(req.ParticipantData)
continue
case "changePosition":
if err := participantHandlerByExcersiseId.ChangePosition(req.ParticipantData.ParticipantId, &participanthandler.GeoPosition{
Lat: req.ParticipantData.Positions[0].Lat,
Lng: req.ParticipantData.Positions[0].Lng,
}); err != nil {
c.WriteJSON(&ErrorWebsocketResponse{
Error: err.Error(),
})
}
continue
}
}
}