communication

package
v0.0.0-...-f9cc55b Latest Latest
Warning

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

Go to latest
Published: Feb 3, 2024 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Overview

Code generated by MockGen. DO NOT EDIT. Source: handler.go

Generated by this command:

mockgen -source handler.go -destination mock_handler.go -package communication

Package communication is a generated GoMock package.

Code generated by MockGen. DO NOT EDIT. Source: room.go

Generated by this command:

mockgen -source room.go -destination mock_room.go -package communication

Package communication is a generated GoMock package.

Code generated by MockGen. DO NOT EDIT. Source: websocket.go

Generated by this command:

mockgen -source websocket.go -destination mock_websocket.go -package communication

Package communication is a generated GoMock package.

Code generated by MockGen. DO NOT EDIT. Source: worker.go

Generated by this command:

mockgen -source=worker.go -package=communication -destination=mock_worker.go

Package communication is a generated GoMock package.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CreateDir

func CreateDir(path string) error

func MarshalMessage

func MarshalMessage(message Message) ([]byte, error)

func TimeAdd

func TimeAdd(t time.Time, duration Duration) time.Time

Types

type CacheTracker

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

func NewCacheTracker

func NewCacheTracker() *CacheTracker

func (*CacheTracker) CacheFull

func (ct *CacheTracker) CacheFull() bool

func (*CacheTracker) DeleteCache

func (ct *CacheTracker) DeleteCache(id uuid.UUID)

func (*CacheTracker) Reset

func (ct *CacheTracker) Reset()

func (*CacheTracker) SetCache

func (ct *CacheTracker) SetCache(id uuid.UUID, cache bool)

type ClientWorker

type ClientWorker interface {
	Start()
	Close()
	Shutdown()
	UUID() uuid.UUID
	SendMessage(payload []byte)
	EstimatePosition() *Duration
}

func NewWorker

func NewWorker(roomHandler ServerStateHandler, websocket WebsocketReaderWriter, username string) ClientWorker

type Duration

type Duration struct {
	time.Duration
}

Expect time in milliseconds

func DurationFromUint64

func DurationFromUint64(i uint64) Duration

func MinDuration

func MinDuration(x, y Duration) Duration

func TimeSince

func TimeSince(t time.Time) Duration

func TimeSub

func TimeSub(t time.Time, otherT time.Time) Duration

func (Duration) Add

func (d Duration) Add(duration Duration) Duration

func (Duration) Div

func (d Duration) Div(value uint64) Duration

func (Duration) Equal

func (d Duration) Equal(duration Duration) bool

func (Duration) Greater

func (d Duration) Greater(duration Duration) bool

func (Duration) MarshalJSON

func (d Duration) MarshalJSON() ([]byte, error)

func (Duration) MultFloat64

func (d Duration) MultFloat64(factor float64) Duration

func (Duration) MultInt

func (d Duration) MultInt(factor int) Duration

func (Duration) Negate

func (d Duration) Negate() Duration

func (Duration) Smaller

func (d Duration) Smaller(duration Duration) bool

func (Duration) Sub

func (d Duration) Sub(duration Duration) Duration

func (Duration) Uint64

func (d Duration) Uint64() uint64

func (*Duration) UnmarshalJSON

func (d *Duration) UnmarshalJSON(b []byte) error

type Join

type Join struct {
	Password string `json:"password"`
	Room     string `json:"room"`
	Username string `json:"username"`
}

func (Join) Type

func (j Join) Type() MessageType

type Message

type Message interface {
	Type() MessageType
}

func UnmarshalMessage

func UnmarshalMessage(data []byte) (Message, error)

type MessageType

type MessageType string
const (
	PingType          MessageType = "ping"
	VideoStatusType   MessageType = "videoStatus"
	StatusListType    MessageType = "statusList"
	PauseType         MessageType = "pause"
	StartType         MessageType = "start"
	SeekType          MessageType = "seek"
	SelectType        MessageType = "select"
	UserMessageType   MessageType = "userMessage"
	ServerMessageType MessageType = "serverMessage"
	PlaylistType      MessageType = "playlist"
	StatusType        MessageType = "status"
	JoinType          MessageType = "join"
	PlaybackSpeedType MessageType = "playbackSpeed"
	UnknownType       MessageType = "unknown"
	UnsupportedType   MessageType = "unsupported"
)

