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.
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.<!Object.<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.<!Object.<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