ResourceScopeImpl class

Implemented types
Implementers

Constructors

ResourceScopeImpl(Limit limit, String name, {ResourceScopeImpl? owner, List<ResourceScopeImpl>? edges})

Properties

edges ↔ List<ResourceScopeImpl>
getter/setter pair
hashCode → int
The hash code for this object.
no setterinherited
name → String
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
stat → ScopeStat
Stat retrieves current resource usage for the scope.
no setteroverride

Methods

addConn(Direction dir, bool usefd) → void
addStream(Direction dir) → void
beginSpan() → Future<ResourceScopeSpan>
BeginSpan creates a new span scope rooted at this scope.
override
decRef() → void
done() → void
Done ends the span and releases associated resources.
override
incRef() → void
isUnused({int ownRefs = 0}) → bool
Whether nothing uses this scope: it holds no resource and no scope or span refers to it. ownRefs references are not counted; the resource manager holds one on each peer scope it keeps.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
releaseMemory(int size) → void
ReleaseMemory explicitly releases memory previously reserved with ReserveMemory.
override
removeConn(Direction dir, bool usefd) → void
removeStream(Direction dir) → void
reparent(List<ResourceScopeImpl> newEdges) → void
Moves this scope under newEdges. Its current resources are counted in the ancestors it gains and released from the ones it loses; an ancestor it keeps (the system scope, usually) keeps counting them once. This is how go-libp2p's SetPeer and SetProtocol juggle resources. Throws, and changes nothing, if a gained ancestor's limit would be exceeded.
reserveMemory(int size, int priority) → Future<void>
ReserveMemory reserves memory/buffer space in the scope; the unit is bytes.
override
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited