UNPKG

landstrasse

Version:

Strongly typed WAMP Client for browsers

32 lines (31 loc) 1.33 kB
import Logger from '../util/logger'; import type { IdGeneratorInterface } from '../util/id'; import type { WampDict } from '../types/messages/MessageTypes'; import type { WampMessage } from '../types/Protocol'; export declare type MessageSender = (msg: WampMessage) => Promise<void>; export declare type ProtocolViolator = (msg: string) => void; export declare type IdGenerators = { global: IdGeneratorInterface; session: IdGeneratorInterface; }; export interface ProcessorInterface { processMessage(msg: WampMessage): boolean; close(): void; } export interface ProcessorFactoryInterface { new (sender: MessageSender, violator: ProtocolViolator, idGenerators: IdGenerators, logger: Logger): ProcessorInterface; getFeatures(): WampDict; } declare abstract class AbstractProcessor implements ProcessorInterface { protected sender: MessageSender; protected violator: ProtocolViolator; protected idGenerators: IdGenerators; protected logger: Logger; protected _closed: boolean; constructor(sender: MessageSender, violator: ProtocolViolator, idGenerators: IdGenerators, logger: Logger); close(): void; processMessage(msg: WampMessage): boolean; protected abstract onClose(): void; protected abstract onMessage(msg: WampMessage): boolean; } export default AbstractProcessor;