type MockClientWorker

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

MockClientWorker is a mock of ClientWorker interface.

func NewMockClientWorker

func NewMockClientWorker(ctrl *gomock.Controller) *MockClientWorker

NewMockClientWorker creates a new mock instance.

func (*MockClientWorker) Close

func (m *MockClientWorker) Close()

Close mocks base method.

func (*MockClientWorker) EXPECT

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockClientWorker) EstimatePosition

func (m *MockClientWorker) EstimatePosition() *Duration

EstimatePosition mocks base method.

func (*MockClientWorker) SendMessage

func (m *MockClientWorker) SendMessage(payload []byte)

SendMessage mocks base method.

func (*MockClientWorker) Shutdown

func (m *MockClientWorker) Shutdown()

Shutdown mocks base method.

func (*MockClientWorker) Start

func (m *MockClientWorker) Start()

Start mocks base method.

func (*MockClientWorker) UUID

func (m *MockClientWorker) UUID() uuid.UUID

UUID mocks base method.

type MockClientWorkerMockRecorder

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

MockClientWorkerMockRecorder is the mock recorder for MockClientWorker.

func (*MockClientWorkerMockRecorder) Close

Close indicates an expected call of Close.

func (*MockClientWorkerMockRecorder) EstimatePosition

func (mr *MockClientWorkerMockRecorder) EstimatePosition() *gomock.Call

EstimatePosition indicates an expected call of EstimatePosition.

func (*MockClientWorkerMockRecorder) SendMessage

func (mr *MockClientWorkerMockRecorder) SendMessage(payload any) *gomock.Call

SendMessage indicates an expected call of SendMessage.

func (*MockClientWorkerMockRecorder) Shutdown

func (mr *MockClientWorkerMockRecorder) Shutdown() *gomock.Call

Shutdown indicates an expected call of Shutdown.

func (*MockClientWorkerMockRecorder) Start

Start indicates an expected call of Start.

func (*MockClientWorkerMockRecorder) UUID

UUID indicates an expected call of UUID.

type MockRoomStateHandler

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

MockRoomStateHandler is a mock of RoomStateHandler interface.

func NewMockRoomStateHandler

func NewMockRoomStateHandler(ctrl *gomock.Controller) *MockRoomStateHandler

NewMockRoomStateHandler creates a new mock instance.

func (*MockRoomStateHandler) AppendWorker

func (m *MockRoomStateHandler) AppendWorker(worker ClientWorker)

AppendWorker mocks base method.

func (*MockRoomStateHandler) BroadcastAll

func (m *MockRoomStateHandler) BroadcastAll(message []byte)

BroadcastAll mocks base method.

func (*MockRoomStateHandler) BroadcastExcept

func (m *MockRoomStateHandler) BroadcastExcept(payload []byte, workerUUID uuid.UUID)

BroadcastExcept mocks base method.

func (*MockRoomStateHandler) Close

func (m *MockRoomStateHandler) Close() error

Close mocks base method.

func (*MockRoomStateHandler) DeleteWorker

func (m *MockRoomStateHandler) DeleteWorker(workerUUID uuid.UUID)

DeleteWorker mocks base method.

func (*MockRoomStateHandler) EXPECT

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockRoomStateHandler) HandleCache

func (m *MockRoomStateHandler) HandleCache(cache bool, workerUUID uuid.UUID, username string)

HandleCache mocks base method.

func (*MockRoomStateHandler) IsEmpty

func (m *MockRoomStateHandler) IsEmpty() bool

IsEmpty mocks base method.

func (*MockRoomStateHandler) Name

func (m *MockRoomStateHandler) Name() string

Name mocks base method.

func (*MockRoomStateHandler) Ready

func (m *MockRoomStateHandler) Ready() bool

Ready mocks base method.

func (*MockRoomStateHandler) RoomConfig

func (m *MockRoomStateHandler) RoomConfig() RoomConfig

RoomConfig mocks base method.

func (*MockRoomStateHandler) RoomState

func (m *MockRoomStateHandler) RoomState() RoomState

RoomState mocks base method.

func (*MockRoomStateHandler) SetLastSeek

func (m *MockRoomStateHandler) SetLastSeek(position Duration)

SetLastSeek mocks base method.

func (*MockRoomStateHandler) SetPaused

func (m *MockRoomStateHandler) SetPaused(paused bool)

