fleet

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Aug 3, 2026 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ConnectionInfo

type ConnectionInfo struct {
	IpAddress string `json:"ip_address"`
	DnsName   string `json:"dns_name"`
	Port      int    `json:"port"`
}

ConnectionInfo is platform-specific connection data.

type FleetUserLatencies

type FleetUserLatencies struct {
	UserId                string
	LatencyInMilliseconds float32
	RegionIdentifier      string
}

FleetUserLatencies is optional latency hint for Create placement.

type FmCallbackHandler

type FmCallbackHandler interface {
	GenerateCallbackId() string
	SetCallback(callbackId string, fn FmCreateCallbackFn)
	InvokeCallback(callbackId string, status FmCreateStatus, instanceInfo *InstanceInfo, sessionInfo []*SessionInfo, metadata map[string]any, err error)
}

FmCallbackHandler stores and invokes Create callbacks by id.

type FmCreateCallbackFn

type FmCreateCallbackFn func(status FmCreateStatus, instanceInfo *InstanceInfo, sessionInfo []*SessionInfo, metadata map[string]any, err error)

FmCreateCallbackFn is invoked when async Create completes.

type FmCreateStatus

type FmCreateStatus int

FmCreateStatus reports Create outcome.

const (
	CreateSuccess FmCreateStatus = iota
	CreateTimeout
	CreateError
)

type Initializer

type Initializer interface {
	Manager
	Init(nk any, handler FmCallbackHandler) error
	Update(ctx context.Context, id string, playerCount int, metadata map[string]any) error
	Delete(ctx context.Context, id string) error
}

Initializer is registered by game modules.

type InstanceInfo

type InstanceInfo struct {
	Id             string                 `json:"id"`
	ConnectionInfo *ConnectionInfo        `json:"connection_info"`
	CreateTime     time.Time              `json:"create_time"`
	PlayerCount    int                    `json:"player_count"`
	Status         string                 `json:"status"`
	Metadata       map[string]interface{} `json:"metadata"`
}

InstanceInfo describes a dedicated game-server instance.

type JoinInfo

type JoinInfo struct {
	InstanceInfo *InstanceInfo  `json:"instance_info"`
	SessionInfo  []*SessionInfo `json:"session_info"`
}

JoinInfo is returned from Join.

type LocalFmCallbackHandler

type LocalFmCallbackHandler struct {
	// contains filtered or unexported fields
}

LocalFmCallbackHandler is an in-process Create callback registry.

func NewLocalFmCallbackHandler

func NewLocalFmCallbackHandler() *LocalFmCallbackHandler

NewLocalFmCallbackHandler builds a callback handler.

func (*LocalFmCallbackHandler) GenerateCallbackId

func (fch *LocalFmCallbackHandler) GenerateCallbackId() string

GenerateCallbackId returns a new callback id.

func (*LocalFmCallbackHandler) InvokeCallback

func (fch *LocalFmCallbackHandler) InvokeCallback(callbackId string, status FmCreateStatus, instanceInfo *InstanceInfo, sessionInfo []*SessionInfo, metadata map[string]any, err error)

InvokeCallback runs and removes a stored callback.

func (*LocalFmCallbackHandler) SetCallback

func (fch *LocalFmCallbackHandler) SetCallback(callbackId string, fn FmCreateCallbackFn)

SetCallback stores a callback by id.

type LocalStub

type LocalStub struct {
	// contains filtered or unexported fields
}

LocalStub is a minimal in-process FleetManager for API parity.

func NewLocalStub

func NewLocalStub() *LocalStub

NewLocalStub creates an empty in-process fleet stub.

func (*LocalStub) Create

func (s *LocalStub) Create(ctx context.Context, maxPlayers int, userIds []string, _ []FleetUserLatencies, metadata map[string]any, callback FmCreateCallbackFn) (map[string]string, error)

func (*LocalStub) Delete

func (s *LocalStub) Delete(_ context.Context, id string) error

func (*LocalStub) Get

func (s *LocalStub) Get(_ context.Context, id string) (*InstanceInfo, error)

func (*LocalStub) Init

func (s *LocalStub) Init(_ any, handler FmCallbackHandler) error

func (*LocalStub) Join

func (s *LocalStub) Join(_ context.Context, id string, userIds []string, _ map[string]string) (*JoinInfo, error)

func (*LocalStub) List

func (s *LocalStub) List(_ context.Context, _ string, limit int, _ string) ([]*InstanceInfo, string, error)

func (*LocalStub) Update

func (s *LocalStub) Update(_ context.Context, id string, playerCount int, metadata map[string]any) error

type Manager

type Manager interface {
	Get(ctx context.Context, id string) (*InstanceInfo, error)
	List(ctx context.Context, query string, limit int, previousCursor string) ([]*InstanceInfo, string, error)
	Create(ctx context.Context, maxPlayers int, userIds []string, latencies []FleetUserLatencies, metadata map[string]any, callback FmCreateCallbackFn) (map[string]string, error)
	Join(ctx context.Context, id string, userIds []string, metadata map[string]string) (*JoinInfo, error)
}

Manager is the runtime FleetManager surface (reference-shaped).

type SessionInfo

type SessionInfo struct {
	UserId    string `json:"user_id"`
	SessionId string `json:"session_id"`
}

SessionInfo reserves a player slot on an instance.

Jump to

Keyboard shortcuts

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