Use publisher/subscriber objects as map keys.

This commit is contained in:
Joachim Bauch 2020-10-26 09:34:11 +01:00
parent 18c1874333
commit 7681e26fbb
Failed to extract signature

View file

@ -48,11 +48,11 @@ type ProxySession struct {
publishersLock sync.Mutex
publishers map[string]signaling.McuPublisher
publisherIds map[string]string
publisherIds map[signaling.McuPublisher]string
subscribersLock sync.Mutex
subscribers map[string]signaling.McuSubscriber
subscriberIds map[string]string
subscriberIds map[signaling.McuSubscriber]string
}
func NewProxySession(proxy *ProxyServer, sid uint64, id string) *ProxySession {
@ -63,10 +63,10 @@ func NewProxySession(proxy *ProxyServer, sid uint64, id string) *ProxySession {
lastUsed: time.Now().UnixNano(),
publishers: make(map[string]signaling.McuPublisher),
publisherIds: make(map[string]string),
publisherIds: make(map[signaling.McuPublisher]string),
subscribers: make(map[string]signaling.McuSubscriber),
subscriberIds: make(map[string]string),
subscriberIds: make(map[signaling.McuSubscriber]string),
}
}
@ -200,20 +200,20 @@ func (s *ProxySession) StorePublisher(ctx context.Context, id string, publisher
defer s.publishersLock.Unlock()
s.publishers[id] = publisher
s.publisherIds[publisher.Id()] = id
s.publisherIds[publisher] = id
}
func (s *ProxySession) DeletePublisher(publisher signaling.McuPublisher) string {
s.publishersLock.Lock()
defer s.publishersLock.Unlock()
id, found := s.publisherIds[publisher.Id()]
id, found := s.publisherIds[publisher]
if !found {
return ""
}
delete(s.publishers, id)
delete(s.publisherIds, publisher.Id())
delete(s.publisherIds, publisher)
return id
}
@ -222,20 +222,20 @@ func (s *ProxySession) StoreSubscriber(ctx context.Context, id string, subscribe
defer s.subscribersLock.Unlock()
s.subscribers[id] = subscriber
s.subscriberIds[subscriber.Id()] = id
s.subscriberIds[subscriber] = id
}
func (s *ProxySession) DeleteSubscriber(subscriber signaling.McuSubscriber) string {
s.subscribersLock.Lock()
defer s.subscribersLock.Unlock()
id, found := s.subscriberIds[subscriber.Id()]
id, found := s.subscriberIds[subscriber]
if !found {
return ""
}
delete(s.subscribers, id)
delete(s.subscriberIds, subscriber.Id())
delete(s.subscriberIds, subscriber)
return id
}
@ -249,7 +249,7 @@ func (s *ProxySession) clearPublishers() {
}
}(s.publishers)
s.publishers = make(map[string]signaling.McuPublisher)
s.publisherIds = make(map[string]string)
s.publisherIds = make(map[signaling.McuPublisher]string)
}
func (s *ProxySession) clearSubscribers() {
@ -262,7 +262,7 @@ func (s *ProxySession) clearSubscribers() {
}
}(s.subscribers)
s.subscribers = make(map[string]signaling.McuSubscriber)
s.subscriberIds = make(map[string]string)
s.subscriberIds = make(map[signaling.McuSubscriber]string)
}
func (s *ProxySession) NotifyDisconnected() {