UNPKG

8.13 kBTypeScriptView Raw
1import { IBetEvent, IBetMatch, IBetRecord, IBetEventState, ISnapshot, PartitionKey } from '@jayesol/jayeson.lib.record';
2import { IEndPointDispatcher, IEndPointGroupManager } from './dispatch';
3import { FSRepo } from './core';
4import { IMessageClass, Subscriber, EPEvent } from '@jayesol/jayeson.lib.delivery';
5import * as T from 'ts-promise';
6import { IndexedSnapshot, DeltaOutgoing, Outgoing, IndexedSnapshotImpl } from "./data_structure";
7import { InEndPointEventHandler, SportsFeedInProcessor } from "./receive";
8import { SportsFeedMessageGroup } from "./message_class";
9import 'reflect-metadata';
10import { RuleCombination } from '@jayesol/jayeson.model';
11export declare class InsertMatch<M extends IBetMatch> {
12 private _after;
13 private _get;
14 constructor(_after: ISnapshot<IBetMatch>, _get: M[]);
15 after(): ISnapshot<IBetMatch>;
16 get(): M[];
17}
18export declare class UpdateMatch<M extends IBetMatch> {
19 private _after;
20 private _get;
21 constructor(_after: ISnapshot<IBetMatch>, _get: M[]);
22 after(): ISnapshot<IBetMatch>;
23 get(): M[];
24}
25export declare class DeleteMatch<M extends IBetMatch> {
26 private _after;
27 private _get;
28 constructor(_after: ISnapshot<IBetMatch>, _get: M[]);
29 after(): ISnapshot<IBetMatch>;
30 get(): M[];
31}
32export declare class InsertEvent<E extends IBetEvent> {
33 private _after;
34 private _get;
35 constructor(_after: ISnapshot<IBetMatch>, _get: E[]);
36 after(): ISnapshot<IBetMatch>;
37 get(): E[];
38}
39export declare class UpdateEvent<E extends IBetEvent> {
40 private _after;
41 private _get;
42 constructor(_after: ISnapshot<IBetMatch>, _get: E[]);
43 after(): ISnapshot<IBetMatch>;
44 get(): E[];
45}
46export declare class DeleteEvent<E extends IBetEvent> {
47 private _after;
48 private _get;
49 constructor(_after: ISnapshot<IBetMatch>, _get: E[]);
50 after(): ISnapshot<IBetMatch>;
51 get(): E[];
52}
53export declare class InsertOdd<R extends IBetRecord> {
54 private _after;
55 private _get;
56 constructor(_after: ISnapshot<IBetMatch>, _get: R[]);
57 after(): ISnapshot<IBetMatch>;
58 get(): R[];
59}
60export declare class UpdateOdd<R extends IBetRecord> {
61 private _after;
62 private _get;
63 constructor(_after: ISnapshot<IBetMatch>, _get: R[]);
64 after(): ISnapshot<IBetMatch>;
65 get(): R[];
66}
67export declare class DeleteOdd<R extends IBetRecord> {
68 private _after;
69 private _get;
70 constructor(_after: ISnapshot<IBetMatch>, _get: R[]);
71 after(): ISnapshot<IBetMatch>;
72 get(): R[];
73}
74export declare class Reset {
75 private _after;
76 private _get;
77 constructor(_after: ISnapshot<IBetMatch>, _get: PartitionKey[]);
78 after(): ISnapshot<IBetMatch>;
79 get(): PartitionKey[];
80}
81export interface DeltaEventHandler<M extends IBetMatch, E extends IBetEvent, R extends IBetRecord> {
82 onInsertMatch(insertMatch: InsertMatch<M>): void;
83 onUpdateMatch(updateMatch: UpdateMatch<M>): void;
84 onDeleteMatch(deleteMatch: DeleteMatch<M>): void;
85 onInsertEvent(insertEvent: InsertEvent<E>): void;
86 onUpdateEvent(updateEvent: UpdateEvent<E>): void;
87 onDeleteEvent(deleteEvent: DeleteEvent<E>): void;
88 onInsertOdd(insertOdd: InsertOdd<R>): void;
89 onUpdateOdd(updateOdd: UpdateOdd<R>): void;
90 onDeleteOdd(deleteOdd: DeleteOdd<R>): void;
91 onReset(resetKeys: Reset): void;
92 onSwitchFilterStart(requestId?: number): void;
93 onSwitchFilterEnd(): void;
94 onFullSnapshotStart(): void;
95 onFullSnapshotEnd(): void;
96 onSwitchFilterFail(requestId?: number): void;
97}
98export declare class FeedView<M extends IBetMatch> {
99 private _fsRepo;
100 private _epgm;
101 private _grp;
102 private _handlers;
103 constructor(manager: IEndPointGroupManager, repo: FSRepo, grp: SportsFeedMessageGroup);
104 fsRepo(): FSRepo;
105 epgm(): IEndPointGroupManager;
106 grp(): SportsFeedMessageGroup;
107 snapshot(): IndexedSnapshot;
108 register<E extends IBetEvent, R extends IBetRecord>(listener: DeltaEventHandler<M, E, R>): void;
109 unregister<E extends IBetEvent, R extends IBetRecord>(listener: DeltaEventHandler<M, E, R>): void;
110 private hasHandler;
111 private removeHandler;
112 handlerSize(): number;
113 cleanUp(): void;
114}
115export declare class AbstractComparableEPDispatcher implements IEndPointDispatcher {
116 private _stream;
117 id(): string;
118 submit(out: Outgoing): void;
119 onException(e: Error): void;
120 protected _grp: SportsFeedMessageGroup;
121 protected _readyToDispatch: boolean;
122 constructor(_stream: string, _grp: SportsFeedMessageGroup);
123 stream(): string;
124 grp(): SportsFeedMessageGroup;
125 isInitialized(): T.Promise<Boolean>;
126 readyToDispatch(): void;
127 isReadyToDispatch(): boolean;
128}
129export declare class MemoryDispatcher extends AbstractComparableEPDispatcher {
130 private _fsRepo;
131 private _handler;
132 static MEMORY_STREAM: string;
133 lastPushedSs: IndexedSnapshotImpl;
134 _id: string;
135 constructor(_fsRepo: FSRepo, _grp: SportsFeedMessageGroup, _handler: DeltaEventHandler<IBetMatch, IBetEvent, IBetRecord>);
136 grp(): SportsFeedMessageGroup;
137 handler(): DeltaEventHandler<IBetMatch, IBetEvent, IBetRecord>;
138 id(): string;
139 submit(out: Outgoing): void;
140 onException(e: Error): void;
141 handleMessage(msg: Outgoing): void;
142 protected pushSwitchFilterStart(requestId: number): void;
143 protected pushSwitchFilterEnd(): void;
144 protected pushFullSnapshotStart(): void;
145 protected pushFullSnapshotEnd(): void;
146 protected pushSwitchFilterFail(requestId: number): void;
147 protected pushInsertMatch(ds: DeltaOutgoing): void;
148 protected pushInsertEvent(ds: DeltaOutgoing): void;
149 protected pushInsertOdd(ds: DeltaOutgoing): void;
150 protected pushUpdateMatch(ds: DeltaOutgoing): void;
151 protected pushUpdateEvent(ds: DeltaOutgoing): void;
152 protected pushUpdateOdd(ds: DeltaOutgoing): void;
153 protected pushDeleteMatch(ds: DeltaOutgoing): void;
154 protected pushDeleteEvent(ds: DeltaOutgoing): void;
155 protected pushDeleteOdd(ds: DeltaOutgoing): void;
156 private pushReset;
157 protected events(matches: IBetMatch[]): IBetEvent[];
158 protected records(events: IBetEvent[]): IBetRecord[];
159 protected states(events: IBetEvent[]): IBetEventState[];
160 isSame(lhs: IMessageClass, rhs: IMessageClass): boolean;
161 isInitialized(): T.Promise<Boolean>;
162}
163export declare class SportsFeedClient implements DeltaEventHandler<IBetMatch, IBetEvent, IBetRecord> {
164 private _subscriber;
165 private _eventHandler;
166 private _viewTemplate;
167 private _epgm;
168 private _fsRepo;
169 private _grp;
170 private _views;
171 private filterRequestCounter;
172 private resolverMap;
173 constructor(grp: SportsFeedMessageGroup, fsRepo: FSRepo, epgm: IEndPointGroupManager, subscriber: Subscriber, eventHandler: InEndPointEventHandler, inProcessor: SportsFeedInProcessor);
174 subscriber(): Subscriber;
175 epgm(): IEndPointGroupManager;
176 InEndPointEventHandler(): InEndPointEventHandler;
177 fsRepo(): FSRepo;
178 grp(): SportsFeedMessageGroup;
179 eventHandler(): InEndPointEventHandler;
180 eventListener(event: EPEvent): void;
181 configureEventHandler(eventHandler: InEndPointEventHandler): void;
182 setUpStreamFilter(filterData: RuleCombination): T.Promise<Boolean>;
183 getSubscriber(): Subscriber;
184 start(): void;
185 view<M extends IBetMatch>(): FeedView<M>;
186 removeView<M extends IBetMatch>(view: FeedView<M>): void;
187 onSwitchFilterFail(requestId: number): void;
188 onSwitchFilterStart(requestId: number): void;
189 onInsertMatch(insertMatch: InsertMatch<IBetMatch>): void;
190 onUpdateMatch(updateMatch: UpdateMatch<IBetMatch>): void;
191 onDeleteMatch(deleteMatch: DeleteMatch<IBetMatch>): void;
192 onInsertEvent(insertEvent: InsertEvent<IBetEvent>): void;
193 onUpdateEvent(updateEvent: UpdateEvent<IBetEvent>): void;
194 onDeleteEvent(deleteEvent: DeleteEvent<IBetEvent>): void;
195 onInsertOdd(insertOdd: InsertOdd<IBetRecord>): void;
196 onUpdateOdd(updateOdd: UpdateOdd<IBetRecord>): void;
197 onDeleteOdd(deleteOdd: DeleteOdd<IBetRecord>): void;
198 onReset(resetKeys: Reset): void;
199 onSwitchFilterEnd(): void;
200 onFullSnapshotStart(): void;
201 onFullSnapshotEnd(): void;
202}