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:
parent
570f501a76
commit
9edcb83fc4
12 changed files with 216 additions and 335 deletions
|
@ -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)
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
}
|
Reference in a new issue