Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrTooEarlyForStateAssociation = fmt.Errorf("too early for state association")
ErrTooEarlyForStateAssociation is returned when state data arrives before entity is registered
Functions ¶
This section is empty.
Types ¶
type Dependencies ¶
type Dependencies struct {
DB *gorm.DB
EntityCache *cache.EntityCache
MarkerCache *cache.MarkerCache
LogManager *logging.SlogManager
HandlerService HandlerService
IsDatabaseValid func() bool
ShouldSaveLocal func() bool
DBInsertsPaused func() bool
}
Dependencies holds all dependencies for the worker manager
type HandlerService ¶
type HandlerService interface {
LogNewSoldier(args []string) (model.Soldier, error)
LogNewVehicle(args []string) (model.Vehicle, error)
LogSoldierState(args []string) (model.SoldierState, error)
LogVehicleState(args []string) (model.VehicleState, error)
LogFiredEvent(args []string) (model.FiredEvent, error)
LogProjectileEvent(args []string) (model.ProjectileEvent, error)
LogGeneralEvent(args []string) (model.GeneralEvent, error)
LogHitEvent(args []string) (model.HitEvent, error)
LogKillEvent(args []string) (model.KillEvent, error)
LogChatEvent(args []string) (model.ChatEvent, error)
LogRadioEvent(args []string) (model.RadioEvent, error)
LogFpsEvent(args []string) (model.ServerFpsEvent, error)
LogTimeState(args []string) (model.TimeState, error)
LogAce3DeathEvent(args []string) (model.Ace3DeathEvent, error)
LogAce3UnconsciousEvent(args []string) (model.Ace3UnconsciousEvent, error)
LogMarkerCreate(args []string) (model.Marker, error)
LogMarkerMove(args []string) (model.MarkerState, error)
LogMarkerDelete(args []string) (string, uint, error)
GetMissionContext() *handlers.MissionContext
}
HandlerService defines the interface for event handlers
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager manages worker goroutines
func NewManager ¶
func NewManager(deps Dependencies, queues *Queues) *Manager
NewManager creates a new worker manager
func (*Manager) GetLastDBWriteDuration ¶
GetLastDBWriteDuration returns the duration of the last DB write cycle
func (*Manager) RegisterHandlers ¶
func (m *Manager) RegisterHandlers(d *dispatcher.Dispatcher)
RegisterHandlers registers all event handlers with the dispatcher. This replaces the channel-based StartAsyncProcessors approach.
func (*Manager) SetBackend ¶
SetBackend sets the storage backend (replaces GORM path when set)
func (*Manager) StartDBWriters ¶
func (m *Manager) StartDBWriters()
StartDBWriters starts the database writer goroutine
type Queues ¶
type Queues struct {
Soldiers *queue.Queue[model.Soldier]
SoldierStates *queue.Queue[model.SoldierState]
Vehicles *queue.Queue[model.Vehicle]
VehicleStates *queue.Queue[model.VehicleState]
FiredEvents *queue.Queue[model.FiredEvent]
ProjectileEvents *queue.Queue[model.ProjectileEvent]
GeneralEvents *queue.Queue[model.GeneralEvent]
HitEvents *queue.Queue[model.HitEvent]
KillEvents *queue.Queue[model.KillEvent]
ChatEvents *queue.Queue[model.ChatEvent]
RadioEvents *queue.Queue[model.RadioEvent]
FpsEvents *queue.Queue[model.ServerFpsEvent]
Ace3DeathEvents *queue.Queue[model.Ace3DeathEvent]
Ace3UnconsciousEvents *queue.Queue[model.Ace3UnconsciousEvent]
Markers *queue.Queue[model.Marker]
MarkerStates *queue.Queue[model.MarkerState]
}
Queues holds all the write queues
Click to show internal directories.
Click to hide internal directories.