@itwin/core-frontend
Version:
iTwin.js frontend components
80 lines • 3.89 kB
TypeScript
/** @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