Documentation
¶
Overview ¶
internal/storage/memory/export.go
internal/storage/memory/memory.go
Index ¶
- type Backend
- func (b *Backend) AddMarker(m *core.Marker) (uint, error)
- func (b *Backend) AddPlacedObject(p *core.PlacedObject) error
- func (b *Backend) AddSoldier(s *core.Soldier) error
- func (b *Backend) AddVehicle(v *core.Vehicle) error
- func (b *Backend) BuildExport() v1.Export
- func (b *Backend) Close() error
- func (b *Backend) DeleteMarker(dm *core.DeleteMarker) error
- func (b *Backend) DeleteSoldier(id uint16, frame core.Frame) error
- func (b *Backend) DeleteVehicle(id uint16, frame core.Frame) error
- func (b *Backend) EndMission() (retErr error)
- func (b *Backend) GetExportMetadata() core.UploadMetadata
- func (b *Backend) GetExportedFilePath() string
- func (b *Backend) Init() error
- func (b *Backend) RecordAce3DeathEvent(e *core.Ace3DeathEvent) error
- func (b *Backend) RecordAce3UnconsciousEvent(e *core.Ace3UnconsciousEvent) error
- func (b *Backend) RecordChatEvent(e *core.ChatEvent) error
- func (b *Backend) RecordEndMissionEvent(e *core.EndMissionEvent) error
- func (b *Backend) RecordFiredEvent(e *core.FiredEvent) error
- func (b *Backend) RecordGeneralEvent(e *core.GeneralEvent) error
- func (b *Backend) RecordHitEvent(e *core.HitEvent) error
- func (b *Backend) RecordKillEvent(e *core.KillEvent) error
- func (b *Backend) RecordMarkerState(s *core.MarkerState) error
- func (b *Backend) RecordPlacedObjectEvent(e *core.PlacedObjectEvent) error
- func (b *Backend) RecordProjectileEvent(e *core.ProjectileEvent) error
- func (b *Backend) RecordRadioEvent(e *core.RadioEvent) error
- func (b *Backend) RecordSectorEvent(e *core.SectorEvent) error
- func (b *Backend) RecordSoldierState(s *core.SoldierState) error
- func (b *Backend) RecordTelemetryEvent(e *core.TelemetryEvent) error
- func (b *Backend) RecordTimeState(t *core.TimeState) error
- func (b *Backend) RecordVehicleState(v *core.VehicleState) error
- func (b *Backend) SetFocusEnd(frame core.Frame) error
- func (b *Backend) SetFocusStart(frame core.Frame) error
- func (b *Backend) StartMission(mission *core.Mission, world *core.World) error
- type MarkerRecord
- type PlacedObjectRecord
- type SoldierRecord
- type VehicleRecord
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Backend ¶
type Backend struct {
// contains filtered or unexported fields
}
Backend stores mission data in memory and exports to JSON
func New ¶
func New(cfg config.MemoryConfig, logger *slog.Logger) *Backend
New creates a new memory backend
func (*Backend) AddMarker ¶
AddMarker registers a new marker. Assigns an auto-increment ID so marker state updates can reference it. Returns the assigned ID.
func (*Backend) AddPlacedObject ¶
func (b *Backend) AddPlacedObject(p *core.PlacedObject) error
AddPlacedObject registers a new placed object (mine, explosive, etc.). The object's ID is their ObjectID (game identifier).
func (*Backend) AddSoldier ¶
AddSoldier registers a new soldier. The soldier's ID is their ObjectID (game identifier).
func (*Backend) AddVehicle ¶
AddVehicle registers a new vehicle. The vehicle's ID is their ObjectID (game identifier).
func (*Backend) BuildExport ¶
BuildExport creates a v1 export from the current mission data. This is safe for concurrent use.
func (*Backend) DeleteMarker ¶
func (b *Backend) DeleteMarker(dm *core.DeleteMarker) error
DeleteMarker sets the end frame for a marker, marking it as deleted at that frame
func (*Backend) DeleteSoldier ¶
DeleteSoldier sets the delete frame for a soldier, marking it as excluded at that frame.
func (*Backend) DeleteVehicle ¶
DeleteVehicle sets the delete frame for a vehicle, marking it as excluded at that frame.
func (*Backend) EndMission ¶
EndMission finalizes and exports the mission data.
Recovers from panics in the builder or encoder and converts them into an error return so the calling save worker can report them via :MISSION:SAVED: instead of crashing the host process.
Regardless of outcome (success, error return, or recovered panic), the backend state is always reset so the next mission starts fresh and poisoned data from a failed export cannot cause a repeat panic on a subsequent call.
func (*Backend) GetExportMetadata ¶
func (b *Backend) GetExportMetadata() core.UploadMetadata
GetExportMetadata returns metadata about the last export. If a mission is active (before EndMission), computes metadata from live data. After EndMission, returns cached metadata from the export.
func (*Backend) GetExportedFilePath ¶
GetExportedFilePath returns the path to the last exported file.
func (*Backend) RecordAce3DeathEvent ¶
func (b *Backend) RecordAce3DeathEvent(e *core.Ace3DeathEvent) error
RecordAce3DeathEvent records an ACE3 death event
func (*Backend) RecordAce3UnconsciousEvent ¶
func (b *Backend) RecordAce3UnconsciousEvent(e *core.Ace3UnconsciousEvent) error
RecordAce3UnconsciousEvent records an ACE3 unconscious event
func (*Backend) RecordChatEvent ¶
RecordChatEvent records a chat event
func (*Backend) RecordEndMissionEvent ¶
func (b *Backend) RecordEndMissionEvent(e *core.EndMissionEvent) error
RecordEndMissionEvent records an end-of-mission event.
func (*Backend) RecordFiredEvent ¶
func (b *Backend) RecordFiredEvent(e *core.FiredEvent) error
RecordFiredEvent records a fired event. SoldierID must be set to the soldier's ObjectID.
func (*Backend) RecordGeneralEvent ¶
func (b *Backend) RecordGeneralEvent(e *core.GeneralEvent) error
RecordGeneralEvent records a general event
func (*Backend) RecordHitEvent ¶
RecordHitEvent records a hit event
func (*Backend) RecordKillEvent ¶
RecordKillEvent records a kill event
func (*Backend) RecordMarkerState ¶
func (b *Backend) RecordMarkerState(s *core.MarkerState) error
RecordMarkerState records a marker state update
func (*Backend) RecordPlacedObjectEvent ¶
func (b *Backend) RecordPlacedObjectEvent(e *core.PlacedObjectEvent) error
RecordPlacedObjectEvent records a lifecycle event for a placed object. PlacedID must be set to the placed object's ObjectID.
func (*Backend) RecordProjectileEvent ¶
func (b *Backend) RecordProjectileEvent(e *core.ProjectileEvent) error
RecordProjectileEvent records a raw projectile event
func (*Backend) RecordRadioEvent ¶
func (b *Backend) RecordRadioEvent(e *core.RadioEvent) error
RecordRadioEvent records a radio event
func (*Backend) RecordSectorEvent ¶
func (b *Backend) RecordSectorEvent(e *core.SectorEvent) error
RecordSectorEvent records a sector state change event.
func (*Backend) RecordSoldierState ¶
func (b *Backend) RecordSoldierState(s *core.SoldierState) error
RecordSoldierState records a soldier state update. SoldierID must be set to the soldier's ObjectID.
func (*Backend) RecordTelemetryEvent ¶
func (b *Backend) RecordTelemetryEvent(e *core.TelemetryEvent) error
RecordTelemetryEvent records a telemetry event.
func (*Backend) RecordTimeState ¶
RecordTimeState records a time synchronization state
func (*Backend) RecordVehicleState ¶
func (b *Backend) RecordVehicleState(v *core.VehicleState) error
RecordVehicleState records a vehicle state update. VehicleID must be set to the vehicle's ObjectID.
func (*Backend) SetFocusEnd ¶
SetFocusEnd closes the currently open focus range. Returns an error if no range is open or if the end frame is invalid.
func (*Backend) SetFocusStart ¶
SetFocusStart opens a new focus range. Returns an error if a range is already open or if the start frame is invalid.
type MarkerRecord ¶
type MarkerRecord struct {
Marker core.Marker
States []core.MarkerState
}
MarkerRecord groups a marker with all its state changes
type PlacedObjectRecord ¶
type PlacedObjectRecord struct {
PlacedObject core.PlacedObject
Events []core.PlacedObjectEvent
}
PlacedObjectRecord groups a placed object with all its lifecycle events
type SoldierRecord ¶
type SoldierRecord struct {
Soldier core.Soldier
States []core.SoldierState
FiredEvents []core.FiredEvent
}
SoldierRecord groups a soldier with all its time-series data
type VehicleRecord ¶
type VehicleRecord struct {
Vehicle core.Vehicle
States []core.VehicleState
}
VehicleRecord groups a vehicle with all its time-series data