1 | import { DeltaOutgoing, IndexedSnapshot, Outgoing } from "./data_structure";
|
2 | import { TTLOutgoing, FSRepo, ISnapshotHandler } from "./core";
|
3 | import { SportsFeedMessageGroup } from "./message_class";
|
4 | import { InjectionToken } from "injection-js";
|
5 | import * as T from 'ts-promise';
|
6 | export interface IEndPointGroupManager {
|
7 | registerEPD(epd: IEndPointDispatcher): void;
|
8 | deregisterEPD(epd: IEndPointDispatcher): void;
|
9 | }
|
10 | export declare const EPGM_IMPL: InjectionToken<IEndPointGroupManager>;
|
11 | export interface IEndPointGroup extends ISnapshotHandler {
|
12 | hasEPD(stream: string, id: string): boolean;
|
13 | addEPD(epd: IEndPointDispatcher): void;
|
14 | removeEPD(epd: IEndPointDispatcher): void;
|
15 | isEmpty(): boolean;
|
16 | submitForProcess(process: IDispatchableWrapper): void;
|
17 | getSportsFeedGrp(): SportsFeedMessageGroup;
|
18 | getEPDs(stream: string): IEndPointDispatcher[];
|
19 | getStreams(): string[];
|
20 | startGetingDeltaSnapshot(fsRepo: FSRepo): void;
|
21 | stopGetingDeltaSnapshot(fsRepo: FSRepo): void;
|
22 | generateFull(wrapper: FullSnapshotWrapper): Outgoing[];
|
23 | generatePartial(wrapper: PartialSnapshotWrapper): Outgoing[];
|
24 | }
|
25 | export interface IDispatchableWrapper {
|
26 | process(): void;
|
27 | }
|
28 | export declare abstract class WrapperImpl {
|
29 | private __epg;
|
30 | private __stream;
|
31 | constructor(__epg: IEndPointGroup, __stream: string);
|
32 | epg(): IEndPointGroup;
|
33 | stream(): string;
|
34 | }
|
35 | export declare class FullSnapshotWrapper extends WrapperImpl implements IDispatchableWrapper {
|
36 | private _epg;
|
37 | private _stream;
|
38 | private _epd;
|
39 | fullSnapshot: IndexedSnapshot;
|
40 | constructor(_epg: IEndPointGroup, _stream: string, _epd: IEndPointDispatcher, fullSnapshot: IndexedSnapshot);
|
41 | epg(): IEndPointGroup;
|
42 | stream(): string;
|
43 | epd(): IEndPointDispatcher;
|
44 | process(): void;
|
45 | getFullSnapshot(): IndexedSnapshot;
|
46 | setFullSnapshot(fullSnapshot: IndexedSnapshot): void;
|
47 | }
|
48 | export declare class PartialSnapshotWrapper extends WrapperImpl implements IDispatchableWrapper {
|
49 | private _delta;
|
50 | private _epg;
|
51 | private _stream;
|
52 | constructor(_delta: DeltaOutgoing, _epg: IEndPointGroup, _stream: string);
|
53 | epg(): IEndPointGroup;
|
54 | stream(): string;
|
55 | delta(): DeltaOutgoing;
|
56 | process(): void;
|
57 | }
|
58 | export declare class IndicatorWrapper extends WrapperImpl implements IDispatchableWrapper {
|
59 | private _delta;
|
60 | private _epg;
|
61 | private _stream;
|
62 | constructor(_delta: Outgoing, _epg: IEndPointGroup, _stream: string);
|
63 | process(): void;
|
64 | }
|
65 | export declare class EPDispatcherException extends Error {
|
66 | constructor(message: string);
|
67 | }
|
68 | export declare class EndPointGroupManager implements IEndPointGroupManager {
|
69 | private _fsRepo;
|
70 | private _grp;
|
71 | relayEPG: RelayEPG;
|
72 | constructor(_fsRepo: FSRepo, _grp: SportsFeedMessageGroup);
|
73 | fsRepo(): FSRepo;
|
74 | grp(): SportsFeedMessageGroup;
|
75 | pushFullSnapshotWrapper(epg: IEndPointGroup, epd: IEndPointDispatcher): void;
|
76 | registerEPD(epd: IEndPointDispatcher): void;
|
77 | deregisterEPD(epd: IEndPointDispatcher): void;
|
78 | }
|
79 | export interface IEndPointDispatcher {
|
80 | id(): string;
|
81 | stream(): string;
|
82 | submit(out: Outgoing): void;
|
83 | onException(e: Error): void;
|
84 | isInitialized(): T.Promise<Boolean>;
|
85 | readyToDispatch(): void;
|
86 | isReadyToDispatch(): boolean;
|
87 | }
|
88 | export declare class DispatchersGroup {
|
89 | private streamName;
|
90 | private dispatchers;
|
91 | constructor(streamName: string);
|
92 | addEpd(epd: IEndPointDispatcher): void;
|
93 | removeEpd(epd: IEndPointDispatcher): IEndPointDispatcher;
|
94 | get(id: string): IEndPointDispatcher;
|
95 | getAll(): IEndPointDispatcher[];
|
96 | isEmpty(): boolean;
|
97 | }
|
98 | export declare abstract class AbstractEPG implements IEndPointGroup {
|
99 | private sportsFeedGroup;
|
100 | private dispatchers;
|
101 | constructor(sportsFeedGroup: SportsFeedMessageGroup);
|
102 | hasEPD(stream: string, id: string): boolean;
|
103 | addEPD(epd: IEndPointDispatcher): void;
|
104 | removeEPD(epd: IEndPointDispatcher): void;
|
105 | isEmpty(): boolean;
|
106 | abstract submitForProcess(process: IDispatchableWrapper): void;
|
107 | getEPDs(stream: string): IEndPointDispatcher[];
|
108 | getStreams(): string[];
|
109 | startGetingDeltaSnapshot(fsRepo: FSRepo): void;
|
110 | stopGetingDeltaSnapshot(fsRepo: FSRepo): void;
|
111 | process(stream: string, snapshot: Outgoing): void;
|
112 | getSportsFeedGrp(): SportsFeedMessageGroup;
|
113 | generateFull(wrapper: FullSnapshotWrapper): Outgoing[];
|
114 | generatePartial(wrapper: PartialSnapshotWrapper): Outgoing[];
|
115 | }
|
116 | export declare class RelayEPG extends AbstractEPG {
|
117 | private _sportsFeedGroup;
|
118 | constructor(_sportsFeedGroup: SportsFeedMessageGroup);
|
119 | submitForProcess(wrapper: IDispatchableWrapper): void;
|
120 | onException(e: Error): void;
|
121 | generateFull(wrapper: FullSnapshotWrapper): Outgoing[];
|
122 | generatePartial(wrapper: PartialSnapshotWrapper): Outgoing[];
|
123 | generateTtl(outGng: TTLOutgoing): Outgoing[];
|
124 | generateTtlRestore(outGng: TTLOutgoing): Outgoing[];
|
125 | private isSameFormat;
|
126 | }
|