worker

package
v5.0.0-alpha.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 14, 2026 License: MIT Imports: 11 Imported by: 0

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

func (m *Manager) GetLastDBWriteDuration() time.Duration

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

func (m *Manager) SetBackend(b storage.Backend)

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

func NewQueues

func NewQueues() *Queues

NewQueues creates all write queues

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL