Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
684bc665f4 | ||
|
|
e9d78d5f46 | ||
|
|
86487220bd | ||
|
|
a404aaa991 | ||
|
|
386e55747c | ||
|
|
c83bfb037b | ||
|
|
0f8bed63ef | ||
|
|
632f936abb | ||
|
|
8ac0f55c6b | ||
|
|
640940af27 | ||
|
|
3f935a2b4d | ||
|
|
5ba8b0ec94 | ||
|
|
da84faf41f |
5
.changeset/gold-fishes-smash.md
Normal file
5
.changeset/gold-fishes-smash.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@livekit/protocol": patch
|
||||
---
|
||||
|
||||
add stack utility
|
||||
@@ -1,6 +1,9 @@
|
||||
package observability
|
||||
|
||||
import (
|
||||
"github.com/go-logr/logr"
|
||||
|
||||
"github.com/livekit/protocol/logger"
|
||||
"github.com/livekit/protocol/observability/agentsobs"
|
||||
"github.com/livekit/protocol/observability/egressobs"
|
||||
"github.com/livekit/protocol/observability/gatewayobs"
|
||||
@@ -13,15 +16,16 @@ import (
|
||||
|
||||
const Project = "livekit"
|
||||
|
||||
var discardLogger = logger.LogRLogger(logr.Discard())
|
||||
|
||||
type Reporter interface {
|
||||
Logger(projectID string) (logger.Logger, error)
|
||||
Room() roomobs.Reporter
|
||||
Agent() agentsobs.Reporter
|
||||
Gateway() gatewayobs.Reporter
|
||||
Telephony() telephonyobs.Reporter
|
||||
Connector() any // any is a placeholder for the connector type
|
||||
Egress() egressobs.Reporter
|
||||
Ingress() ingressobs.Reporter
|
||||
GatewayMetrics() any // any is a placeholder for the gateway metrics type
|
||||
TelephonyCall() telephonycallobs.Reporter
|
||||
Storage() storageobs.Reporter
|
||||
Close()
|
||||
@@ -33,6 +37,10 @@ func NewReporter() Reporter {
|
||||
|
||||
type reporter struct{}
|
||||
|
||||
func (reporter) Logger(projectID string) (logger.Logger, error) {
|
||||
return discardLogger, nil
|
||||
}
|
||||
|
||||
func (reporter) Room() roomobs.Reporter {
|
||||
return roomobs.NewNoopReporter()
|
||||
}
|
||||
@@ -49,10 +57,6 @@ func (reporter) Telephony() telephonyobs.Reporter {
|
||||
return telephonyobs.NewNoopReporter()
|
||||
}
|
||||
|
||||
func (reporter) Connector() any {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (reporter) Egress() egressobs.Reporter {
|
||||
return egressobs.NewNoopReporter()
|
||||
}
|
||||
@@ -61,15 +65,13 @@ func (reporter) Ingress() ingressobs.Reporter {
|
||||
return ingressobs.NewNoopReporter()
|
||||
}
|
||||
|
||||
func (reporter) GatewayMetrics() any {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (reporter) TelephonyCall() telephonycallobs.Reporter {
|
||||
return telephonycallobs.NewNoopReporter()
|
||||
}
|
||||
|
||||
func (reporter) Storage() storageobs.Reporter { return storageobs.NewNoopReporter() }
|
||||
func (reporter) Storage() storageobs.Reporter {
|
||||
return storageobs.NewNoopReporter()
|
||||
}
|
||||
|
||||
func (reporter) Close() {
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ package utils
|
||||
|
||||
import (
|
||||
"io"
|
||||
"slices"
|
||||
|
||||
"go.uber.org/multierr"
|
||||
)
|
||||
@@ -28,7 +29,7 @@ func CombineClosers(cs ...io.Closer) Closers {
|
||||
|
||||
func (s *Closers) Close() error {
|
||||
var err error
|
||||
for _, c := range *s {
|
||||
for _, c := range slices.Backward(*s) {
|
||||
if c != nil {
|
||||
err = multierr.Append(err, c.Close())
|
||||
}
|
||||
|
||||
25
utils/stack/stack.go
Normal file
25
utils/stack/stack.go
Normal file
@@ -0,0 +1,25 @@
|
||||
package stack
|
||||
|
||||
type Stack[T any] []T
|
||||
|
||||
func (s Stack[T]) Empty() bool {
|
||||
return len(s) == 0
|
||||
}
|
||||
|
||||
func (s *Stack[T]) Reset() {
|
||||
*s = (*s)[:0]
|
||||
}
|
||||
|
||||
func (s *Stack[T]) Push(v T) {
|
||||
*s = append(*s, v)
|
||||
}
|
||||
|
||||
func (s *Stack[T]) Pop() T {
|
||||
v := (*s)[len(*s)-1]
|
||||
*s = (*s)[:len(*s)-1]
|
||||
return v
|
||||
}
|
||||
|
||||
func (s Stack[T]) Peek() T {
|
||||
return s[len(s)-1]
|
||||
}
|
||||
Reference in New Issue
Block a user