diffusion
Version:
Diffusion JavaScript client
51 lines (45 loc) • 1.07 kB
JavaScript
/**
* 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();
}
};