| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 1× 1× 16× 17× 16× 1× 221× 221× 221× 1× 1× 221× 1× | import * as Collections from "typescript-collections";
export class FixedQueue<T> extends Collections.Queue<T> {
public maxSize = 0;
constructor(maxSize: number) {
super();
this.maxSize = maxSize;
}
enqueue(elem: T): boolean {
const val = super.enqueue(elem);
this.enforceSize();
return val;
}
add(elem: T): boolean {
const val = super.add(elem);
this.enforceSize();
return val;
}
protected enforceSize() {
while (this.size() > this.maxSize) { this.dequeue(); }
}
};
|