Interface: shaka.extern.StorageCell

An interface that defines access to collection of segments and manifests. All methods are designed to be batched operations allowing the implementations to optimize their operations based on how they store data. The storage cell is one of two exposed APIs used to control where and how offline content is saved. The storage cell is responsible for converting information between its internal structures and the external (library) structures.
Implementations:
Source:

Methods

addManifests(manifestsnon-null) → (non-null) {Promise.<!Array.<number>>}

Add a group of manifests. Will return a promise that resolves with a list of keys for each manifest. If one manifest fails to be added, all manifests should fail to be added.
Parameters:
Name Type Description
manifests Array.<shaka.extern.ManifestDB>
Source:
Returns:
keys
Type
Promise.<!Array.<number>>

addSegments(segmentsnon-null) → (non-null) {Promise.<!Array.<number>>}

Add a group of segments. Will return a promise that resolves with a list of keys for each segment. If one segment fails to be added, all segments should fail to be added.
Parameters:
Name Type Description
segments Array.<shaka.extern.SegmentDataDB>
Source:
Returns:
Type
Promise.<!Array.<number>>

destroy() → (non-null) {Promise}

Free all resources used by this cell. This should not affect the stored content.
Source:
Returns:
Type
Promise

getAllManifests() → (non-null) {Promise.<!Map.<number, shaka.extern.ManifestDB>>}

Get all manifests stored in this cell. Since manifests are small compared to the asset they describe, it is assumed that it is feasible to have them all in main memory at one time.
Source:
Returns:
Type
Promise.<!Map.<number, shaka.extern.ManifestDB>>

getManifests(keysnon-null) → (non-null) {Promise.<!Array.<shaka.extern.ManifestDB>>}

Get a group of manifests using their keys to identify them. If any key is not found, the promise chain will be rejected.
Parameters:
Name Type Description
keys Array.<number>
Source:
Returns:
Type
Promise.<!Array.<shaka.extern.ManifestDB>>

getSegments(keysnon-null) → (non-null) {Promise.<!Array.<shaka.extern.SegmentDataDB>>}

Get a group of segments using their keys to identify them. If any key is not found, the promise chain will be rejected.
Parameters:
Name Type Description
keys Array.<number>
Source:
Returns:
Type
Promise.<!Array.<shaka.extern.SegmentDataDB>>

hasFixedKeySpace() → {boolean}

Check if the cell can support new keys. If a cell has a fixed key space, then all add-operations will fail as no new keys can be added. All remove-operations and update-operations should still work.
Source:
Returns:
Type
boolean

removeManifests(keysnon-null, onRemove) → (non-null) {Promise}

Remove a group of manifests using their keys to identify them. If a key is not found, then that removal should be considered successful.
Parameters:
Name Type Description
keys Array.<number>
onRemove function(number) A callback for when a manifest is removed from the cell. The key of the manifest will be passed to the callback.
Source:
Returns:
Type
Promise

removeSegments(keysnon-null, onRemove) → (non-null) {Promise}

Remove a group of segments using their keys to identify them. If a key is not found, then that removal should be considered successful.
Parameters:
Name Type Description
keys Array.<number>
onRemove function(number) A callback for when a segment is removed from the cell. The key of the segment will be passed to the callback.
Source:
Returns:
Type
Promise

updateManifestExpiration(key, expiration) → (non-null) {Promise}

Replace the expiration time of the manifest stored under |key| with |newExpiration|. If no manifest is found under |key| then this should act as a no-op.
Parameters:
Name Type Description
key number
expiration number
Source:
Returns:
Type
Promise