UNPKG

npaw-plugin-nwf

Version:
74 lines (73 loc) 2.13 kB
import Core from '../../core/Core'; import SessionsRequest from '../SessionsRequest'; import RequestQueue from './RequestQueue'; import SendabilityPolicy from './SendabilityPolicy'; import RetryPolicy from './RetryPolicy'; import FlushController from './FlushController'; import ExpirationRecovery from './ExpirationRecovery'; /** * Core request processing orchestrator */ export default class RequestProcessor { private core; private queue; private sendabilityPolicy; private retryPolicy; private flushController; private expirationRecovery; private processing; private processTimeout; private startRequest; private onWillSendListeners; private onRequestSentListeners; constructor(core: Core, queue: RequestQueue, sendabilityPolicy: SendabilityPolicy, retryPolicy: RetryPolicy, flushController: FlushController, expirationRecovery: ExpirationRecovery); /** * Add listener hooks */ setListeners(onWillSend: ((request: SessionsRequest) => void)[], onRequestSent: ((request: SessionsRequest) => void)[]): void; /** * Process requests in the queue */ processRequests(): void; /** * Prepare request params and send it */ private prepareAndSendRequest; /** * Handle successful request */ private onRequestSuccess; /** * Handle failed request */ private onRequestFailure; /** * Handle request that cannot be sent */ private handleUnsendableRequest; /** * Prepare request parameters (inject sessionId and beatTime) */ private prepareRequestParams; /** * Get request description for logging */ private getRequestDescription; /** * Delay request processing */ private delayProcessing; /** * Clear processing timeout */ private clearProcessingTimeout; /** * Reset in-flight processor state without tearing it down. * Used by destroySession() so the host can immediately start a fresh session. */ resetState(): void; /** * Destroy processor (cleanup) */ destroy(): void; }