addStream method
Implementation
void addStream(Direction dir) {
if (_isDone) {
throw _wrapError(network_errors.ResourceScopeClosedException());
}
final err = _resources.addStream(dir, name); // Pass owner id (name)
if (err != null) {
throw _wrapError(err); // Wrap it for context
}
try {
_addStreamForAncestors(dir);
} catch (e) {
_resources.removeStream(dir, name); // Rollback, Pass owner id (name)
if (e is network_errors.ResourceLimitExceededException ||
e is network_errors.ResourceScopeClosedException) {
rethrow;
} else if (e is Exception) {
throw _wrapError(e);
} else {
rethrow;
}
}
}