package core import ( "context" "dynatron.me/x/blasphem/pkg/auth" "dynatron.me/x/blasphem/pkg/bus" "dynatron.me/x/blasphem/pkg/components" "dynatron.me/x/blasphem/pkg/config" "dynatron.me/x/blasphem/pkg/storage" ) type Blas interface { auth.Authenticator bus.Bus storage.Store config.Configured components.Componenter WebSocketManager Shutdowner Versioner } type WebSocketManager interface { // Register registers a websocket command. // cmd is the first part, before first slash // dataNew is a function to create a new message datatype RegisterWSCommand(cmd string, hnd Handler, dataNew NewData) WSCommandHandler(cmd string) (NewData, Handler, error) } type WebSocketSession interface { Go() error Blas() Blas } type Handler func(wss WebSocketSession, msg interface{}) error type NewData func() interface{} type Shutdowner interface { ShutdownBlas(context.Context) error } type Versioner interface { Version() string }