SetPaused mocks base method.

func (*MockRoomStateHandler) SetPlaylist

func (m *MockRoomStateHandler) SetPlaylist(playlist []string)

SetPlaylist mocks base method.

func (*MockRoomStateHandler) SetPlaylistState

func (m *MockRoomStateHandler) SetPlaylistState(video *string, position Duration, paused *bool, lastSeek *Duration, speed *float64)

SetPlaylistState mocks base method.

func (*MockRoomStateHandler) SetPosition

func (m *MockRoomStateHandler) SetPosition(position Duration)

SetPosition mocks base method.

func (*MockRoomStateHandler) SetSpeed

func (m *MockRoomStateHandler) SetSpeed(speed float64)

SetSpeed mocks base method.

func (*MockRoomStateHandler) SetWorkerStatus

func (m *MockRoomStateHandler) SetWorkerStatus(workerUUID uuid.UUID, status Status)

SetWorkerStatus mocks base method.

func (*MockRoomStateHandler) ShouldBeClosed

func (m *MockRoomStateHandler) ShouldBeClosed() bool

ShouldBeClosed mocks base method.

func (*MockRoomStateHandler) Shutdown

func (m *MockRoomStateHandler) Shutdown(ctx context.Context)

Shutdown mocks base method.

func (*MockRoomStateHandler) SlowestEstimatedClientPosition

func (m *MockRoomStateHandler) SlowestEstimatedClientPosition() *Duration

SlowestEstimatedClientPosition mocks base method.

func (*MockRoomStateHandler) Start

func (m *MockRoomStateHandler) Start()

Start mocks base method.

func (*MockRoomStateHandler) WorkerStatus

func (m *MockRoomStateHandler) WorkerStatus() []Status

WorkerStatus mocks base method.

type MockRoomStateHandlerMockRecorder

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

MockRoomStateHandlerMockRecorder is the mock recorder for MockRoomStateHandler.

func (*MockRoomStateHandlerMockRecorder) AppendWorker

func (mr *MockRoomStateHandlerMockRecorder) AppendWorker(worker any) *gomock.Call

AppendWorker indicates an expected call of AppendWorker.

func (*MockRoomStateHandlerMockRecorder) BroadcastAll

func (mr *MockRoomStateHandlerMockRecorder) BroadcastAll(message any) *gomock.Call

BroadcastAll indicates an expected call of BroadcastAll.

func (*MockRoomStateHandlerMockRecorder) BroadcastExcept

func (mr *MockRoomStateHandlerMockRecorder) BroadcastExcept(payload, workerUUID any) *gomock.Call

BroadcastExcept indicates an expected call of BroadcastExcept.

func (*MockRoomStateHandlerMockRecorder) Close

Close indicates an expected call of Close.

func (*MockRoomStateHandlerMockRecorder) DeleteWorker

func (mr *MockRoomStateHandlerMockRecorder) DeleteWorker(workerUUID any) *gomock.Call

DeleteWorker indicates an expected call of DeleteWorker.

func (*MockRoomStateHandlerMockRecorder) HandleCache

func (mr *MockRoomStateHandlerMockRecorder) HandleCache(cache, workerUUID, username any) *gomock.Call

HandleCache indicates an expected call of HandleCache.

func (*MockRoomStateHandlerMockRecorder) IsEmpty

IsEmpty indicates an expected call of IsEmpty.

func (*MockRoomStateHandlerMockRecorder) Name

Name indicates an expected call of Name.

func (*MockRoomStateHandlerMockRecorder) Ready

Ready indicates an expected call of Ready.

func (*MockRoomStateHandlerMockRecorder) RoomConfig

func (mr *MockRoomStateHandlerMockRecorder) RoomConfig() *gomock.Call

RoomConfig indicates an expected call of RoomConfig.

func (*MockRoomStateHandlerMockRecorder) RoomState

func (mr *MockRoomStateHandlerMockRecorder) RoomState() *gomock.Call

RoomState indicates an expected call of RoomState.

func (*MockRoomStateHandlerMockRecorder) SetLastSeek

func (mr *MockRoomStateHandlerMockRecorder) SetLastSeek(position any) *gomock.Call

SetLastSeek indicates an expected call of SetLastSeek.

func (*MockRoomStateHandlerMockRecorder) SetPaused

