1- /* eslint-disable @typescript-eslint/no-unused-vars */
2- /* eslint-disable no-unused-vars */
31import { IMySegmentsResponse } from '../dtos/types' ;
42import { MySegmentsData } from '../sync/polling/types' ;
53import { ISegmentsCacheSync } from './types' ;
@@ -8,18 +6,11 @@ import { ISegmentsCacheSync } from './types';
86 * This class provides a skeletal implementation of the ISegmentsCacheSync interface
97 * to minimize the effort required to implement this interface.
108 */
11- export abstract class AbstractSegmentsCacheSync implements ISegmentsCacheSync {
12- /**
13- * For server-side synchronizer: add `segmentKeys` list of keys to `name` segment.
14- * For client-side synchronizer: add `name` segment to the cache. `segmentKeys` is undefined.
15- */
16- abstract addToSegment ( name : string , segmentKeys ?: string [ ] ) : boolean
9+ export abstract class AbstractMySegmentsCacheSync implements ISegmentsCacheSync {
1710
18- /**
19- * For server-side synchronizer: remove `segmentKeys` list of keys from `name` segment.
20- * For client-side synchronizer: remove `name` segment from the cache. `segmentKeys` is undefined.
21- */
22- abstract removeFromSegment ( name : string , segmentKeys ?: string [ ] ) : boolean
11+ protected abstract addSegment ( name : string ) : boolean
12+ protected abstract removeSegment ( name : string ) : boolean
13+ protected abstract setChangeNumber ( changeNumber ?: number ) : boolean | void
2314
2415 /**
2516 * For server-side synchronizer: check if `key` is in `name` segment.
@@ -34,11 +25,10 @@ export abstract class AbstractSegmentsCacheSync implements ISegmentsCacheSync {
3425 this . resetSegments ( { } ) ;
3526 }
3627
37- /**
38- * For server-side synchronizer: add the given list of segments to the cache, with an empty list of keys. The segments that already exist are not modified.
39- * For client-side synchronizer: the method is not used.
40- */
41- registerSegments ( names : string [ ] ) : boolean { return false ; }
28+
29+ // No-op. Not used in client-side.
30+ registerSegments ( ) : boolean { return false ; }
31+ update ( ) { return false ; }
4232
4333 /**
4434 * For server-side synchronizer: get the list of segments to fetch changes.
@@ -52,31 +42,26 @@ export abstract class AbstractSegmentsCacheSync implements ISegmentsCacheSync {
5242 */
5343 abstract getKeysCount ( ) : number
5444
55- /**
56- * For server-side synchronizer: change number of `name` segment.
57- * For client-side synchronizer: change number of mySegments.
58- */
59- abstract setChangeNumber ( name ?: string , changeNumber ?: number ) : boolean | void
6045 abstract getChangeNumber ( name : string ) : number
6146
6247 /**
6348 * For server-side synchronizer: the method is not used.
6449 * For client-side synchronizer: it resets or updates the cache.
6550 */
6651 resetSegments ( segmentsData : MySegmentsData | IMySegmentsResponse ) : boolean {
67- this . setChangeNumber ( undefined , segmentsData . cn ) ;
52+ this . setChangeNumber ( segmentsData . cn ) ;
6853
6954 const { added, removed } = segmentsData as MySegmentsData ;
7055
7156 if ( added && removed ) {
7257 let isDiff = false ;
7358
7459 added . forEach ( segment => {
75- isDiff = this . addToSegment ( segment ) || isDiff ;
60+ isDiff = this . addSegment ( segment ) || isDiff ;
7661 } ) ;
7762
7863 removed . forEach ( segment => {
79- isDiff = this . removeFromSegment ( segment ) || isDiff ;
64+ isDiff = this . removeSegment ( segment ) || isDiff ;
8065 } ) ;
8166
8267 return isDiff ;
@@ -97,11 +82,11 @@ export abstract class AbstractSegmentsCacheSync implements ISegmentsCacheSync {
9782
9883 // Slowest path => add and/or remove segments
9984 for ( let removeIndex = index ; removeIndex < storedSegmentKeys . length ; removeIndex ++ ) {
100- this . removeFromSegment ( storedSegmentKeys [ removeIndex ] ) ;
85+ this . removeSegment ( storedSegmentKeys [ removeIndex ] ) ;
10186 }
10287
10388 for ( let addIndex = index ; addIndex < names . length ; addIndex ++ ) {
104- this . addToSegment ( names [ addIndex ] ) ;
89+ this . addSegment ( names [ addIndex ] ) ;
10590 }
10691
10792 return true ;
0 commit comments