implement scope viewers

This commit is contained in:
vyzo 2021-12-23 18:29:41 +02:00
parent 3422b8cbde
commit 71b70cd48b

View File

@ -123,24 +123,30 @@ func NewResourceManager(limits Limiter) *ResourceManager {
return r return r
} }
func (r *ResourceManager) GetSystem() network.ResourceScope { func (r *ResourceManager) ViewSystem(f func(network.ResourceScope) error) error {
return r.system return f(r.system)
} }
func (r *ResourceManager) GetTransient() network.ResourceScope { func (r *ResourceManager) ViewTransient(f func(network.ResourceScope) error) error {
return r.transient return f(r.transient)
} }
func (r *ResourceManager) GetService(srv string) network.ServiceScope { func (r *ResourceManager) ViewService(srv string, f func(network.ServiceScope) error) error {
return r.getServiceScope(srv) return f(r.getServiceScope(srv))
} }
func (r *ResourceManager) GetProtocol(proto protocol.ID) network.ProtocolScope { func (r *ResourceManager) ViewProtocol(proto protocol.ID, f func(network.ProtocolScope) error) error {
return r.getProtocolScope(proto) s := r.getProtocol(proto)
defer s.DecRef()
return f(s)
} }
func (r *ResourceManager) GetPeer(p peer.ID) network.PeerScope { func (r *ResourceManager) ViewPeer(p peer.ID, f func(network.PeerScope) error) error {
return r.getPeerScope(p) s := r.getPeerScope(p)
defer s.DecRef()
return f(s)
} }
func (r *ResourceManager) getServiceScope(svc string) *ServiceScope { func (r *ResourceManager) getServiceScope(svc string) *ServiceScope {