func (mr *MockRoomStateHandlerMockRecorder) SetPaused(paused any) *gomock.Call

SetPaused indicates an expected call of SetPaused.

func (*MockRoomStateHandlerMockRecorder) SetPlaylist

func (mr *MockRoomStateHandlerMockRecorder) SetPlaylist(playlist any) *gomock.Call

SetPlaylist indicates an expected call of SetPlaylist.

func (*MockRoomStateHandlerMockRecorder) SetPlaylistState

func (mr *MockRoomStateHandlerMockRecorder) SetPlaylistState(video, position, paused, lastSeek, speed any) *gomock.Call

SetPlaylistState indicates an expected call of SetPlaylistState.

func (*MockRoomStateHandlerMockRecorder) SetPosition

func (mr *MockRoomStateHandlerMockRecorder) SetPosition(position any) *gomock.Call

SetPosition indicates an expected call of SetPosition.

func (*MockRoomStateHandlerMockRecorder) SetSpeed

func (mr *MockRoomStateHandlerMockRecorder) SetSpeed(speed any) *gomock.Call

SetSpeed indicates an expected call of SetSpeed.

func (*MockRoomStateHandlerMockRecorder) SetWorkerStatus

func (mr *MockRoomStateHandlerMockRecorder) SetWorkerStatus(workerUUID, status any) *gomock.Call

SetWorkerStatus indicates an expected call of SetWorkerStatus.

func (*MockRoomStateHandlerMockRecorder) ShouldBeClosed

func (mr *MockRoomStateHandlerMockRecorder) ShouldBeClosed() *gomock.Call

ShouldBeClosed indicates an expected call of ShouldBeClosed.

func (*MockRoomStateHandlerMockRecorder) Shutdown

func (mr *MockRoomStateHandlerMockRecorder) Shutdown(ctx any) *gomock.Call

Shutdown indicates an expected call of Shutdown.

func (*MockRoomStateHandlerMockRecorder) SlowestEstimatedClientPosition

func (mr *MockRoomStateHandlerMockRecorder) SlowestEstimatedClientPosition() *gomock.Call

SlowestEstimatedClientPosition indicates an expected call of SlowestEstimatedClientPosition.

func (*MockRoomStateHandlerMockRecorder) Start

Start indicates an expected call of Start.

func (*MockRoomStateHandlerMockRecorder) WorkerStatus

func (mr *MockRoomStateHandlerMockRecorder) WorkerStatus() *gomock.Call

WorkerStatus indicates an expected call of WorkerStatus.

type MockServerStateHandler

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

MockServerStateHandler is a mock of ServerStateHandler interface.

func NewMockServerStateHandler

func NewMockServerStateHandler(ctrl *gomock.Controller) *MockServerStateHandler

NewMockServerStateHandler creates a new mock instance.

func (*MockServerStateHandler) AppendRoom

func (m *MockServerStateHandler) AppendRoom(room RoomStateHandler) error

AppendRoom mocks base method.

func (*MockServerStateHandler) BroadcastStatusList

func (m *MockServerStateHandler) BroadcastStatusList()

BroadcastStatusList mocks base method.

func (*MockServerStateHandler) CreateOrFindRoom

func (m *MockServerStateHandler) CreateOrFindRoom(roomName string) (RoomStateHandler, error)

CreateOrFindRoom mocks base method.

func (*MockServerStateHandler) DeleteRoom

func (m *MockServerStateHandler) DeleteRoom(room RoomStateHandler) error

DeleteRoom mocks base method.

func (*MockServerStateHandler) EXPECT

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockServerStateHandler) Init

func (m *MockServerStateHandler) Init() error

Init mocks base method.

func (*MockServerStateHandler) IsPasswordCorrect

func (m *MockServerStateHandler) IsPasswordCorrect(password string) bool

IsPasswordCorrect mocks base method.

func (*MockServerStateHandler) RenameUserIfUnavailable

func (m *MockServerStateHandler) RenameUserIfUnavailable(username string) string

RenameUserIfUnavailable mocks base method.

func (*MockServerStateHandler) Shutdown

func (m *MockServerStateHandler) Shutdown(ctx context.Context)

Shutdown mocks base method.

type MockServerStateHandlerMockRecorder

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

MockServerStateHandlerMockRecorder is the mock recorder for MockServerStateHandler.

