UNPKG

@itwin/core-frontend

Version:
80 lines 3.89 kB
/** @packageDocumentation * @module Tiles */ import { IModelConnection } from "../IModelConnection"; import { IModelTile, IModelTileRequestChannels, TileRequestChannel, TileRequestChannelStatistics } from "./internal"; /** A set of named [[TileRequestChannel]]s via which content for [[Tile]]s can be requested. * @see [[TileAdmin.channels]] for the channels configured for use with the iTwin.js display system. * @see [[TileRequestChannels.getForHttp]] for the most typical way of obtaining or registering a channel. * @public * @extensions */ export declare class TileRequestChannels { /** @internal */ readonly iModelChannels: IModelTileRequestChannels; /** The channel over which [[TileAdmin.requestElementGraphics]] executes. If you implement a [[TiledGraphicsProvider]] or [[TileTree]] that obtains its * content from `requestElementGraphics`, use this channel. */ readonly elementGraphicsRpc: TileRequestChannel; /** The maximum number of active requests for a channel that uses HTTP to request content. */ readonly httpConcurrency = 6; private _rpcConcurrency; private readonly _channels; /** `rpcConcurrency` is defined if [[IpcApp.isValid]]; otherwise RPC requests are made over HTTP and use the same limits. * @internal */ constructor(rpcConcurrency: number | undefined, cacheMetadata: boolean); /** The number of registered channels. */ get size(): number; /** Look up a registered channel by its name. */ get(name: string): TileRequestChannel | undefined; /** Return whether the specified channel has been registered. Primarily for debugging. */ has(channel: TileRequestChannel): boolean; /** Add a new channel. * @throws Error if a channel by the same name has already been registered. */ add(channel: TileRequestChannel): void; /** Extract the host name from a URL for use as the name of the corresponding [[TileRequestChannel]]. * @throws TypeError if `url` is a string and does not represent a valid URL. * @see [[getForHttp]] to obtain or register a channel for the host name. */ static getNameFromUrl(url: URL | string): string; /** Obtain a channel that requests content over HTTP using HTTP 1.1 limits on simultaneous connections. * If a channel with the specified name does not already exist, it will be created and registered. * @see [[getNameFromUrl]] to obtain a channel name corresponding to a hostname. */ getForHttp(name: string): TileRequestChannel; /** Iterator over all of the channels. */ [Symbol.iterator](): Iterator<TileRequestChannel>; /** The maximum number of active requests for a channel that uses an RpcInterface to satisfy its requests. * For web-based applications, this is the same as [[httpConcurrency]], but for [[IpcApp]]s it is determined by the number of workers threads allocated by the backend. */ get rpcConcurrency(): number; /** @internal */ getIModelTileChannel(tile: IModelTile): TileRequestChannel; /** Chiefly for debugging. * @internal */ setRpcConcurrency(concurrency: number): void; /** Statistics intended primarily for debugging. */ get statistics(): TileRequestChannelStatistics; /** Reset all [[statistics]] to zero. */ resetStatistics(): void; /** Invoked by [[TileAdmin.processQueue]] when it is about to start enqueuing new requests. * @internal */ swapPending(): void; /** Invoked by [[TileAdmin.processQueue]] when it is about to start enqueuing new requests. * @internal */ process(): void; /** Invoked by [[TileAdmin.onIModelClosed]]. * @internal */ onIModelClosed(iModel: IModelConnection): void; /** Invoked by [[TileAdmin.onShutDown]]. * @internal */ onShutDown(): void; } //# sourceMappingURL=TileRequestChannels.d.ts.map