sessions

package
v1.8.3 Latest Latest
Warning

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

Go to latest
Published: Feb 2, 2025 License: AGPL-3.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ErrGroupNotFound added in v1.8.3

type ErrGroupNotFound struct {
	Group           string
	AvailableGroups []string
}

func (ErrGroupNotFound) Error added in v1.8.3

func (g ErrGroupNotFound) Error() string

type ErrRequestBinding added in v1.8.3

type ErrRequestBinding struct {
	Err error
}

func (ErrRequestBinding) Error added in v1.8.3

func (e ErrRequestBinding) Error() string

type ErrTimeout added in v1.8.3

type ErrTimeout struct {
	Duration time.Duration
}

func (ErrTimeout) Error added in v1.8.3

func (e ErrTimeout) Error() string

type InstanceState

type InstanceState struct {
	Instance *instance.State `json:"instance"`
	Error    error           `json:"error"`
}

type Manager

type Manager interface {
	RequestSession(names []string, duration time.Duration) (*SessionState, error)
	RequestSessionGroup(group string, duration time.Duration) (*SessionState, error)
	RequestReadySession(ctx context.Context, names []string, duration time.Duration, timeout time.Duration) (*SessionState, error)
	RequestReadySessionGroup(ctx context.Context, group string, duration time.Duration, timeout time.Duration) (*SessionState, error)

	LoadSessions(io.ReadCloser) error
	SaveSessions(io.WriteCloser) error

	Stop()
}

func NewSessionsManager

func NewSessionsManager(store tinykv.KV[instance.State], provider providers.Provider) Manager

type SessionState

type SessionState struct {
	Instances *sync.Map
}

func (*SessionState) IsReady

func (s *SessionState) IsReady() bool

func (*SessionState) MarshalJSON

func (s *SessionState) MarshalJSON() ([]byte, error)

func (*SessionState) Status

func (s *SessionState) Status() string

type SessionsManager

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

func (*SessionsManager) ExpiresAfter

func (s *SessionsManager) ExpiresAfter(instance *instance.State, duration time.Duration)

func (*SessionsManager) LoadSessions

func (sm *SessionsManager) LoadSessions(reader io.ReadCloser) error

func (*SessionsManager) RequestReadySession

func (s *SessionsManager) RequestReadySession(ctx context.Context, names []string, duration time.Duration, timeout time.Duration) (*SessionState, error)

func (*SessionsManager) RequestReadySessionGroup

func (s *SessionsManager) RequestReadySessionGroup(ctx context.Context, group string, duration time.Duration, timeout time.Duration) (sessionState *SessionState, err error)

func (*SessionsManager) RequestSession

func (s *SessionsManager) RequestSession(names []string, duration time.Duration) (sessionState *SessionState, err error)

func (*SessionsManager) RequestSessionGroup

func (s *SessionsManager) RequestSessionGroup(group string, duration time.Duration) (sessionState *SessionState, err error)

func (*SessionsManager) SaveSessions

func (sm *SessionsManager) SaveSessions(writer io.WriteCloser) error

func (*SessionsManager) Stop

func (s *SessionsManager) Stop()

Directories

Path Synopsis
Package sessionstest is a generated GoMock package.
Package sessionstest is a generated GoMock package.

Jump to

Keyboard shortcuts

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