func (*MockServerStateHandlerMockRecorder) AppendRoom

func (mr *MockServerStateHandlerMockRecorder) AppendRoom(room any) *gomock.Call

AppendRoom indicates an expected call of AppendRoom.

func (*MockServerStateHandlerMockRecorder) BroadcastStatusList

func (mr *MockServerStateHandlerMockRecorder) BroadcastStatusList() *gomock.Call

BroadcastStatusList indicates an expected call of BroadcastStatusList.

func (*MockServerStateHandlerMockRecorder) CreateOrFindRoom

func (mr *MockServerStateHandlerMockRecorder) CreateOrFindRoom(roomName any) *gomock.Call

CreateOrFindRoom indicates an expected call of CreateOrFindRoom.

func (*MockServerStateHandlerMockRecorder) DeleteRoom

func (mr *MockServerStateHandlerMockRecorder) DeleteRoom(room any) *gomock.Call

DeleteRoom indicates an expected call of DeleteRoom.

func (*MockServerStateHandlerMockRecorder) Init

Init indicates an expected call of Init.

func (*MockServerStateHandlerMockRecorder) IsPasswordCorrect

func (mr *MockServerStateHandlerMockRecorder) IsPasswordCorrect(password any) *gomock.Call

IsPasswordCorrect indicates an expected call of IsPasswordCorrect.

func (*MockServerStateHandlerMockRecorder) RenameUserIfUnavailable

func (mr *MockServerStateHandlerMockRecorder) RenameUserIfUnavailable(username any) *gomock.Call

RenameUserIfUnavailable indicates an expected call of RenameUserIfUnavailable.

func (*MockServerStateHandlerMockRecorder) Shutdown

Shutdown indicates an expected call of Shutdown.

type MockWebsocketReaderWriter

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

MockWebsocketReaderWriter is a mock of WebsocketReaderWriter interface.

func NewMockWebsocketReaderWriter

func NewMockWebsocketReaderWriter(ctrl *gomock.Controller) *MockWebsocketReaderWriter

NewMockWebsocketReaderWriter creates a new mock instance.

func (*MockWebsocketReaderWriter) Close

func (m *MockWebsocketReaderWriter) Close() error

Close mocks base method.

func (*MockWebsocketReaderWriter) EXPECT

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockWebsocketReaderWriter) ReadMessage

func (m *MockWebsocketReaderWriter) ReadMessage() ([]byte, error)

ReadMessage mocks base method.

func (*MockWebsocketReaderWriter) WriteMessage

func (m *MockWebsocketReaderWriter) WriteMessage(payload []byte) error

WriteMessage mocks base method.

type MockWebsocketReaderWriterMockRecorder

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

MockWebsocketReaderWriterMockRecorder is the mock recorder for MockWebsocketReaderWriter.

func (*MockWebsocketReaderWriterMockRecorder) Close

Close indicates an expected call of Close.

func (*MockWebsocketReaderWriterMockRecorder) ReadMessage

ReadMessage indicates an expected call of ReadMessage.

func (*MockWebsocketReaderWriterMockRecorder) WriteMessage

func (mr *MockWebsocketReaderWriterMockRecorder) WriteMessage(payload any) *gomock.Call

WriteMessage indicates an expected call of WriteMessage.

type NewReaderWriter

type NewReaderWriter func(*websocket.Conn) WebsocketReaderWriter

type Pause

type Pause struct {
	Username string `json:"username"`
}

func (Pause) Type

func (p Pause) Type() MessageType

type Ping

type Ping struct {
	Uuid string `json:"uuid"`
}

func (Ping) Type

func (p Ping) Type() MessageType

type PlaybackSpeed

type PlaybackSpeed struct {
	Speed    float64 `json:"speed"`
	Username string  `json:"username"`
}

func (PlaybackSpeed) Type

func (pl PlaybackSpeed) Type() MessageType

type Playlist

type Playlist struct {
	Playlist []string `json:"playlist"`
	Username string   `json:"username"`
}

func (Playlist) Type

func (pl Playlist) Type() MessageType

type Room

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

func (*Room) AppendWorker

func (room *Room) AppendWorker(worker ClientWorker)

func (*Room) BroadcastAll

func (room *Room) BroadcastAll(payload []byte)

func (*Room) BroadcastExcept

func (room *Room) BroadcastExcept(payload []byte, workerUUID uuid.UUID)

