add cache

This commit is contained in:
GitProtogen
2026-03-16 13:49:11 +01:00
parent 83d2105b4e
commit 66e189d247
3 changed files with 69 additions and 2 deletions
+44
View File
@@ -0,0 +1,44 @@
package main
import "sync"
var (
mu sync.RWMutex
ChatGroups = make(map[uint32]ChatGroup)
Clients = make(map[uint32]Client)
ClientsMap = make(map[uint32]map[uint32]*Client)
)
func AddGroupToCache(chatGroup *ChatGroup) {
mu.Lock()
defer mu.Unlock()
ChatGroups[chatGroup.Id] = *chatGroup
ClientsMap[chatGroup.Id] = make(map[uint32]*Client)
}
func RemoveGroupFromCache(chatGroup *ChatGroup) {
mu.Lock()
defer mu.Unlock()
delete(ChatGroups, chatGroup.Id)
delete(ClientsMap, chatGroup.Id)
}
func AddUserToCache(client *Client) {
mu.Lock()
defer mu.Unlock()
for _, groupIn := range client.Groups {
if clients, ok := ClientsMap[groupIn.Id]; ok {
clients[client.Id] = client
}
}
}
func RemoveClientFromCache(client *Client) {
mu.Lock()
defer mu.Unlock()
for _, groupIn := range client.Groups {
if clients, ok := ClientsMap[groupIn.Id]; ok {
delete(clients, client.Id)
}
}
}