storage

package
v5.0.1 Latest Latest
Warning

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

Go to latest
Published: May 1, 2026 License: MIT Imports: 1 Imported by: 0

Documentation

Overview

internal/storage/storage.go

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Backend

type Backend interface {
	// Lifecycle
	Init() error
	Close() error

	// Mission management
	StartMission(mission *core.Mission, world *core.World) error
	EndMission() error

	// Entity registration (assigns ID to the passed pointer)
	AddSoldier(s *core.Soldier) error
	AddVehicle(v *core.Vehicle) error
	AddMarker(m *core.Marker) (uint, error)

	// State recording
	DeleteSoldier(id uint16, frame core.Frame) error
	DeleteVehicle(id uint16, frame core.Frame) error
	RecordSoldierState(s *core.SoldierState) error
	RecordVehicleState(v *core.VehicleState) error
	RecordMarkerState(s *core.MarkerState) error
	DeleteMarker(dm *core.DeleteMarker) error

	// Event recording
	RecordFiredEvent(e *core.FiredEvent) error
	RecordProjectileEvent(e *core.ProjectileEvent) error
	RecordGeneralEvent(e *core.GeneralEvent) error
	RecordSectorEvent(e *core.SectorEvent) error
	RecordEndMissionEvent(e *core.EndMissionEvent) error
	RecordHitEvent(e *core.HitEvent) error
	RecordKillEvent(e *core.KillEvent) error
	RecordChatEvent(e *core.ChatEvent) error
	RecordRadioEvent(e *core.RadioEvent) error
	RecordTelemetryEvent(e *core.TelemetryEvent) error
	RecordTimeState(t *core.TimeState) error
	RecordAce3DeathEvent(e *core.Ace3DeathEvent) error
	RecordAce3UnconsciousEvent(e *core.Ace3UnconsciousEvent) error

	// Placed objects
	AddPlacedObject(p *core.PlacedObject) error
	RecordPlacedObjectEvent(e *core.PlacedObjectEvent) error

	// Mission focus
	SetFocusStart(frame core.Frame) error
	SetFocusEnd(frame core.Frame) error
}

Backend is the interface all storage implementations must satisfy

type Uploadable

type Uploadable interface {
	GetExportedFilePath() string
	GetExportMetadata() core.UploadMetadata
}

Uploadable is an optional interface for storage backends that produce files suitable for upload to the OCAP web frontend.

Directories

Path Synopsis
internal/storage/memory/export.go
internal/storage/memory/export.go
export/v1
Package v1 contains the v1 export format for OCAP2 mission data.
Package v1 contains the v1 export format for OCAP2 mission data.
Package postgres implements the storage.Backend interface using GORM/PostgreSQL with internal queues and a background DB writer goroutine.
Package postgres implements the storage.Backend interface using GORM/PostgreSQL with internal queues and a background DB writer goroutine.
Package sqlitestorage implements the storage.Backend interface using an in-memory SQLite database with periodic disk dumps via VACUUM INTO.
Package sqlitestorage implements the storage.Backend interface using an in-memory SQLite database with periodic disk dumps via VACUUM INTO.

Jump to

Keyboard shortcuts

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