func (*Room) Close

func (room *Room) Close() error

func (*Room) DeleteWorker

func (room *Room) DeleteWorker(workerUUID uuid.UUID)

func (*Room) HandleCache

func (room *Room) HandleCache(cache bool, workerUUID uuid.UUID, username string)

func (*Room) IsEmpty

func (room *Room) IsEmpty() bool

func (*Room) Name

func (room *Room) Name() string

func (*Room) Ready

func (room *Room) Ready() bool

func (*Room) RoomConfig

func (room *Room) RoomConfig() RoomConfig

func (*Room) RoomState

func (room *Room) RoomState() RoomState

func (*Room) SetLastSeek

func (room *Room) SetLastSeek(position Duration)

func (*Room) SetPaused

func (room *Room) SetPaused(paused bool)

func (*Room) SetPlaylist

func (room *Room) SetPlaylist(playlist []string)

func (*Room) SetPlaylistState

func (room *Room) SetPlaylistState(video *string, position Duration, paused *bool, lastSeek *Duration, speed *float64)

func (*Room) SetPosition

func (room *Room) SetPosition(position Duration)

func (*Room) SetSpeed

func (room *Room) SetSpeed(speed float64)

func (*Room) SetWorkerStatus

func (room *Room) SetWorkerStatus(workerUUID uuid.UUID, status Status)

func (*Room) ShouldBeClosed

func (room *Room) ShouldBeClosed() bool

func (*Room) Shutdown

func (room *Room) Shutdown(ctx context.Context)

func (*Room) SlowestEstimatedClientPosition

func (room *Room) SlowestEstimatedClientPosition() *Duration

func (*Room) Start

func (room *Room) Start()

func (*Room) WorkerStatus

func (room *Room) WorkerStatus() []Status

type RoomConfig

type RoomConfig struct {
	Name             string
	Path             string
	DBUpdateInterval uint64
	DBWaitTimeout    uint64
	Persistent       bool
}

type RoomState

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

type RoomStateHandler

type RoomStateHandler interface {
	Start()
	Close() error
	Shutdown(ctx context.Context)
	AppendWorker(worker ClientWorker)
	DeleteWorker(workerUUID uuid.UUID)
	BroadcastAll(message []byte)
	BroadcastExcept(payload []byte, workerUUID uuid.UUID)
	SlowestEstimatedClientPosition() *Duration
	SetPosition(position Duration)
	SetSpeed(speed float64)
	SetPaused(paused bool)
	SetPlaylist(playlist []string)
	SetLastSeek(position Duration)
	SetPlaylistState(video *string, position Duration, paused *bool, lastSeek *Duration, speed *float64)
	HandleCache(cache bool, workerUUID uuid.UUID, username string)
	RoomState() RoomState
	Name() string
	RoomConfig() RoomConfig
	WorkerStatus() []Status
	SetWorkerStatus(workerUUID uuid.UUID, status Status)
	ShouldBeClosed() bool
	IsEmpty() bool
	Ready() bool
}

func NewRoom

func NewRoom(name string, path string, dbUpdateInterval uint64, dbWaitTimeout uint64, persistent bool) (RoomStateHandler, error)

Creates a new Room which handles requests from workers in a shared channel. The database is created in a file at path/name.db

type Seek

type Seek struct {
	Filename string   `json:"filename"`
	Position Duration `json:"position"`
	Desync   bool     `json:"desync"`
	Username string   `json:"username"`
}

func (Seek) Type

func (s Seek) Type() MessageType

type Select

type Select struct {
	Filename *string  `json:"filename"`
	Position Duration `json:"position"`
	Username string   `json:"username"`
}

func (Select) Type

func (s Select) Type() MessageType

type Server

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

func (*Server) AppendRoom

func (server *Server) AppendRoom(room RoomStateHandler) error

func (Server) BroadcastStatusList

func (server Server) BroadcastStatusList()

func (*Server) CreateOrFindRoom

func (server *Server) CreateOrFindRoom(roomName string) (RoomStateHandler, error)

func (*Server) DeleteRoom

func (server *Server) DeleteRoom(room RoomStateHandler) error

func (*Server) Init

func (server *Server) Init() error

func (*Server) IsPasswordCorrect

func (server *Server) IsPasswordCorrect(password string) bool

func (*Server) RenameUserIfUnavailable

