Wraps a representation to make it reset the timeout timer every time data is read.
The representation to wrap
Function to call to reset the timer.
Acquires the correct identifier to lock this resource. For auxiliary resources this means the associated identifier.
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.
In case the data of the resulting stream is not needed it should be closed to prevent a timeout error.
Identifier that should be locked.
Function to be executed while the resource is locked.
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't been already.
The input stream.
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.
For auxiliary resources the lock will be applied to the associated resource. The actual operation is still executed on the auxiliary resource.