@syncable/server
Version:
35 lines (34 loc) • 1.76 kB
TypeScript
import { ChangePacket, ClientRPCDefinition, ConnectionRPCDefinition, ISyncableAdapter, IViewQuery, RPCPeer, RPCPeerType, SyncableRef, ViewQueryUpdateObject } from '@syncable/core';
import { Observable } from 'rxjs';
import { Dict } from 'tslang';
import { BroadcastChangeResult, IServerGenericParams, Server } from '../server';
import { IConnectionAdapter } from './connection-adapter';
export declare class Connection<TGenericParams extends IServerGenericParams = IServerGenericParams> extends RPCPeer<ClientRPCDefinition | TGenericParams['customClientRPCDefinition']> implements RPCPeerType<ConnectionRPCDefinition> {
readonly server: Server<TGenericParams>;
readonly group: string;
private connectionAdapter;
private syncableAdapter;
readonly context: TGenericParams['context'];
readonly close$: Observable<void>;
private container;
private nameToViewQueryInfoMap;
private nameToContextDependencyRefsMap;
private loadedKeySet;
private sanitizedFieldNamesMap;
private pendingChangePacketIdSet;
private loadingScheduler;
private subscription;
private initializeSubject$;
readonly ready: Promise<void>;
constructor(server: Server<TGenericParams>, group: string, connectionAdapter: IConnectionAdapter<TGenericParams>, syncableAdapter: ISyncableAdapter);
private get viewQueryFilter();
dispose(): void;
handleBroadcastChangeResult(result: BroadcastChangeResult): void;
initialize(viewQueryDict: Dict<IViewQuery>): Promise<void>;
'apply-change'(packet: ChangePacket): Promise<void>;
'request-syncables'(refs: SyncableRef[]): Promise<void>;
'update-view-query'(update: ViewQueryUpdateObject): Promise<void>;
private change;
private query;
private request;
}