Subversion Repositories Applications.papyrus

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

/*
        Copyright (c) 2004-2006, The Dojo Foundation
        All Rights Reserved.

        Licensed under the Academic Free License version 2.1 or above OR the
        modified BSD license. For more information on Dojo licensing, see:

                http://dojotoolkit.org/community/licensing.shtml
*/

dojo.provide("dojo.collections.Queue");
dojo.require("dojo.collections.Collections");
dojo.collections.Queue = function (arr) {
        var q = [];
        if (arr) {
                q = q.concat(arr);
        }
        this.count = q.length;
        this.clear = function () {
                q = [];
                this.count = q.length;
        };
        this.clone = function () {
                return new dojo.collections.Queue(q);
        };
        this.contains = function (o) {
                for (var i = 0; i < q.length; i++) {
                        if (q[i] == o) {
                                return true;
                        }
                }
                return false;
        };
        this.copyTo = function (arr, i) {
                arr.splice(i, 0, q);
        };
        this.dequeue = function () {
                var r = q.shift();
                this.count = q.length;
                return r;
        };
        this.enqueue = function (o) {
                this.count = q.push(o);
        };
        this.forEach = function (fn, scope) {
                var s = scope || dj_global;
                if (Array.forEach) {
                        Array.forEach(q, fn, s);
                } else {
                        for (var i = 0; i < q.length; i++) {
                                fn.call(s, q[i], i, q);
                        }
                }
        };
        this.getIterator = function () {
                return new dojo.collections.Iterator(q);
        };
        this.peek = function () {
                return q[0];
        };
        this.toArray = function () {
                return [].concat(q);
        };
};