neko/internal/types/session.go

84 lines
1.9 KiB
Go
Raw Normal View History

package types
2020-11-02 06:39:12 +13:00
import "net/http"
type MemberProfile struct {
2020-12-03 05:29:38 +13:00
Secret string
Name string
IsAdmin bool
CanLogin bool
CanConnect bool
CanWatch bool
CanHost bool
CanAccessClipboard bool
}
type MembersDatabase interface {
2020-12-07 06:11:11 +13:00
Connect() error
Disconnect() error
Insert(id string, profile MemberProfile) error
Update(id string, profile MemberProfile) error
Delete(id string) error
2020-12-07 06:11:11 +13:00
Select() (map[string]MemberProfile, error)
}
type Session interface {
ID() string
2020-12-03 05:29:38 +13:00
VerifySecret(secret string) bool
Name() string
2020-12-03 04:49:51 +13:00
IsAdmin() bool
2020-12-03 05:29:38 +13:00
CanLogin() bool
CanConnect() bool
CanWatch() bool
CanHost() bool
CanAccessClipboard() bool
IsHost() bool
2020-12-03 04:49:51 +13:00
IsConnected() bool
2020-12-03 05:29:38 +13:00
IsReceiving() bool
Disconnect(reason string) error
2020-11-26 06:36:33 +13:00
SetWebSocketPeer(websocket_peer WebSocketPeer)
2020-11-26 08:02:53 +13:00
SetWebSocketConnected(connected bool)
2020-12-03 05:29:38 +13:00
Send(v interface{}) error
2020-11-26 06:41:40 +13:00
SetWebRTCPeer(webrtc_peer WebRTCPeer)
2020-11-26 08:02:53 +13:00
SetWebRTCConnected(connected bool)
SignalAnswer(sdp string) error
}
type SessionManager interface {
2020-12-07 06:11:11 +13:00
Connect() error
Disconnect() error
2020-12-06 11:05:46 +13:00
Create(id string, profile MemberProfile) (Session, error)
2020-12-06 10:18:45 +13:00
Update(id string, profile MemberProfile) error
2020-11-02 04:09:48 +13:00
Get(id string) (Session, bool)
2020-11-26 10:06:13 +13:00
Delete(id string) error
2020-11-02 04:09:48 +13:00
SetHost(host Session)
GetHost() Session
ClearHost()
2020-11-02 04:09:48 +13:00
HasConnectedMembers() bool
2020-11-02 04:09:48 +13:00
Members() []Session
2020-11-19 08:30:33 +13:00
Broadcast(v interface{}, exclude interface{})
AdminBroadcast(v interface{}, exclude interface{})
2020-11-02 04:09:48 +13:00
2020-11-01 11:03:37 +13:00
OnHost(listener func(session Session))
OnHostCleared(listener func(session Session))
2020-12-03 06:59:32 +13:00
OnCreated(listener func(session Session))
OnDeleted(listener func(session Session))
2020-11-01 11:03:37 +13:00
OnConnected(listener func(session Session))
2020-11-02 08:53:25 +13:00
OnDisconnected(listener func(session Session))
2020-12-04 04:10:52 +13:00
OnProfileChanged(listener func(session Session))
OnStateChanged(listener func(session Session))
2020-12-03 05:29:38 +13:00
2020-12-02 23:24:20 +13:00
ImplicitHosting() bool
2020-11-02 06:39:12 +13:00
2020-11-02 08:23:09 +13:00
Authenticate(r *http.Request) (Session, error)
}