rooms

package module
v0.1.5 Latest Latest
Warning

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

Go to latest
Published: Mar 9, 2025 License: BSD-3-Clause Imports: 6 Imported by: 0

README

Rooms

Simple package for sharing streams in a presenter / viewers pattern.

Streams are transmitted from presenters to viewers.

Presenters can have multiple streams.

As new streams are added, they are automatically sent to all viewers.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BaseRoomStream

type BaseRoomStream struct {
	Stream
	// contains filtered or unexported fields
}

func NewBaseRoomStream

func NewBaseRoomStream(id string) *BaseRoomStream

func (*BaseRoomStream) Close

func (rt *BaseRoomStream) Close()

func (*BaseRoomStream) ID

func (rt *BaseRoomStream) ID() string

type Member

type Member interface {
	ID() string
	Type() MemberType
	AddStream(stream Stream)
	RemoveStream(stream Stream) error
	GetStreams() map[string]Stream
	CountStreams() int
	AddOnStreamHandler(handler func(stream Stream)) *StreamHandler
	RemoveOnStreamHandler(handler *StreamHandler) (bool, error)
	GetOnStreamHandlers() []StreamHandler
}

type MemberType

type MemberType int
const (
	MemberTypeViewer MemberType = iota
	MemberTypePresenter
)

type Room

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

func NewRoom

func NewRoom(id string) *Room

func (*Room) AddMember

func (r *Room) AddMember(member Member)

func (*Room) AddStream

func (r *Room) AddStream(stream Stream, memberTypes ...MemberType)

func (*Room) Close

func (r *Room) Close()

func (*Room) CountMembers

func (r *Room) CountMembers() int

func (*Room) GetMembers

func (r *Room) GetMembers() []Member

func (*Room) GetStreams

func (r *Room) GetStreams() map[string]RoomStream

func (*Room) ID

func (r *Room) ID() string

func (*Room) RemoveMember

func (r *Room) RemoveMember(member Member)

func (*Room) RemoveStream

func (r *Room) RemoveStream(stream Stream) error

type RoomManager

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

func NewRoomManager

func NewRoomManager() *RoomManager

func (*RoomManager) CountRooms

func (rm *RoomManager) CountRooms() int

func (*RoomManager) CreateRoom

func (rm *RoomManager) CreateRoom(id string) *Room

CreateRoom creates a new room if it doesn't exist and returns the room

func (*RoomManager) DestroyRoom

func (rm *RoomManager) DestroyRoom(id string) (bool, error)

DestroyRoom destroys a room if it exists

func (*RoomManager) GetRoom

func (rm *RoomManager) GetRoom(id string) (*Room, error)

func (*RoomManager) GetRooms

func (rm *RoomManager) GetRooms() map[string]*Room

type RoomMember

type RoomMember struct {
	Streams map[string]Stream
	// contains filtered or unexported fields
}

func NewRoomMember

func NewRoomMember(id string, memberType MemberType) *RoomMember

func (*RoomMember) AddOnStreamHandler

func (rm *RoomMember) AddOnStreamHandler(handler func(stream Stream)) *StreamHandler

func (*RoomMember) AddStream

func (rm *RoomMember) AddStream(stream Stream)

func (*RoomMember) CountStreams

func (rm *RoomMember) CountStreams() int

func (*RoomMember) GetOnStreamHandlers

func (rm *RoomMember) GetOnStreamHandlers() []StreamHandler

func (*RoomMember) GetStreams

func (rm *RoomMember) GetStreams() map[string]Stream

func (*RoomMember) ID

func (rm *RoomMember) ID() string

func (*RoomMember) RemoveOnStreamHandler

func (rm *RoomMember) RemoveOnStreamHandler(handler *StreamHandler) (bool, error)

func (*RoomMember) RemoveStream

func (rm *RoomMember) RemoveStream(stream Stream) error

func (*RoomMember) Type

func (rm *RoomMember) Type() MemberType

type RoomStream

type RoomStream struct {
	Stream
	RecipientTypes []MemberType
}

func NewRoomStream

func NewRoomStream(stream Stream, recipientTypes ...MemberType) *RoomStream

type Stream

type Stream interface {
	ID() string
}

type StreamHandler

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

func (*StreamHandler) ID

func (sh *StreamHandler) ID() string

Jump to

Keyboard shortcuts

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