diff options
Diffstat (limited to 'desktop/node_modules/dir-compare/build/src/fs/Queue.js')
-rw-r--r-- | desktop/node_modules/dir-compare/build/src/fs/Queue.js | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/desktop/node_modules/dir-compare/build/src/fs/Queue.js b/desktop/node_modules/dir-compare/build/src/fs/Queue.js new file mode 100644 index 0000000..f6e280c --- /dev/null +++ b/desktop/node_modules/dir-compare/build/src/fs/Queue.js @@ -0,0 +1,50 @@ +/* + +Queue.js + +A function to represent a queue + +Created by Kate Morley - http://code.iamkate.com/ - and released under the terms +of the CC0 1.0 Universal legal code: + +http://creativecommons.org/publicdomain/zero/1.0/legalcode + +*/ +const MAX_UNUSED_ARRAY_SIZE = 10000; +/* Creates a new queue. A queue is a first-in-first-out (FIFO) data structure - + * items are added to the end of the queue and removed from the front. + */ +function Queue() { + // initialise the queue and offset + let queue = []; + let offset = 0; + // Returns the length of the queue. + this.getLength = () => (queue.length - offset); + /* Enqueues the specified item. The parameter is: + * + * item - the item to enqueue + */ + this.enqueue = item => { + queue.push(item); + }; + /* Dequeues an item and returns it. If the queue is empty, the value + * 'undefined' is returned. + */ + this.dequeue = () => { + // if the queue is empty, return immediately + if (queue.length === 0) { + return undefined; + } + // store the item at the front of the queue + const item = queue[offset]; + // increment the offset and remove the free space if necessary + if (++offset > MAX_UNUSED_ARRAY_SIZE) { + queue = queue.slice(offset); + offset = 0; + } + // return the dequeued item + return item; + }; +} +module.exports = Queue; +//# sourceMappingURL=Queue.js.map
\ No newline at end of file |