typescript-dotnet-amd
Version:
A JavaScript-Friendly .NET Based TypeScript Library.
75 lines (74 loc) • 3.12 kB
TypeScript
import { CollectionBase } from "./CollectionBase";
import { Action, ActionWithIndex, EqualityComparison, PredicateWithIndex } from "../FunctionTypes";
import { IEnumerator } from "./Enumeration/IEnumerator";
import { IEnumerableOrArray } from "./IEnumerableOrArray";
export declare class Queue<T> extends CollectionBase<T> {
private _array;
private _head;
private _tail;
private _size;
private _capacity;
constructor(source?: IEnumerableOrArray<T> | number, equalityComparer?: EqualityComparison<T>);
protected getCount(): number;
protected _addInternal(item: T): boolean;
protected _removeInternal(item: T, max?: number): number;
protected _clearInternal(): number;
protected _onDispose(): void;
/**
* Dequeues entries into an array.
*/
dump(max?: number): T[];
forEach(action: ActionWithIndex<T>): number;
forEach(action: PredicateWithIndex<T>): number;
setCapacity(capacity: number): this;
enqueue(item: T): this;
protected _tryDequeueInternal(out: Action<T>): boolean;
/**
* Pulls an entry from the head of the queue and returns it.
* Returns undefined if the queue is already empty.
*/
dequeue(): T | undefined;
/**
* Pulls an entry from the head of the queue and returns it.
* Returns undefined if the queue is already empty and throwIfEmpty is false.
* Throws an InvalidOperationException if the queue is already empty and throwIfEmpty is true.
* @param throwIfEmpty
*/
dequeue(throwIfEmpty: true): T;
/**
* Pulls an entry from the head of the queue and returns it.
* Returns undefined if the queue is already empty and throwIfEmpty is false.
* Throws an InvalidOperationException if the queue is already empty and throwIfEmpty is true.
* @param throwIfEmpty
*/
dequeue(throwIfEmpty: boolean): T | undefined;
/**
* Checks to see if the queue has entries an pulls an entry from the head of the queue and passes it to the out handler.
* @param out The 'out' handler that receives the value if it exists.
* @returns {boolean} True if a value was retrieved. False if not.
*/
tryDequeue(out: Action<T>): boolean;
private _getElement;
/**
* Returns the entry at the head of the queue.
* Returns undefined if the queue is already empty.
*/
peek(): T | undefined;
/**
* Returns the entry at the head of the queue.
* Returns undefined if the queue is already empty and throwIfEmpty is false.
* Throws an InvalidOperationException if the queue is already empty and throwIfEmpty is true.
* @param throwIfEmpty
*/
peek(throwIfEmpty: true): T;
/**
* Returns the entry at the head of the queue.
* Returns undefined if the queue is already empty and throwIfEmpty is false.
* Throws an InvalidOperationException if the queue is already empty and throwIfEmpty is true.
* @param throwIfEmpty
*/
peek(throwIfEmpty: boolean): T | undefined;
trimExcess(threshold?: number): void;
getEnumerator(): IEnumerator<T>;
}
export default Queue;