func (server *Server) RenameUserIfUnavailable(username string) string

func (*Server) Shutdown

func (server *Server) Shutdown(ctx context.Context)

type ServerMessage

type ServerMessage struct {
	Message string `json:"message"`
	IsError bool   `json:"error"`
}

func (ServerMessage) Type

func (sm ServerMessage) Type() MessageType

type ServerStateHandler

type ServerStateHandler interface {
	Init() error
	Shutdown(ctx context.Context)
	DeleteRoom(room RoomStateHandler) error
	AppendRoom(room RoomStateHandler) error
	CreateOrFindRoom(roomName string) (RoomStateHandler, error)
	BroadcastStatusList()
	RenameUserIfUnavailable(username string) string
	IsPasswordCorrect(password string) bool
}

func NewServer

func NewServer(password string, dbPath string, dbUpdateInterval uint64, dbWaitTimeout uint64) ServerStateHandler

type Start

type Start struct {
	Username string `json:"username"`
}

func (Start) Type

func (s Start) Type() MessageType

type Status

type Status struct {
	Ready    bool   `json:"ready"`
	Username string `json:"username"`
}

func (Status) Type

func (s Status) Type() MessageType

type StatusList

type StatusList struct {
	Rooms map[string][]Status `json:"rooms"`
}

func (StatusList) Type

func (sl StatusList) Type() MessageType

type Task

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

type Unknown

type Unknown struct {
	Username string `json:"username"`
	json.RawMessage
}

func (Unknown) Type

func (u Unknown) Type() MessageType

type Unsupported

type Unsupported struct {
	Username string `json:"username"`
	json.RawMessage
}

func (Unsupported) Type

func (u Unsupported) Type() MessageType

type UserMessage

type UserMessage struct {
	Message  string `json:"message"`
	Username string `json:"username"`
}

func (UserMessage) Type

func (m UserMessage) Type() MessageType

type VideoStatus

type VideoStatus struct {
	Filename   *string   `json:"filename"`
	Position   *Duration `json:"position"`
	Paused     bool      `json:"paused"`
	Speed      float64   `json:"speed"`
	FileLoaded bool      `json:"fileLoaded"`
	Cache      bool      `json:"cache"`
	Username   string    `json:"username"`
}

func (VideoStatus) Type

func (vs VideoStatus) Type() MessageType

type WebsocketHandler

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

func NewWebSocketHandler

func NewWebSocketHandler(host string, port uint16, cert string, key string, handler ServerStateHandler, readerWriter NewReaderWriter, clientWorker NewClientWorker) WebsocketHandler

TODO read and write timeout in config

func (WebsocketHandler) Close

func (websocketHandler WebsocketHandler) Close()

func (WebsocketHandler) Listen

func (websocketHandler WebsocketHandler) Listen() error

func (WebsocketHandler) ServeHTTP

func (websocketHandler WebsocketHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)

func (WebsocketHandler) Stop

func (websocketHandler WebsocketHandler) Stop()

type WebsocketReaderWriter

type WebsocketReaderWriter interface {
	WriteMessage(payload []byte) error
	ReadMessage() ([]byte, error)
	Close() error
}

func NewWsReaderWriter

func NewWsReaderWriter(conn *websocket.Conn) WebsocketReaderWriter

type Worker

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

func (*Worker) Close

func (worker *Worker) Close()

func (*Worker) EstimatePosition

func (worker *Worker) EstimatePosition() *Duration

func (*Worker) SendMessage

func (worker *Worker) SendMessage(payload []byte)

func (*Worker) SetUserStatus

func (worker *Worker) SetUserStatus(status Status)

func (*Worker) Shutdown

func (worker *Worker) Shutdown()

func (*Worker) Start

func (worker *Worker) Start()

func (*Worker) UUID

func (worker *Worker) UUID() uuid.UUID

func (*Worker) VideoState

func (worker *Worker) VideoState() workerVideoState

type WsReaderWriter

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

func (WsReaderWriter) Close

func (webSocket WsReaderWriter) Close() error

func (WsReaderWriter) ReadMessage

func (webSocket WsReaderWriter) ReadMessage() ([]byte, error)

func (WsReaderWriter) WriteMessage

func (webSocket WsReaderWriter) WriteMessage(payload []byte) error

Jump to

Keyboard shortcuts

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