57 lines
1.3 KiB
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
|
|
} |