CommunitySolidServer/docs/classes/LockingResourceStore.html

51 lines
50 KiB
HTML

<!DOCTYPE html><html class="default"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>LockingResourceStore | Community Solid Server - v4.0.0</title><meta name="description" content="Documentation for Community Solid Server - v4.0.0"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.body.classList.add(localStorage.getItem("tsd-theme") || "os")</script><header><div class="tsd-page-toolbar"><div class="container"><div class="table-wrap"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget search no-caption">Search</label><input type="text" id="tsd-search-field"/></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">Community Solid Server - v4.0.0</a></div><div class="table-cell" id="tsd-widgets"><div id="tsd-filter"><a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a><div class="tsd-filter-group"><div class="tsd-select" id="tsd-filter-visibility"><span class="tsd-select-label">All</span><ul class="tsd-select-list"><li data-value="public">Public</li><li data-value="protected">Public/Protected</li><li data-value="private" class="selected">All</li></ul></div> <input type="checkbox" id="tsd-filter-inherited" checked/><label class="tsd-widget" for="tsd-filter-inherited">Inherited</label><input type="checkbox" id="tsd-filter-externals" checked/><label class="tsd-widget" for="tsd-filter-externals">Externals</label></div></div><a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a></div></div></div></div><div class="tsd-page-title"><div class="container"><ul class="tsd-breadcrumb"><li><a href="../modules.html">Community Solid Server - v4.0.0</a></li><li><a href="LockingResourceStore.html">LockingResourceStore</a></li></ul><h1>Class LockingResourceStore</h1></div></div></header><div class="container container-main"><div class="row"><div class="col-8 col-content"><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><div class="lead">
<p>Store that for every call acquires a lock before executing it on the requested resource,
and releases it afterwards.
In case the request returns a Representation the lock will only be released when the data stream is finished.</p>
</div><div><p>For auxiliary resources the lock will be applied to the subject resource.
The actual operation is still executed on the auxiliary resource.</p>
</div></div></section><section class="tsd-panel tsd-hierarchy"><h3>Hierarchy</h3><ul class="tsd-hierarchy"><li><span class="target">LockingResourceStore</span></li></ul></section><section class="tsd-panel"><h3>Implements</h3><ul class="tsd-hierarchy"><li><a href="../interfaces/AtomicResourceStore.html" class="tsd-signature-type" data-tsd-kind="Interface">AtomicResourceStore</a></li></ul></section><section class="tsd-panel-group tsd-index-group"><h2>Index</h2><section class="tsd-panel tsd-index-panel"><div class="tsd-index-content"><section class="tsd-index-section "><h3>Constructors</h3><ul class="tsd-index-list"><li class="tsd-kind-constructor tsd-parent-kind-class"><a href="LockingResourceStore.html#constructor" class="tsd-kind-icon">constructor</a></li></ul></section><section class="tsd-index-section tsd-is-private-protected"><h3>Properties</h3><ul class="tsd-index-list"><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="LockingResourceStore.html#auxiliaryStrategy" class="tsd-kind-icon">auxiliary<wbr/>Strategy</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="LockingResourceStore.html#locks" class="tsd-kind-icon">locks</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-protected"><a href="LockingResourceStore.html#logger" class="tsd-kind-icon">logger</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="LockingResourceStore.html#source" class="tsd-kind-icon">source</a></li></ul></section><section class="tsd-index-section "><h3>Methods</h3><ul class="tsd-index-list"><li class="tsd-kind-method tsd-parent-kind-class"><a href="LockingResourceStore.html#addResource" class="tsd-kind-icon">add<wbr/>Resource</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a href="LockingResourceStore.html#createExpiringRepresentation" class="tsd-kind-icon">create<wbr/>Expiring<wbr/>Representation</a></li><li class="tsd-kind-method tsd-parent-kind-class"><a href="LockingResourceStore.html#deleteResource" class="tsd-kind-icon">delete<wbr/>Resource</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a href="LockingResourceStore.html#getLockIdentifier" class="tsd-kind-icon">get<wbr/>Lock<wbr/>Identifier</a></li><li class="tsd-kind-method tsd-parent-kind-class"><a href="LockingResourceStore.html#getRepresentation" class="tsd-kind-icon">get<wbr/>Representation</a></li><li class="tsd-kind-method tsd-parent-kind-class"><a href="LockingResourceStore.html#hasResource" class="tsd-kind-icon">has<wbr/>Resource</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a href="LockingResourceStore.html#lockedRepresentationRun" class="tsd-kind-icon">locked<wbr/>Representation<wbr/>Run</a></li><li class="tsd-kind-method tsd-parent-kind-class"><a href="LockingResourceStore.html#modifyResource" class="tsd-kind-icon">modify<wbr/>Resource</a></li><li class="tsd-kind-method tsd-parent-kind-class"><a href="LockingResourceStore.html#setRepresentation" class="tsd-kind-icon">set<wbr/>Representation</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a href="LockingResourceStore.html#waitForStreamToEnd" class="tsd-kind-icon">wait<wbr/>For<wbr/>Stream<wbr/>To<wbr/>End</a></li></ul></section></div></section></section><section class="tsd-panel-group tsd-member-group "><h2>Constructors</h2><section class="tsd-panel tsd-member tsd-kind-constructor tsd-parent-kind-class"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link">constructor<a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-constructor tsd-parent-kind-class"><li class="tsd-signature tsd-kind-icon">new <wbr/>Locking<wbr/>Resource<wbr/>Store<span class="tsd-signature-symbol">(</span>source<span class="tsd-signature-symbol">: </span><a href="../interfaces/ResourceStore.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceStore</a>, locks<span class="tsd-signature-symbol">: </span><a href="../interfaces/ExpiringReadWriteLocker.html" class="tsd-signature-type" data-tsd-kind="Interface">ExpiringReadWriteLocker</a>, auxiliaryStrategy<span class="tsd-signature-symbol">: </span><a href="../interfaces/AuxiliaryIdentifierStrategy.html" class="tsd-signature-type" data-tsd-kind="Interface">AuxiliaryIdentifierStrategy</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="LockingResourceStore.html" class="tsd-signature-type" data-tsd-kind="Class">LockingResourceStore</a></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/1c376cb/src/storage/LockingResourceStore.ts#L30">src/storage/LockingResourceStore.ts:30</a></li></ul></aside><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>source: <a href="../interfaces/ResourceStore.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceStore</a></h5></li><li><h5>locks: <a href="../interfaces/ExpiringReadWriteLocker.html" class="tsd-signature-type" data-tsd-kind="Interface">ExpiringReadWriteLocker</a></h5></li><li><h5>auxiliaryStrategy: <a href="../interfaces/AuxiliaryIdentifierStrategy.html" class="tsd-signature-type" data-tsd-kind="Interface">AuxiliaryIdentifierStrategy</a></h5></li></ul><h4 class="tsd-returns-title">Returns <a href="LockingResourceStore.html" class="tsd-signature-type" data-tsd-kind="Class">LockingResourceStore</a></h4></li></ul></section></section><section class="tsd-panel-group tsd-member-group tsd-is-private-protected"><h2>Properties</h2><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-private"><a id="auxiliaryStrategy" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span class="tsd-flag ts-flagPrivate">Private</span> <span class="tsd-flag ts-flagReadonly">Readonly</span> auxiliary<wbr/>Strategy<a href="#auxiliaryStrategy" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><div class="tsd-signature tsd-kind-icon">auxiliary<wbr/>Strategy<span class="tsd-signature-symbol">:</span> <a href="../interfaces/AuxiliaryIdentifierStrategy.html" class="tsd-signature-type" data-tsd-kind="Interface">AuxiliaryIdentifierStrategy</a></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/1c376cb/src/storage/LockingResourceStore.ts#L28">src/storage/LockingResourceStore.ts:28</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-private"><a id="locks" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span class="tsd-flag ts-flagPrivate">Private</span> <span class="tsd-flag ts-flagReadonly">Readonly</span> locks<a href="#locks" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><div class="tsd-signature tsd-kind-icon">locks<span class="tsd-signature-symbol">:</span> <a href="../interfaces/ExpiringReadWriteLocker.html" class="tsd-signature-type" data-tsd-kind="Interface">ExpiringReadWriteLocker</a></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/1c376cb/src/storage/LockingResourceStore.ts#L27">src/storage/LockingResourceStore.ts:27</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-protected"><a id="logger" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span class="tsd-flag ts-flagProtected">Protected</span> <span class="tsd-flag ts-flagReadonly">Readonly</span> logger<a href="#logger" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><div class="tsd-signature tsd-kind-icon">logger<span class="tsd-signature-symbol">:</span> <a href="../interfaces/Logger.html" class="tsd-signature-type" data-tsd-kind="Interface">Logger</a><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/1c376cb/src/storage/LockingResourceStore.ts#L24">src/storage/LockingResourceStore.ts:24</a></li></ul></aside></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-private"><a id="source" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span class="tsd-flag ts-flagPrivate">Private</span> <span class="tsd-flag ts-flagReadonly">Readonly</span> source<a href="#source" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><div class="tsd-signature tsd-kind-icon">source<span class="tsd-signature-symbol">:</span> <a href="../interfaces/ResourceStore.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceStore</a></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/1c376cb/src/storage/LockingResourceStore.ts#L26">src/storage/LockingResourceStore.ts:26</a></li></ul></aside></section></section><section class="tsd-panel-group tsd-member-group "><h2>Methods</h2><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="addResource" class="tsd-anchor"></a><h3 class="tsd-anchor-link">add<wbr/>Resource<a href="#addResource" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"><li class="tsd-signature tsd-kind-icon">add<wbr/>Resource<span class="tsd-signature-symbol">(</span>container<span class="tsd-signature-symbol">: </span><a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a>, representation<span class="tsd-signature-symbol">: </span><a href="../interfaces/Representation.html" class="tsd-signature-type" data-tsd-kind="Interface">Representation</a>, conditions<span class="tsd-signature-symbol">?: </span><a href="../interfaces/Conditions.html" class="tsd-signature-type" data-tsd-kind="Interface">Conditions</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">&gt;</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><p>Implementation of <a href="../interfaces/AtomicResourceStore.html">AtomicResourceStore</a>.<a href="../interfaces/AtomicResourceStore.html#addResource">addResource</a></p><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/1c376cb/src/storage/LockingResourceStore.ts#L48">src/storage/LockingResourceStore.ts:48</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>Creates a new resource in the container.</p>
</div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>container: <a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a></h5></li><li><h5>representation: <a href="../interfaces/Representation.html" class="tsd-signature-type" data-tsd-kind="Interface">Representation</a></h5></li><li><h5><span class="tsd-flag ts-flagOptional">Optional</span> conditions: <a href="../interfaces/Conditions.html" class="tsd-signature-type" data-tsd-kind="Interface">Conditions</a></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">&gt;</span></h4><div><p>The identifier of the newly created resource.</p>
</div></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a id="createExpiringRepresentation" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span class="tsd-flag ts-flagProtected">Protected</span> create<wbr/>Expiring<wbr/>Representation<a href="#createExpiringRepresentation" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-protected"><li class="tsd-signature tsd-kind-icon">create<wbr/>Expiring<wbr/>Representation<span class="tsd-signature-symbol">(</span>representation<span class="tsd-signature-symbol">: </span><a href="../interfaces/Representation.html" class="tsd-signature-type" data-tsd-kind="Interface">Representation</a>, maintainLock<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../interfaces/Representation.html" class="tsd-signature-type" data-tsd-kind="Interface">Representation</a></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/1c376cb/src/storage/LockingResourceStore.ts#L126">src/storage/LockingResourceStore.ts:126</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>Wraps a representation to make it reset the timeout timer every time data is read.</p>
</div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>representation: <a href="../interfaces/Representation.html" class="tsd-signature-type" data-tsd-kind="Interface">Representation</a></h5><div class="tsd-comment tsd-typography"><div class="lead">
<p>The representation to wrap</p>
</div></div></li><li><h5>maintainLock: <span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">void</span></h5><div class="tsd-comment tsd-typography"><div class="lead">
<p>Function to call to reset the timer.</p>
</div></div><ul class="tsd-parameters"><li class="tsd-parameter-signature"><ul class="tsd-signatures tsd-kind-type-literal"><li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4></li></ul></li></ul></li></ul><h4 class="tsd-returns-title">Returns <a href="../interfaces/Representation.html" class="tsd-signature-type" data-tsd-kind="Interface">Representation</a></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="deleteResource" class="tsd-anchor"></a><h3 class="tsd-anchor-link">delete<wbr/>Resource<a href="#deleteResource" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"><li class="tsd-signature tsd-kind-icon">delete<wbr/>Resource<span class="tsd-signature-symbol">(</span>identifier<span class="tsd-signature-symbol">: </span><a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a>, conditions<span class="tsd-signature-symbol">?: </span><a href="../interfaces/Conditions.html" class="tsd-signature-type" data-tsd-kind="Interface">Conditions</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><p>Implementation of <a href="../interfaces/AtomicResourceStore.html">AtomicResourceStore</a>.<a href="../interfaces/AtomicResourceStore.html#deleteResource">deleteResource</a></p><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/1c376cb/src/storage/LockingResourceStore.ts#L60">src/storage/LockingResourceStore.ts:60</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>Deletes a resource.</p>
</div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>identifier: <a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a></h5></li><li><h5><span class="tsd-flag ts-flagOptional">Optional</span> conditions: <a href="../interfaces/Conditions.html" class="tsd-signature-type" data-tsd-kind="Interface">Conditions</a></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span></h4><div><p>Identifiers of resources that were possibly modified.</p>
</div></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a id="getLockIdentifier" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span class="tsd-flag ts-flagProtected">Protected</span> get<wbr/>Lock<wbr/>Identifier<a href="#getLockIdentifier" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-protected"><li class="tsd-signature tsd-kind-icon">get<wbr/>Lock<wbr/>Identifier<span class="tsd-signature-symbol">(</span>identifier<span class="tsd-signature-symbol">: </span><a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/1c376cb/src/storage/LockingResourceStore.ts#L76">src/storage/LockingResourceStore.ts:76</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>Acquires the correct identifier to lock this resource.
For auxiliary resources this means the subject identifier.</p>
</div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>identifier: <a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a></h5></li></ul><h4 class="tsd-returns-title">Returns <a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="getRepresentation" class="tsd-anchor"></a><h3 class="tsd-anchor-link">get<wbr/>Representation<a href="#getRepresentation" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"><li class="tsd-signature tsd-kind-icon">get<wbr/>Representation<span class="tsd-signature-symbol">(</span>identifier<span class="tsd-signature-symbol">: </span><a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a>, preferences<span class="tsd-signature-symbol">: </span><a href="../interfaces/RepresentationPreferences.html" class="tsd-signature-type" data-tsd-kind="Interface">RepresentationPreferences</a>, conditions<span class="tsd-signature-symbol">?: </span><a href="../interfaces/Conditions.html" class="tsd-signature-type" data-tsd-kind="Interface">Conditions</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/Representation.html" class="tsd-signature-type" data-tsd-kind="Interface">Representation</a><span class="tsd-signature-symbol">&gt;</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><p>Implementation of <a href="../interfaces/AtomicResourceStore.html">AtomicResourceStore</a>.<a href="../interfaces/AtomicResourceStore.html#getRepresentation">getRepresentation</a></p><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/1c376cb/src/storage/LockingResourceStore.ts#L42">src/storage/LockingResourceStore.ts:42</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>Retrieves a representation of a resource.</p>
</div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>identifier: <a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a></h5></li><li><h5>preferences: <a href="../interfaces/RepresentationPreferences.html" class="tsd-signature-type" data-tsd-kind="Interface">RepresentationPreferences</a></h5></li><li><h5><span class="tsd-flag ts-flagOptional">Optional</span> conditions: <a href="../interfaces/Conditions.html" class="tsd-signature-type" data-tsd-kind="Interface">Conditions</a></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/Representation.html" class="tsd-signature-type" data-tsd-kind="Interface">Representation</a><span class="tsd-signature-symbol">&gt;</span></h4><div><p>A representation corresponding to the identifier.</p>
</div></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="hasResource" class="tsd-anchor"></a><h3 class="tsd-anchor-link">has<wbr/>Resource<a href="#hasResource" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"><li class="tsd-signature tsd-kind-icon">has<wbr/>Resource<span class="tsd-signature-symbol">(</span>identifier<span class="tsd-signature-symbol">: </span><a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">&gt;</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><p>Implementation of <a href="../interfaces/AtomicResourceStore.html">AtomicResourceStore</a>.<a href="../interfaces/AtomicResourceStore.html#hasResource">hasResource</a></p><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/1c376cb/src/storage/LockingResourceStore.ts#L37">src/storage/LockingResourceStore.ts:37</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>Check if a resource exists in this ResourceSet.</p>
</div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>identifier: <a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">&gt;</span></h4><div><p>A promise resolving if the resource already exists.</p>
</div></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a id="lockedRepresentationRun" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span class="tsd-flag ts-flagProtected">Protected</span> locked<wbr/>Representation<wbr/>Run<a href="#lockedRepresentationRun" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-protected"><li class="tsd-signature tsd-kind-icon">locked<wbr/>Representation<wbr/>Run<span class="tsd-signature-symbol">(</span>identifier<span class="tsd-signature-symbol">: </span><a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a>, whileLocked<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/Representation.html" class="tsd-signature-type" data-tsd-kind="Interface">Representation</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/Representation.html" class="tsd-signature-type" data-tsd-kind="Interface">Representation</a><span class="tsd-signature-symbol">&gt;</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/1c376cb/src/storage/LockingResourceStore.ts#L92">src/storage/LockingResourceStore.ts:92</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>Acquires a lock that is only released when all data of the resulting representation data has been read,
an error occurs, or the timeout has been triggered.
The resulting data stream will be adapted to reset the timer every time data is read.</p>
</div><div><p>In case the data of the resulting stream is not needed it should be closed to prevent a timeout error.</p>
</div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>identifier: <a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a></h5><div class="tsd-comment tsd-typography"><div class="lead">
<p>Identifier that should be locked.</p>
</div></div></li><li><h5>whileLocked: <span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/Representation.html" class="tsd-signature-type" data-tsd-kind="Interface">Representation</a><span class="tsd-signature-symbol">&gt;</span></h5><div class="tsd-comment tsd-typography"><div class="lead">
<p>Function to be executed while the resource is locked.</p>
</div></div><ul class="tsd-parameters"><li class="tsd-parameter-signature"><ul class="tsd-signatures tsd-kind-type-literal"><li class="tsd-signature tsd-kind-icon"><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/Representation.html" class="tsd-signature-type" data-tsd-kind="Interface">Representation</a><span class="tsd-signature-symbol">&gt;</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/Representation.html" class="tsd-signature-type" data-tsd-kind="Interface">Representation</a><span class="tsd-signature-symbol">&gt;</span></h4></li></ul></li></ul></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/Representation.html" class="tsd-signature-type" data-tsd-kind="Interface">Representation</a><span class="tsd-signature-symbol">&gt;</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="modifyResource" class="tsd-anchor"></a><h3 class="tsd-anchor-link">modify<wbr/>Resource<a href="#modifyResource" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"><li class="tsd-signature tsd-kind-icon">modify<wbr/>Resource<span class="tsd-signature-symbol">(</span>identifier<span class="tsd-signature-symbol">: </span><a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a>, patch<span class="tsd-signature-symbol">: </span><a href="../interfaces/Patch.html" class="tsd-signature-type" data-tsd-kind="Interface">Patch</a>, conditions<span class="tsd-signature-symbol">?: </span><a href="../interfaces/Conditions.html" class="tsd-signature-type" data-tsd-kind="Interface">Conditions</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><p>Implementation of <a href="../interfaces/AtomicResourceStore.html">AtomicResourceStore</a>.<a href="../interfaces/AtomicResourceStore.html#modifyResource">modifyResource</a></p><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/1c376cb/src/storage/LockingResourceStore.ts#L66">src/storage/LockingResourceStore.ts:66</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>Sets or updates the representation of a resource,
creating a new resource and intermediary containers as needed.</p>
</div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>identifier: <a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a></h5></li><li><h5>patch: <a href="../interfaces/Patch.html" class="tsd-signature-type" data-tsd-kind="Interface">Patch</a></h5></li><li><h5><span class="tsd-flag ts-flagOptional">Optional</span> conditions: <a href="../interfaces/Conditions.html" class="tsd-signature-type" data-tsd-kind="Interface">Conditions</a></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span></h4><div><p>Identifiers of resources that were possibly modified.</p>
</div></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="setRepresentation" class="tsd-anchor"></a><h3 class="tsd-anchor-link">set<wbr/>Representation<a href="#setRepresentation" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class"><li class="tsd-signature tsd-kind-icon">set<wbr/>Representation<span class="tsd-signature-symbol">(</span>identifier<span class="tsd-signature-symbol">: </span><a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a>, representation<span class="tsd-signature-symbol">: </span><a href="../interfaces/Representation.html" class="tsd-signature-type" data-tsd-kind="Interface">Representation</a>, conditions<span class="tsd-signature-symbol">?: </span><a href="../interfaces/Conditions.html" class="tsd-signature-type" data-tsd-kind="Interface">Conditions</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><p>Implementation of <a href="../interfaces/AtomicResourceStore.html">AtomicResourceStore</a>.<a href="../interfaces/AtomicResourceStore.html#setRepresentation">setRepresentation</a></p><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/1c376cb/src/storage/LockingResourceStore.ts#L54">src/storage/LockingResourceStore.ts:54</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>Sets or replaces the representation of a resource,
creating a new resource and intermediary containers as needed.</p>
</div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>identifier: <a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a></h5></li><li><h5>representation: <a href="../interfaces/Representation.html" class="tsd-signature-type" data-tsd-kind="Interface">Representation</a></h5></li><li><h5><span class="tsd-flag ts-flagOptional">Optional</span> conditions: <a href="../interfaces/Conditions.html" class="tsd-signature-type" data-tsd-kind="Interface">Conditions</a></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type" data-tsd-kind="Interface">ResourceIdentifier</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span></h4><div><p>Identifiers of resources that were possibly modified.</p>
</div></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a id="waitForStreamToEnd" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span class="tsd-flag ts-flagProtected">Protected</span> wait<wbr/>For<wbr/>Stream<wbr/>To<wbr/>End<a href="#waitForStreamToEnd" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-protected"><li class="tsd-signature tsd-kind-icon">wait<wbr/>For<wbr/>Stream<wbr/>To<wbr/>End<span class="tsd-signature-symbol">(</span>source<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Readable</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/1c376cb/src/storage/LockingResourceStore.ts#L147">src/storage/LockingResourceStore.ts:147</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>Returns a promise that resolve when the source stream is finished,
either by ending or emitting an error.
In the case of an error the stream will be destroyed if it hasn&#39;t been already.</p>
</div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>source: <span class="tsd-signature-type">Readable</span></h5><div class="tsd-comment tsd-typography"><div class="lead">
<p>The input stream.</p>
</div></div></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4></li></ul></section></section></div><div class="col-4 col-menu menu-sticky-wrap menu-highlight"><nav class="tsd-navigation primary"><ul><li class=""><a href="../modules.html">Exports</a></li></ul></nav><nav class="tsd-navigation secondary menu-sticky"><ul><li class="current tsd-kind-class"><a href="LockingResourceStore.html" class="tsd-kind-icon">Locking<wbr/>Resource<wbr/>Store</a><ul><li class="tsd-kind-constructor tsd-parent-kind-class"><a href="LockingResourceStore.html#constructor" class="tsd-kind-icon">constructor</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="LockingResourceStore.html#auxiliaryStrategy" class="tsd-kind-icon">auxiliary<wbr/>Strategy</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="LockingResourceStore.html#locks" class="tsd-kind-icon">locks</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-protected"><a href="LockingResourceStore.html#logger" class="tsd-kind-icon">logger</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="LockingResourceStore.html#source" class="tsd-kind-icon">source</a></li><li class="tsd-kind-method tsd-parent-kind-class"><a href="LockingResourceStore.html#addResource" class="tsd-kind-icon">add<wbr/>Resource</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a href="LockingResourceStore.html#createExpiringRepresentation" class="tsd-kind-icon">create<wbr/>Expiring<wbr/>Representation</a></li><li class="tsd-kind-method tsd-parent-kind-class"><a href="LockingResourceStore.html#deleteResource" class="tsd-kind-icon">delete<wbr/>Resource</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a href="LockingResourceStore.html#getLockIdentifier" class="tsd-kind-icon">get<wbr/>Lock<wbr/>Identifier</a></li><li class="tsd-kind-method tsd-parent-kind-class"><a href="LockingResourceStore.html#getRepresentation" class="tsd-kind-icon">get<wbr/>Representation</a></li><li class="tsd-kind-method tsd-parent-kind-class"><a href="LockingResourceStore.html#hasResource" class="tsd-kind-icon">has<wbr/>Resource</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a href="LockingResourceStore.html#lockedRepresentationRun" class="tsd-kind-icon">locked<wbr/>Representation<wbr/>Run</a></li><li class="tsd-kind-method tsd-parent-kind-class"><a href="LockingResourceStore.html#modifyResource" class="tsd-kind-icon">modify<wbr/>Resource</a></li><li class="tsd-kind-method tsd-parent-kind-class"><a href="LockingResourceStore.html#setRepresentation" class="tsd-kind-icon">set<wbr/>Representation</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><a href="LockingResourceStore.html#waitForStreamToEnd" class="tsd-kind-icon">wait<wbr/>For<wbr/>Stream<wbr/>To<wbr/>End</a></li></ul></li></ul></nav></div></div></div><footer class=""><div class="container"><h2>Legend</h2><div class="tsd-legend-group"><ul class="tsd-legend"><li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li><li class="tsd-kind-property tsd-parent-kind-class"><span class="tsd-kind-icon">Property</span></li><li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li><li class="tsd-kind-accessor tsd-parent-kind-class"><span class="tsd-kind-icon">Accessor</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-constructor tsd-parent-kind-interface"><span class="tsd-kind-icon">Constructor</span></li><li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li><li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited constructor</span></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited property</span></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited method</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-property tsd-parent-kind-class tsd-is-protected"><span class="tsd-kind-icon">Protected property</span></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><span class="tsd-kind-icon">Protected method</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private property</span></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private method</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-method tsd-parent-kind-class tsd-is-static"><span class="tsd-kind-icon">Static method</span></li></ul></div><h2>Settings</h2><p>Theme <select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></p></div></footer><div class="overlay"></div><script src="../assets/main.js"></script></body></html>