* Attach a given memory buffer * @this {!ReadBuffer} * @param {!Uint8Array|!ReadBuffer|!WriteBuffer} buffer Buffer to attach * @param {number=} offset Buffer offset, defaults is 0 * @param {number=} size Buffer size, defaults is buffer.length
(buffer, offset = 0, size = undefined)
| 338 | * @param {number=} size Buffer size, defaults is buffer.length |
| 339 | */ |
| 340 | attachBuffer (buffer, offset = 0, size = undefined) { |
| 341 | if (size == null) { |
| 342 | size = buffer.length |
| 343 | } |
| 344 | |
| 345 | if (size <= 0) { |
| 346 | throw new Error('Invalid size!') |
| 347 | } |
| 348 | if (offset > size) { |
| 349 | throw new Error('Invalid offset!') |
| 350 | } |
| 351 | if ((buffer instanceof ReadBuffer) || (buffer instanceof WriteBuffer)) { |
| 352 | this._buffer = buffer.buffer |
| 353 | } else { |
| 354 | this._buffer = buffer |
| 355 | } |
| 356 | this._size = size |
| 357 | this._offset = offset |
| 358 | } |
| 359 | |
| 360 | /** |
| 361 | * Reset the current read buffer and its offset |