Files
livekit/pkg/service/interfaces.go
David Colburn 95e29d3766 Interface updates (#194)
* update interfaces, a bit of cleaning

* regenerate

* return interface for RoomService

* export packetBufferSize

* update router interface

* move participant key into router

* change locks back

* read only room store

* fix server rm locks

* update SendJoinResponse

* clean up imports

* update room messaging

* regenerate
2021-11-15 15:25:50 -06:00

40 lines
1.3 KiB
Go

package service
import (
"context"
"time"
livekit "github.com/livekit/protocol/proto"
)
//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 -generate
// encapsulates CRUD operations for room settings
//counterfeiter:generate . RoomStore
type RoomStore interface {
RORoomStore
// enable locking on a specific room to prevent race
// returns a (lock uuid, error)
LockRoom(ctx context.Context, name string, duration time.Duration) (string, error)
UnlockRoom(ctx context.Context, name string, uid string) error
StoreRoom(ctx context.Context, room *livekit.Room) error
DeleteRoom(ctx context.Context, name string) error
StoreParticipant(ctx context.Context, roomName string, participant *livekit.ParticipantInfo) error
DeleteParticipant(ctx context.Context, roomName, identity string) error
}
type RORoomStore interface {
LoadRoom(ctx context.Context, name string) (*livekit.Room, error)
ListRooms(ctx context.Context) ([]*livekit.Room, error)
LoadParticipant(ctx context.Context, roomName, identity string) (*livekit.ParticipantInfo, error)
ListParticipants(ctx context.Context, roomName string) ([]*livekit.ParticipantInfo, error)
}
type RoomAllocator interface {
CreateRoom(ctx context.Context, req *livekit.CreateRoomRequest) (*livekit.Room, error)
}