@fails-components/webtransport
Version:
A component to add webtransport support (server and client) to node.js using libquiche
70 lines • 2.37 kB
TypeScript
export class FlowController {
static kSessionFlowControlMultiplier: number;
/**
* @param {{tocontrol: FlowControlable
* sendWindowOffset: number,
* receiveWindowOffset: number,
* shouldAutoTuneReceiveWindow: boolean
* receiveWindowSizeLimit: number,
* sessionFlowController?: FlowController}} arg
*/
constructor({ tocontrol, sendWindowOffset, receiveWindowOffset, receiveWindowSizeLimit, shouldAutoTuneReceiveWindow, sessionFlowController }: {
tocontrol: FlowControlable;
sendWindowOffset: number;
receiveWindowOffset: number;
shouldAutoTuneReceiveWindow: boolean;
receiveWindowSizeLimit: number;
sessionFlowController?: FlowController;
});
tocontrol: import("../types").FlowControlable;
bytesSent: bigint;
sendWindowOffset: bigint;
bytesConsumed: bigint;
highestReceivedByteOffset: bigint;
receiveWindowOffset: bigint;
receiveWindowSize: bigint;
receiveWindowSizeLimit: bigint;
autoTuneReceiveWindow: boolean;
sessionFlowController: FlowController | undefined;
lastBlockedSendWindowOffset: bigint;
prevWindowUpdateTime: number | undefined;
/**
* @param {Number} bytesConsumed
*/
addBytesConsumed(bytesConsumed: number): void;
/**
* @param {Number} increaseOffset
*/
updateHighestReceivedOffset(increaseOffset: number): boolean;
/**
* @param {Number} nbytesSent
*/
addBytesSent(nbytesSent: number): void;
flowControlViolation(): boolean;
maybeIncreaseMaxWindowSize(): void;
increaseWindowSize(): void;
windowUpdateThreshold(): bigint;
maybeSendWindowUpdate(): void;
/**
* @param {bigint} availableWindow
*/
updateReceiveWindowOffsetAndSendWindowUpdate(availableWindow: bigint): void;
maybeSendBlocked(): void;
/**
* @param {bigint} newSendWindowOffset
*/
updateSendWindowOffset(newSendWindowOffset: bigint): boolean;
/**
* @param {bigint} windowSize
*/
ensureWindowAtLeast(windowSize: bigint): void;
isBlocked(): boolean;
sendWindowSize(): bigint;
/**
* @param {bigint} size
*/
updateReceiveWindowSize(size: bigint): void;
sendWindowUpdate(): void;
}
export type FlowControlable = import('../types').FlowControlable;
//# sourceMappingURL=flowcontroller.d.ts.map