@here/harp-mapview-decoder
Advanced tools
| import "@here/harp-fetch"; | ||
| import { TileKey } from "@here/harp-geoutils"; | ||
| import { EventDispatcher } from "three"; | ||
| /** | ||
@@ -11,13 +12,21 @@ * Interface for all `DataProvider` subclasses. | ||
| */ | ||
| export interface DataProvider { | ||
| export declare abstract class DataProvider extends EventDispatcher { | ||
| private readonly m_clients; | ||
| /** | ||
| * Connect to the data source. Returns a promise to wait for successful (or failed) connection. | ||
| * Registers a client to the data provider. | ||
| * | ||
| * @returns A promise which is resolved when the connection has been established. | ||
| * @param client - The client to register. | ||
| * @returns Promise to wait for successful (or failed) connection to the data source. | ||
| */ | ||
| connect(): Promise<void>; | ||
| register(client: Object): Promise<void>; | ||
| /** | ||
| * Unregisters a client from the data provider. | ||
| * | ||
| * @param client - The client to unregister. | ||
| */ | ||
| unregister(client: Object): void; | ||
| /** | ||
| * Returns `true` if it has been connected successfully. | ||
| */ | ||
| ready(): boolean; | ||
| abstract ready(): boolean; | ||
| /** | ||
@@ -30,3 +39,3 @@ * Load the data of a {@link @here/map-view@Tile} asynchronously. | ||
| */ | ||
| getTile(tileKey: TileKey, abortSignal?: AbortSignal): Promise<ArrayBufferLike | {}>; | ||
| abstract getTile(tileKey: TileKey, abortSignal?: AbortSignal): Promise<ArrayBufferLike | {}>; | ||
| /** | ||
@@ -47,7 +56,13 @@ * An event which fires when this `DataProvider` is invalidated. | ||
| /** | ||
| * Connect to the data source. Returns a promise to wait for successful (or failed) connection. | ||
| * | ||
| * @returns A promise which is resolved when the connection has been established. | ||
| */ | ||
| protected abstract connect(): Promise<void>; | ||
| /** | ||
| * Destroys this `DataProvider`. Implementations of `DataProvider` must dispose of | ||
| * asynchronous operations and services here. | ||
| */ | ||
| dispose(): void; | ||
| protected abstract dispose(): void; | ||
| } | ||
| //# sourceMappingURL=DataProvider.d.ts.map |
+38
-0
@@ -8,3 +8,41 @@ "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.DataProvider = void 0; | ||
| require("@here/harp-fetch"); | ||
| const three_1 = require("three"); | ||
| /** | ||
| * Interface for all `DataProvider` subclasses. | ||
| * | ||
| * @remarks | ||
| * The `DataProvider` is an abstraction of the tile | ||
| * loader which is only responsible for loading the data of a specific tile, | ||
| * without any relation to displaying or even decoding the data. | ||
| */ | ||
| class DataProvider extends three_1.EventDispatcher { | ||
| constructor() { | ||
| super(...arguments); | ||
| this.m_clients = new Set(); | ||
| } | ||
| /** | ||
| * Registers a client to the data provider. | ||
| * | ||
| * @param client - The client to register. | ||
| * @returns Promise to wait for successful (or failed) connection to the data source. | ||
| */ | ||
| register(client) { | ||
| const result = this.m_clients.size === 0 ? this.connect() : Promise.resolve(); | ||
| this.m_clients.add(client); | ||
| return result; | ||
| } | ||
| /** | ||
| * Unregisters a client from the data provider. | ||
| * | ||
| * @param client - The client to unregister. | ||
| */ | ||
| unregister(client) { | ||
| if (this.m_clients.delete(client) && this.m_clients.size === 0) { | ||
| this.dispose(); | ||
| } | ||
| } | ||
| } | ||
| exports.DataProvider = DataProvider; | ||
| //# sourceMappingURL=DataProvider.js.map |
@@ -18,3 +18,2 @@ "use strict"; | ||
| // align the buffer to the next integer multiple of 2. | ||
| // tslint:disable-next-line: no-bitwise | ||
| const BUFFER = -(-Math.ceil(EXTENT * BUFFER_FACTOR) & -2); | ||
@@ -29,3 +28,3 @@ class GeoJsonTiler { | ||
| async connect() { | ||
| return Promise.resolve(); | ||
| return await Promise.resolve(); | ||
| } | ||
@@ -36,3 +35,3 @@ async registerIndex(indexId, input) { | ||
| } | ||
| return this.updateIndex(indexId, input); | ||
| return await this.updateIndex(indexId, input); | ||
| } | ||
@@ -39,0 +38,0 @@ async updateIndex(indexId, input) { |
@@ -7,3 +7,3 @@ import "@here/harp-fetch"; | ||
| */ | ||
| export declare class TestSingleFileDataProvider implements DataProvider { | ||
| export declare class TestSingleFileDataProvider extends DataProvider { | ||
| private readonly moduleName; | ||
@@ -29,3 +29,3 @@ private readonly basePath; | ||
| */ | ||
| export declare class TestTilesDataProvider implements DataProvider { | ||
| export declare class TestTilesDataProvider extends DataProvider { | ||
| private readonly basePath; | ||
@@ -32,0 +32,0 @@ /** |
@@ -11,6 +11,7 @@ "use strict"; | ||
| const harp_test_utils_1 = require("@here/harp-test-utils"); | ||
| const DataProvider_1 = require("../lib/DataProvider"); | ||
| /** | ||
| * Data provider that loads test tile using [[loadTestResource]]. | ||
| */ | ||
| class TestSingleFileDataProvider { | ||
| class TestSingleFileDataProvider extends DataProvider_1.DataProvider { | ||
| /** | ||
@@ -22,2 +23,3 @@ * TestDataProvider constructor | ||
| constructor(moduleName, basePath) { | ||
| super(); | ||
| this.moduleName = moduleName; | ||
@@ -33,3 +35,3 @@ this.basePath = basePath; | ||
| async getTile(_tileKey, _abortSignal) { | ||
| return harp_test_utils_1.loadTestResource(this.moduleName, this.basePath, "arraybuffer"); | ||
| return await harp_test_utils_1.loadTestResource(this.moduleName, this.basePath, "arraybuffer"); | ||
| } | ||
@@ -48,3 +50,3 @@ /** @override */ dispose() { | ||
| */ | ||
| class TestTilesDataProvider { | ||
| class TestTilesDataProvider extends DataProvider_1.DataProvider { | ||
| /** | ||
@@ -56,2 +58,3 @@ * Constructs `TestFilesDataProvider` using the provided base path. | ||
| constructor(basePath) { | ||
| super(); | ||
| this.basePath = basePath; | ||
@@ -76,3 +79,3 @@ } | ||
| }); | ||
| return resp.arrayBuffer(); | ||
| return await resp.arrayBuffer(); | ||
| } | ||
@@ -79,0 +82,0 @@ /** @override */ dispose() { |
@@ -30,7 +30,5 @@ "use strict"; | ||
| } | ||
| // tslint:disable:no-unused-variable | ||
| getTileInfo(data, tileKey, projection) { | ||
| return Promise.resolve(undefined); | ||
| } | ||
| // tslint:disable:no-unused-variable | ||
| configure(styleSet, definitions, languages, options) { | ||
@@ -37,0 +35,0 @@ if (styleSet !== undefined) { |
@@ -54,5 +54,3 @@ "use strict"; | ||
| styleSetName: m_options.styleSetName, | ||
| // tslint:disable-next-line: deprecation | ||
| minZoomLevel: m_options.minZoomLevel, | ||
| // tslint:disable-next-line: deprecation | ||
| maxZoomLevel: m_options.maxZoomLevel, | ||
@@ -64,3 +62,5 @@ minDataLevel: m_options.minDataLevel, | ||
| storageLevelOffset: m_options.storageLevelOffset, | ||
| allowOverlappingTiles: m_options.allowOverlappingTiles | ||
| allowOverlappingTiles: m_options.allowOverlappingTiles, | ||
| minGeometryHeight: m_options.minGeometryHeight, | ||
| maxGeometryHeight: m_options.maxGeometryHeight | ||
| }); | ||
@@ -90,3 +90,3 @@ this.m_tileFactory = m_tileFactory; | ||
| this.decoder.dispose(); | ||
| this.dataProvider().dispose(); | ||
| this.dataProvider().unregister(this); | ||
| } | ||
@@ -106,3 +106,3 @@ /** @override */ | ||
| async connect() { | ||
| await Promise.all([this.m_options.dataProvider.connect(), this.m_decoder.connect()]); | ||
| await Promise.all([this.m_options.dataProvider.register(this), this.m_decoder.connect()]); | ||
| this.m_isReady = true; | ||
@@ -109,0 +109,0 @@ this.m_decoder.configure(undefined, undefined, undefined, { |
@@ -51,5 +51,3 @@ "use strict"; | ||
| if (existingService !== undefined) { | ||
| throw Error( | ||
| // tslint:disable-next-line: max-line-length | ||
| `error - service with targetServiceId='${request.targetServiceId}' already running, ignoring CreateService request`); | ||
| throw Error(`error - service with targetServiceId='${request.targetServiceId}' already running, ignoring CreateService request`); | ||
| } | ||
@@ -56,0 +54,0 @@ const factory = this.m_factories.get(request.targetServiceType); |
+9
-9
| { | ||
| "name": "@here/harp-mapview-decoder", | ||
| "version": "0.19.1", | ||
| "version": "0.20.0", | ||
| "description": "Decoder worker for mapview", | ||
@@ -29,12 +29,12 @@ "main": "index.js", | ||
| "dependencies": { | ||
| "@here/harp-datasource-protocol": "^0.19.0", | ||
| "@here/harp-fetch": "^0.19.0", | ||
| "@here/harp-geoutils": "^0.19.0", | ||
| "@here/harp-lrucache": "^0.19.0", | ||
| "@here/harp-mapview": "^0.19.0", | ||
| "@here/harp-utils": "^0.19.0", | ||
| "@here/harp-datasource-protocol": "^0.20.0", | ||
| "@here/harp-fetch": "^0.20.0", | ||
| "@here/harp-geoutils": "^0.20.0", | ||
| "@here/harp-lrucache": "^0.20.0", | ||
| "@here/harp-mapview": "^0.20.0", | ||
| "@here/harp-utils": "^0.20.0", | ||
| "geojson-vt": "^3.2.1" | ||
| }, | ||
| "devDependencies": { | ||
| "@here/harp-test-utils": "^0.19.0", | ||
| "@here/harp-test-utils": "^0.20.0", | ||
| "@types/chai": "^4.2.11", | ||
@@ -55,3 +55,3 @@ "@types/chai-as-promised": "^7.1.2", | ||
| }, | ||
| "gitHead": "1e69b69ef6a219c35ae17520483c86e80aa8a20e" | ||
| "gitHead": "862a06f6632e930e77208a7dc24bb293f826524a" | ||
| } |
86324
2.07%1898
2.76%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
Updated
Updated
Updated
Updated
Updated