UNPKG

diffusion

Version:

Diffusion JavaScript client

51 lines (45 loc) 1.07 kB
/** * This class represent a message queue where * messages can be added, removed and can query * the state of the queue i.e. if the queue * is currently empty or not. * * @constructor */ function Queue() { var messages = []; /** * @returns {Number} number of queued items */ this.length = function () { return messages.length; }; /** * Add a message to the messages queue. * * @param {Message} message The message to be added */ this.add = function add(message) { messages.push(message); }; /** * Removes then returns all messages from the queue as a list. * * @returns {Array.<Message>} A list of removed messages */ this.drain = function drain() { return messages.splice(0, messages.length); }; /** * * @returns {boolean} If the queue is empty */ this.isEmpty = function isEmpty() { return messages.length === 0; }; } module.exports = { create: function create() { return new Queue(); } };