store

package
v0.0.0-...-b62c219 Latest Latest
Warning

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

Go to latest
Published: May 12, 2019 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ClaimPlayer claims the player in redis
	ClaimPlayer = redis.NewScript(_escFSMustString(false, "/redis_scripts/claimplayer.lua"))

	// PlayerNode gets the player of the node
	PlayerNode = redis.NewScript(_escFSMustString(false, "/redis_scripts/playernode.lua"))
)
View Source
var ErrUnknownRedisResponse = errors.New("unknown redis response")

ErrUnknownRedisResponse occurs when the library is expecting a redis response and receives one of incorrect type

Functions

This section is empty.

Types

type Lavalink interface {
	GetPlayer(guildID uint64, state *types.PlayerState) error
	SetPlayer(upd types.PlayerUpdate) error
	GetVoiceUpdate(guildID uint64) (sessionID string, event types.VoiceServerUpdate, err error)
	SetVoiceSession(guildID uint64, sessionID string) error
	SetVoiceServer(pk types.VoiceServerUpdate) error
	GetStats(node string, stats *types.Stats) error
	SetStats(node string, stats types.Stats) error
}

Lavalink represents the required interface for a complete Lavalink Store

type LavalinkCluster

type LavalinkCluster interface {
	Lavalink

	// claim a player for a specified node
	ClaimPlayer(node string, guildID uint64) (bool, error)

	// get the node of a player
	PlayerNode(guildID uint64) (string, error)

	// release a player from any claims on it
	ReleasePlayer(node string, guildID uint64) (bool, error)

	// announce the destruction of a node and the subsequent availability of all its players
	AnnounceDeath(node string) error

	// consume death notifications for a node should pull players from the node's set of
	// players until there are no remaining players
	ConsumeDeaths(node string) error
}

LavalinkCluster is the interface a backend storage system must implement to be used as a cluster Store

type Redis

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

Redis represents a clustering client. Used 1:1 with Lavalink nodes.

func NewRedis

func NewRedis(opts *redis.Options) *Redis

NewRedis makes a new cluster client

func (*Redis) AnnounceDeath

func (r *Redis) AnnounceDeath(node string) error

AnnounceDeath destroys a node

func (*Redis) ClaimPlayer

func (r *Redis) ClaimPlayer(node string, guildID uint64) (bool, error)

ClaimPlayer claims a player for the node

func (*Redis) ConsumeDeaths

func (r *Redis) ConsumeDeaths(node string, deaths chan string) error

ConsumeDeaths consumes death notifications, ignoring the specified node

func (*Redis) CreateNode

func (r *Redis) CreateNode(name string) error

CreateNode creates a node

func (*Redis) DeleteNode

func (r *Redis) DeleteNode(name string) error

DeleteNode deletes a node

func (*Redis) GetPlayer

func (r *Redis) GetPlayer(guildID uint64, state *types.PlayerState) (err error)

GetPlayer gets the cached player state for the given guild

func (*Redis) GetStats

func (r *Redis) GetStats(node string, stats *types.Stats) (err error)

GetStats gets the stats for a node

func (*Redis) GetVoiceUpdate

func (r *Redis) GetVoiceUpdate(guildID uint64) (session string, server types.VoiceServerUpdate, err error)

GetVoiceUpdate gets voice update info.

func (*Redis) PlayerNode

func (r *Redis) PlayerNode(guildID uint64) (string, error)

PlayerNode gets the node that the player is running on

func (*Redis) ReleasePlayer

func (r *Redis) ReleasePlayer(node string, guildID uint64) (bool, error)

ReleasePlayer releases a player from a node

func (*Redis) SetPlayer

func (r *Redis) SetPlayer(upd types.PlayerUpdate) error

SetPlayer sets player info

func (*Redis) SetStats

func (r *Redis) SetStats(node string, stats types.Stats) error

SetStats sets the stats for a node. It also updates a set of node names sorted by system CPU load.

func (*Redis) SetVoiceServer

func (r *Redis) SetVoiceServer(pk types.VoiceServerUpdate) error

SetVoiceServer sets the voice server information in Redis

func (*Redis) SetVoiceSession

func (r *Redis) SetVoiceSession(guildID uint64, sessionID string) error

SetVoiceSession sets the voice session in Redis

Jump to

Keyboard shortcuts

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