mirror of
https://github.com/protomaps/PMTiles.git
synced 2026-02-04 10:51:07 +00:00
key by offset+length to allow fetches of magic numbers
This commit is contained in:
10
js/index.ts
10
js/index.ts
@@ -280,13 +280,13 @@ interface CacheEntry {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class LRUCacheSource implements Source {
|
export class LRUCacheSource implements Source {
|
||||||
entries: Map<number, CacheEntry>;
|
entries: Map<string, CacheEntry>;
|
||||||
maxEntries: number;
|
maxEntries: number;
|
||||||
source: Source;
|
source: Source;
|
||||||
|
|
||||||
constructor(source: Source, maxEntries: number) {
|
constructor(source: Source, maxEntries: number) {
|
||||||
this.source = source;
|
this.source = source;
|
||||||
this.entries = new Map<number, CacheEntry>();
|
this.entries = new Map<string, CacheEntry>();
|
||||||
this.maxEntries = maxEntries;
|
this.maxEntries = maxEntries;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -295,7 +295,7 @@ export class LRUCacheSource implements Source {
|
|||||||
};
|
};
|
||||||
|
|
||||||
async getBytes(offset: number, length: number) {
|
async getBytes(offset: number, length: number) {
|
||||||
let val = this.entries.get(offset);
|
let val = this.entries.get(offset + "-" + length);
|
||||||
if (val) {
|
if (val) {
|
||||||
val.lastUsed = performance.now();
|
val.lastUsed = performance.now();
|
||||||
return val.buffer;
|
return val.buffer;
|
||||||
@@ -303,7 +303,7 @@ export class LRUCacheSource implements Source {
|
|||||||
|
|
||||||
let promise = this.source.getBytes(offset, length);
|
let promise = this.source.getBytes(offset, length);
|
||||||
|
|
||||||
this.entries.set(offset, {
|
this.entries.set(offset + "-" + length, {
|
||||||
lastUsed: performance.now(),
|
lastUsed: performance.now(),
|
||||||
buffer: promise,
|
buffer: promise,
|
||||||
});
|
});
|
||||||
@@ -360,7 +360,7 @@ export class PMTiles {
|
|||||||
const root = await this.fetchRoot();
|
const root = await this.fetchRoot();
|
||||||
let entries = [];
|
let entries = [];
|
||||||
for (var i = 0; i < root.header.root_entries; i++) {
|
for (var i = 0; i < root.header.root_entries; i++) {
|
||||||
entries.push(parseEntry(root.dir,i));
|
entries.push(parseEntry(root.dir, i));
|
||||||
}
|
}
|
||||||
return entries;
|
return entries;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user