This repository has been archived on 2021-06-24. You can view files and clone it, but cannot push or open issues or pull requests.
ui/go/servers/server_manager.go

57 lines
1.3 KiB
Go

package servers
import (
"cwtch.im/cwtch/event"
"cwtch.im/cwtch/server"
"cwtch.im/ui/go/constants"
"cwtch.im/ui/go/the"
"cwtch.im/ui/go/ui"
"git.openprivacy.ca/openprivacy/log"
)
// ServerManager is responsible for managing user operated servers
type ServerManager struct {
servers map[string]server.Server
}
func LaunchServiceManager(gcd *ui.GrandCentralDispatcher) {
sm := new(ServerManager)
sm.Init(gcd)
}
func (sm * ServerManager) Init(gcd *ui.GrandCentralDispatcher) {
sm.servers = make(map[string]server.Server)
q := event.NewQueue()
the.AppBus.Subscribe(constants.ListServers, q)
for {
e := q.Next()
switch e.EventType {
case constants.ListServers: {
sm.ListServers(gcd)
}
}
}
}
// TODO Replace with details from actual hosted servers. Right now these values are used to sketch / test out the
// UI QML
func (sm * ServerManager) ListServers(gcd *ui.GrandCentralDispatcher) {
log.Debugf("Listing Servers...")
gcd.AddServer("Server 1","Server 1","server",0)
gcd.AddServer("Server 2","Server 2","server",4)
gcd.AddServer("Server 3","Server 3","server",4)
}
func (sm * ServerManager) StartServer(handle string) {
// TODO Start the server with the given handle config
}
func (sm * ServerManager) StopServer(handle string) {
// TODO Stop the given server
}