3
0
Fork 0

CHG: refactor

CHG: use concurrent map instead of regular map with lock
DEL: global session control, moved to per server only
DEL: unused command system
This commit is contained in:
Thomas van Weert 2023-02-16 20:04:17 +01:00
parent 570f501a76
commit 9edcb83fc4
12 changed files with 216 additions and 335 deletions

View file

@ -5,15 +5,10 @@ import (
"sync"
)
var serverMux sync.RWMutex
var servers = make(map[string]*objects.Server)
var servers = new(sync.Map)
func AddServer(server *objects.Server) {
serverMux.Lock()
if _,ok := servers[server.ID]; !ok {
servers[server.ID] = server
}
serverMux.Unlock()
servers.LoadOrStore(server.ID, server)
}
func CanServer(server string) bool {
@ -28,27 +23,12 @@ func CanServer(server string) bool {
}
}
func GetServer(server string) *objects.Server {
serverMux.Lock()
val,ok := servers[server]
serverMux.Unlock()
if ok {
return val
} else {
return nil
}
}
func HasServer(publicKey string) (bool, *objects.Server) {
serverMux.Lock()
val,ok := servers[publicKey]
serverMux.Unlock()
return ok, val
val, ok := servers.Load(publicKey)
return ok, val.(*objects.Server)
}
func RemoveServer(session string) {
serverMux.Lock()
delete(servers, session)
serverMux.Unlock()
}
func RemoveServer(session string) *objects.Server {
val, _ := servers.LoadAndDelete(session)
return val.(*objects.Server)
}

View file

@ -1,45 +0,0 @@
package data
import (
"github.com/ParadoxPixel/ThemePark-Websocket/objects"
"sync"
)
var sessionMux sync.RWMutex
var sessions = make(map[string]*objects.Session)
func AddSession(session *objects.Session) {
sessionMux.Lock()
sessions[session.Token] = session
sessionMux.Unlock()
}
func GetSession(session string) *objects.Session {
sessionMux.Lock()
val := sessions[session]
sessionMux.Unlock()
return val
}
func HasSession(session string) bool {
sessionMux.Lock()
_,ok := sessions[session]
sessionMux.Unlock()
return ok
}
func CanSession(session string) bool {
if session == "" || session == "null" {
return false
}
return !HasSession(session)
}
func RemoveSession(session string) {
sessionMux.Lock()
delete(sessions, session)
sessionMux.Unlock()
}