Constructor
    
    
    new BaseStorageCell(connection, segmentStore, manifestStore)
    
    
    Parameters:
    
    
    
        
        | Name | Type | Description | 
    
    
    
        
            
                | connection | IDBDatabase |  | 
    
        
            
                | segmentStore | string |  | 
    
        
            
                | manifestStore | string |  | 
    
    
    
    
    
    
    
    
    - Implements:
- Source:
 
    
     
    
    
    
    
    
    
    
        Members
        
            
        
            
manifestStore_ :string
    Type:
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    - Source:
 
        
            
segmentStore_ :string
    Type:
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    - Source:
 
        
    
    
        Methods
        
            
    
    
    add(storeName, valuesnon-null) → {Promise<!Array<number>>}
    
    
    Parameters:
    
    
    
        
        | Name | Type | Description | 
    
    
    
        
            
                | storeName | string |  | 
    
        
            
                | values | Array<T> |  | 
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    - Source:
Returns:
        
    - 
        Type
    
- 
        
Promise<!Array<number>>
    
 
        
            
    
    
    addManifests(manifestsnon-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:
    
    
    
    
    
    
    
    - Implements:
- Source:
Returns:
        
    keys
    - 
        Type
    
- 
        
Promise<!Array<number>>
    
 
        
            
    
    
    addSegments(segmentsnon-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:
    
    
    
    
    
    
    
    - Implements:
- Source:
Returns:
        
    - 
        Type
    
- 
        
Promise<!Array<number>>
    
 
        
            
        
            
        
            
    
    
    destroy() → {Promise}
    
    
    Free all resources used by this cell. This should not affect the stored
content.
    
    
    
    
    
    
    - Implements:
- Source:
Returns:
        
    - 
        Type
    
- 
        
Promise
    
 
        
            
    
    
    get_(storeName, keysnon-null) → {Promise<!Array<T>>}
    
    
    Parameters:
    
    
    
        
        | Name | Type | Description | 
    
    
    
        
            
                | storeName | string |  | 
    
        
            
                | keys | Array<number> |  | 
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    - Source:
Returns:
        
    - 
        Type
    
- 
        
Promise<!Array<T>>
    
 
        
            
    
    
    
    
    
    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.
    
    
    
    
    
    
    - Implements:
- Source:
Returns:
        
    - 
        Type
    
- 
        
Promise<!Map<number, shaka.extern.ManifestDB>>
    
 
        
            
    
    
    getManifests(keysnon-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> |  | 
    
    
    
    
    
    
    
    
    - Implements:
- Source:
Returns:
        
    - 
        Type
    
- 
        
Promise<!Array<shaka.extern.ManifestDB>>
    
 
        
            
    
    
    
    
    
    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> |  | 
    
    
    
    
    
    
    
    
    - Implements:
- 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.
    
    
    
    
    
    
    - Implements:
- Source:
Returns:
        
    - 
        Type
    
- 
        
boolean
    
 
        
            
    
    
    rejectAdd(storeName) → {Promise}
    
    
    Parameters:
    
    
    
        
        | Name | Type | Description | 
    
    
    
        
            
                | storeName | string |  | 
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    - Source:
Returns:
        
    - 
        Type
    
- 
        
Promise
    
 
        
            
    
    
    rejectUpdate(storeName) → {Promise}
    
    
    Parameters:
    
    
    
        
        | Name | Type | Description | 
    
    
    
        
            
                | storeName | string |  | 
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    - Source:
Returns:
        
    - 
        Type
    
- 
        
Promise
    
 
        
            
    
    
    remove_(storeName, keysnon-null, onRemove) → {Promise}
    
    
    Parameters:
    
    
    
        
        | Name | Type | Description | 
    
    
    
        
            
                | storeName | string |  | 
    
        
            
                | keys | Array<number> |  | 
    
        
            
                | onRemove | function(number) |  | 
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    - Source:
Returns:
        
    - 
        Type
    
- 
        
Promise
    
 
        
            
    
    
    removeManifests(keysnon-null, onRemove) → {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 | A callback for when a manifest is
                                   removed from the cell. The key of the
                                   manifest will be passed to the callback. | 
    
    
    
    
    
    
    
    
    - Implements:
- Source:
Returns:
        
    - 
        Type
    
- 
        
Promise
    
 
        
            
    
    
    removeSegments(keysnon-null, onRemove) → {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 | A callback for when a segment is removed
                                   from the cell. The key of the segment
                                   will be passed to the callback. | 
    
    
    
    
    
    
    
    
    - Implements:
- Source:
Returns:
        
    - 
        Type
    
- 
        
Promise
    
 
        
            
    
    
    updateManifest(key, manifestnon-null) → {Promise}
    
    
    Updates the given manifest, stored at the given key.
    Parameters:
    
    
    
    
    
    
    
    - Implements:
- Source:
Returns:
        
    - 
        Type
    
- 
        
Promise
    
 
        
            
    
    
    updateManifestExpiration(key, expiration) → {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 |  | 
    
    
    
    
    
    
    
    
    - Implements:
- Source:
Returns:
        
    - 
        Type
    
- 
        
Promise
    
 
        
            
    
    
    updateManifestImplementation(key, manifestnon-null) → {Promise}
    
    
    Parameters:
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    - Source:
Returns:
        
    - 
        Type
    
- 
        
Promise