fixparser-plugin-messagestore-kdb
Version:
FIXParser KDB+ plugin
106 lines (105 loc) • 3.33 kB
TypeScript
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;
}