UNPKG

@glue42/bbg-market-data

Version:

A high-level API that wraps existing Glue42 Bloomberg Bridge Market Data interop methods. The API is based on the jBloomberg open source wrapper.

47 lines (46 loc) 2 kB
import { CallbackRegistry, UnsubscribeFunction } from "callback-registry"; import { RequestId } from "./types/request-id"; import { RequestConfig } from "../request-configs"; import { RequestStatus } from "../request-status"; import { BloombergError, EventHandler, EventMessageInner, RequestStatusChangedHandler } from "./types"; import { OperationArgs } from "./../bridge/types"; import { BaseRequestOpenOptions } from "./types/open-request-options"; import { SessionsManager } from "./../sessions/sessions-manager"; export declare type EventMessageProcessorResult = { action: "close"; } | { action: "continue"; } | { action: "fail"; error: Error | BloombergError; } | { action: "complete"; }; export declare type EventMessageProcessorFn = (eventMessage: EventMessageInner) => Promise<EventMessageProcessorResult>; /** * Represents the lifecycle of a non-subscription request. */ export declare abstract class BaseRequest<TArgs> { readonly sessionManager: SessionsManager; readonly config: RequestConfig; readonly operationArgs: OperationArgs<TArgs>; protected readonly registry: CallbackRegistry; protected requestId: RequestId; protected _status: RequestStatus; private sessionInstance; constructor(sessionManager: SessionsManager, config: RequestConfig, operationArgs: OperationArgs<TArgs>); protected openRequest(options: BaseRequestOpenOptions & { messageProcessor: EventMessageProcessorFn; }): Promise<void>; protected onEvent(callback: EventHandler): UnsubscribeFunction; protected closeRequest(): Promise<void>; protected onRequestStatusChanged(callback: RequestStatusChangedHandler): UnsubscribeFunction; private processEventMessage; private requestDisposed; private requestOpened; private requestActivated; private requestClosedSuccessfully; private requestFailed; private requestCompleted; private raiseRequestStatusChanged; }