UNPKG

reliable-zeromq

Version:

A collection of reliable zeromq messaging constructs

56 lines (55 loc) 1.74 kB
import { TZMQRequestErrorHandlers } from "./Errors"; export declare type TRequestBody = [requesterId: string, nonce: string, message: string]; export declare enum ERequestBody { RequesterId = 0, Nonce = 1, Message = 2 } export declare enum ERequestResponse { SUCCESS = "SUCCESS", TIMEOUT = "TIMEOUT", CACHE_ERROR = "CACHE_ERROR" } export declare type TSuccessfulRequest = { ResponseType: ERequestResponse.SUCCESS; Response: string; }; export declare type TRequestTimeOut = { ResponseType: ERequestResponse.TIMEOUT; MessageNonce: number; RequestBody: TRequestBody; }; export declare type TResponseCacheError = { ResponseType: ERequestResponse.CACHE_ERROR; Endpoint: string; MessageNonce: number; }; export declare type TRequestResponse = TSuccessfulRequest | TRequestTimeOut | TResponseCacheError; export declare class ZMQRequest { private readonly mCancellableDelay; private mDealer; private readonly mEndpoint; private readonly mErrorHandlers; private readonly mOurUniqueId; private readonly mPendingRequests; private mRequestNonce; private readonly mRoundTripMax; private mSafeToSend; private readonly mSendQueue; constructor(aReceiverEndpoint: string, aErrorHandlers?: TZMQRequestErrorHandlers); private get ResponseTimeout(); get Endpoint(): string; private AssertRequestProcessed; private GenerateRequestResult; private HandleZMQSendError; private IsErrorMessage; private ManageRequest; private Open; private ProcessSend; private ProcessZmqReceive; private QueueSend; private ResponseHandler; private SendRequest; Close(): void; Send(aData: string): Promise<TRequestResponse>; }