UNPKG

active-switching

Version:

NPAW's SDK for CDN Balancing and P2P

62 lines (61 loc) 2.65 kB
import P2PLoader from './P2PLoader'; import CDNLoader from './CDNLoader'; import Options from '../Utils/Options'; import SegmentStorage from '../Storage/SegmentStorage'; import { VideoSegment } from '../Storage/VideoSegment'; /** * @class * @description Request load main class, it manages and chooses between CDN and P2P requests and evaluates the requests. * @exports Loader */ export default class Loader { private _resource; private readonly _options; private _balancerBusinessObject; P2PLoader: P2PLoader; CDNLoader: CDNLoader; storage: SegmentStorage; private _segments; segmentsMap: Map<string, string>; uuid: string; private isEnabled; /** * Constructs loader. * @param {Options} options Options object. */ constructor(options: Options); loadCDNBalancerData(): void; /** * Chooses to request to CDN or P2P and manages the response calling the callback. * @param {URL} url URL object for the request. * @param {callback} callback Callback method to call back when loaded.F * @param {Object} headers Optional headers of the request. * @param {number} retries Number of retries before giving up to load a segment if it fails, optional. * @param {boolean} forceArrayBuffer False by default, set as true if is expected to get the manifest response * in ArrayBuffer format. * @public */ processSegment(url: URL, download: boolean, callbacks: callback[], headers: { [key: string]: string; }, retries?: number, forceArrayBuffer?: boolean, stats?: fragStats): VideoSegment; onProcessSegmentFail(segment: VideoSegment, retry: boolean): void; onProcessSegmentSuccess(segment: VideoSegment): void; /** * Returns the map of unfinished/active CDN requests. * @returns {Map<string,VideoSegment>} The map with the requests. * @public */ enableCDN(name: string, enabled: boolean): boolean; setActive(name: string, enabled: boolean): boolean; setMaxBandwith(name: string, bandwidth: number): boolean; loadEM(xhr: XMLHttpRequest, url: URL, e: ProgressEvent): void; loadStartEM(xhr: XMLHttpRequest, segment: VideoSegment, e: ProgressEvent): void; progressEM(xhr: XMLHttpRequest, segment: VideoSegment, e: ProgressEvent): void; readyStateChangeEM(xhr: XMLHttpRequest, segment: VideoSegment): boolean; loadEndEM(xhr: XMLHttpRequest, segment: VideoSegment, e: ProgressEvent): void; errorEM(xhr: XMLHttpRequest, segment: VideoSegment, e: ProgressEvent): void; getStats(): LoaderStats; enable(): void; disable(): void; getIsEnabled(): boolean; }