utils

package
v1.5.0 Latest Latest
Warning

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

Go to latest
Published: Mar 9, 2023 License: Apache-2.0 Imports: 30 Imported by: 48

Documentation

Index

Constants

View Source
const (
	RoomPrefix        = "RM_"
	NodePrefix        = "ND_"
	ParticipantPrefix = "PA_"
	TrackPrefix       = "TR_"
	APIKeyPrefix      = "API"
	EgressPrefix      = "EG_"
	IngressPrefix     = "IN_"
	RPCPrefix         = "RPC_"
)

Variables

View Source
var (
	PromMessageBusCounter = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Namespace: "livekit",
			Subsystem: "messagebus",
			Name:      "messages",
		},
		[]string{"type", "status"},
	)
)

Functions

func EnableLockTracker added in v1.4.0

func EnableLockTracker()

EnableLockTracker enable lock tracking background worker. This should be called during init

func HashedID

func HashedID(id string) string

Creates a hashed ID from a unique string

func LocalNodeID added in v0.11.1

func LocalNodeID() (string, error)

func NewGuid

func NewGuid(prefix string) string

func NumMutexes added in v1.4.0

func NumMutexes() int

func ParallelExec added in v1.4.3

func ParallelExec[T any](vals []T, parallelThreshold, step uint64, fn func(T))

ParallelExec will executes the given function with each element of vals, if len(vals) >= parallelThreshold, will execute them in parallel, with the given step size. So fn must be thread-safe.

func RandomSecret

func RandomSecret() string

func ScanTrackedLocks added in v1.4.0

func ScanTrackedLocks(threshold time.Duration) bool

ScanTrackedLocks check all lock trackers

func ScanTrackedLocksI added in v1.4.0

func ScanTrackedLocksI(threshold time.Duration, n int) bool

ScanTrackedLocksI check lock trackers incrementally n at a time

Types

type CPUStats added in v1.2.0

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

func NewCPUStats added in v1.2.0

func NewCPUStats(updateCallback func(idle float64)) (*CPUStats, error)

func (*CPUStats) GetCPUIdle added in v1.2.0

func (c *CPUStats) GetCPUIdle() float64

func (*CPUStats) NumCPU added in v1.2.3

func (c *CPUStats) NumCPU() int

func (*CPUStats) Stop added in v1.2.0

func (c *CPUStats) Stop()

type MessageBus added in v0.8.4

type MessageBus interface {
	Subscribe(ctx context.Context, channel string) (PubSub, error)
	// SubscribeQueue is like subscribe, but ensuring only a single instance gets to process the message
	SubscribeQueue(ctx context.Context, channel string) (PubSub, error)
	Publish(ctx context.Context, channel string, msg proto.Message) error
}

func NewRedisMessageBus added in v0.8.4

func NewRedisMessageBus(rc redis.UniversalClient) MessageBus

type Mutex added in v1.4.0

type Mutex struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func (*Mutex) Lock added in v1.4.0

func (m *Mutex) Lock()

type PubSub added in v0.8.4

type PubSub interface {
	Channel() <-chan interface{}
	Payload(msg interface{}) []byte
	Close() error
}

type RWMutex added in v1.4.0

type RWMutex struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func (*RWMutex) Lock added in v1.4.0

func (m *RWMutex) Lock()

func (*RWMutex) RLock added in v1.4.0

func (m *RWMutex) RLock()

type RedisMessageBus added in v0.8.4

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

func (*RedisMessageBus) Lock added in v0.8.4

func (r *RedisMessageBus) Lock(ctx context.Context, key string, expiration time.Duration) (bool, error)

func (*RedisMessageBus) Publish added in v0.8.4

func (r *RedisMessageBus) Publish(ctx context.Context, channel string, msg proto.Message) error

func (*RedisMessageBus) Subscribe added in v0.8.4

func (r *RedisMessageBus) Subscribe(ctx context.Context, channel string) (PubSub, error)

func (*RedisMessageBus) SubscribeQueue added in v0.9.3

func (r *RedisMessageBus) SubscribeQueue(ctx context.Context, channel string) (PubSub, error)

type RedisPubSub added in v0.8.4

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

func (*RedisPubSub) Channel added in v0.8.4

func (r *RedisPubSub) Channel() <-chan interface{}

func (*RedisPubSub) Close added in v0.8.4

func (r *RedisPubSub) Close() error

func (*RedisPubSub) Payload added in v0.8.4

func (r *RedisPubSub) Payload(msg interface{}) []byte

type TimedVersion added in v1.4.3

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

func NewTimedVersionFromProto added in v1.4.3

func NewTimedVersionFromProto(proto *livekit.TimedVersion) *TimedVersion

func NewTimedVersionFromTime added in v1.4.3

func NewTimedVersionFromTime(t time.Time) *TimedVersion

func TimedVersionFromProto added in v1.4.3

func TimedVersionFromProto(proto *livekit.TimedVersion) TimedVersion

func TimedVersionFromTime added in v1.4.3

func TimedVersionFromTime(t time.Time) TimedVersion

func (*TimedVersion) After added in v1.4.3

func (t *TimedVersion) After(other *TimedVersion) bool

func (*TimedVersion) Compare added in v1.4.3

func (t *TimedVersion) Compare(other *TimedVersion) int

func (*TimedVersion) Load added in v1.4.3

func (t *TimedVersion) Load() TimedVersion

func (*TimedVersion) Store added in v1.4.3

func (t *TimedVersion) Store(other *TimedVersion)

func (*TimedVersion) String added in v1.4.3

func (t *TimedVersion) String() string

func (*TimedVersion) Time added in v1.4.3

func (t *TimedVersion) Time() time.Time

func (*TimedVersion) ToProto added in v1.4.3

func (t *TimedVersion) ToProto() *livekit.TimedVersion

func (*TimedVersion) Update added in v1.4.3

func (t *TimedVersion) Update(other *TimedVersion) bool

type TimedVersionGenerator added in v1.4.3

type TimedVersionGenerator interface {
	New() *TimedVersion
	Next() TimedVersion
}

func NewDefaultTimedVersionGenerator added in v1.4.3

func NewDefaultTimedVersionGenerator() TimedVersionGenerator

Jump to

Keyboard shortcuts

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