UNPKG

fixparser-plugin-messagestore-kdb

Version:

FIXParser KDB+ plugin

106 lines (105 loc) 3.33 kB
import type { IFIXParser, IMessageStore, Logger } from 'fixparser'; import { type IMessage } from 'fixparser-common'; export type MessageStoreKDBOptions = { host: string; port: number; tableName?: string; parser: IFIXParser; maxBufferSize?: number; writeInterval?: number; logger?: Logger; onReady: () => void; }; export declare class MessageStoreKDB implements IMessageStore<IMessage> { /** * A number representing the next expected message sequence number. * @private */ private nextMsgSeqNum; private readonly inMemoryMessageStore; private readonly host; private readonly port; private readonly tableName; private readonly ws; private readonly parser; private readonly logger; private readonly writeInterval; private readonly writeIntervalId; private maxBufferSize; constructor({ host, port, tableName, parser, logger, onReady, maxBufferSize, writeInterval, }: MessageStoreKDBOptions); private send; private sendAsync; private writeToKDB; add(message: IMessage): void; getByMsgSequence(msgSequence: number): IMessage | undefined; getByMsgSequenceAsync(msgSequence: number): Promise<IMessage | undefined>; /** * Updates a `Message` instance in the store. * * @param {number} msgSequence - The sequence number of the message to update. * @param {Message} message - The updated message. * * @returns {boolean} - Returns `true` if the message was updated successfully, `false` otherwise. */ update(msgSequence: number, message: IMessage): boolean; /** * Removes a `Message` instance from the store by its sequence number. * * @param {number} msgSequence - The sequence number of the message to remove. * * @returns {void} */ remove(msgSequence: number): void; /** * Checks if a message with a given sequence number exists in the store. * * @param {number} msgSequence - The sequence number of the message to check. * @returns {boolean} - `true` if the message exists, `false` otherwise. */ exists(msgSequence: number): boolean; /** * Retrieves all `Message` instances from the store. * * @returns {Message[]} - An array of all `Message` instances in the store. */ getAll(): IMessage[]; /** * Retrieves all `Message` instances from the store. * * @returns {Message[]} - An array of all `Message` instances in the store. */ getAllAsync(): Promise<IMessage[]>; size(): number; /** * Resizes the message buffer's capacity. * * @param {number} newCapacity - The new maximum capacity for the buffer. * @returns {void} */ resize(newCapacity: number): void; clear(): void; getCapacity(): number; stopWriteInterval(): void; /** * Set the next message sequence number. * * @param nextMsgSeqNum - The next message sequence number. * @returns {number} - The next message sequence number. */ setNextMsgSeqNum(nextMsgSeqNum: number): number; /** * Get the next message sequence number. * * @returns {number} - The next message sequence number. */ getNextMsgSeqNum(): number; }