source: Dev/branches/rest-dojo-ui/client/dojox/collections/Queue.js @ 256

Last change on this file since 256 was 256, checked in by hendrikvanantwerpen, 13 years ago

Reworked project structure based on REST interaction and Dojo library. As
soon as this is stable, the old jQueryUI branch can be removed (it's
kept for reference).

File size: 1.9 KB
Line 
1define(["dojo/_base/kernel", "dojo/_base/array", "./_base"], function(dojo, darray, dxc){
2/*=====
3var dxc = dojox.collections;
4=====*/
5        dxc.Queue=function(/* array? */arr){
6                //      summary
7                //      return an object of type dojox.collections.Queue
8                var q=[];
9                if (arr){
10                        q=q.concat(arr);
11                }
12                this.count=q.length;
13                this.clear=function(){
14                        //      summary
15                        //      clears the internal collection
16                        q=[];
17                        this.count=q.length;
18                };
19                this.clone=function(){
20                        //      summary
21                        //      creates a new Queue based on this one
22                        return new dxc.Queue(q);        //      dojox.collections.Queue
23                };
24                this.contains=function(/* object */ o){
25                        //      summary
26                        //      Check to see if the passed object is an element in this queue
27                        for(var i=0; i<q.length; i++){
28                                if (q[i]==o){
29                                        return true;    //      bool
30                                }
31                        }
32                        return false;   //      bool
33                };
34                this.copyTo=function(/* array */ arr, /* int */ i){
35                        //      summary
36                        //      Copy the contents of this queue into the passed array at index i.
37                        arr.splice(i,0,q);
38                };
39                this.dequeue=function(){
40                        //      summary
41                        //      shift the first element off the queue and return it
42                        var r=q.shift();
43                        this.count=q.length;
44                        return r;       //      object
45                };
46                this.enqueue=function(/* object */ o){
47                        //      summary
48                        //      put the passed object at the end of the queue
49                        this.count=q.push(o);
50                };
51                this.forEach=function(/* function */ fn, /* object? */ scope){
52                        //      summary
53                        //      functional iterator, following the mozilla spec.
54                        dojo.forEach(q, fn, scope);
55                };
56                this.getIterator=function(){
57                        //      summary
58                        //      get an Iterator based on this queue.
59                        return new dxc.Iterator(q);     //      dojox.collections.Iterator
60                };
61                this.peek=function(){
62                        //      summary
63                        //      get the next element in the queue without altering the queue.
64                        return q[0];
65                };
66                this.toArray=function(){
67                        //      summary
68                        //      return an array based on the internal array of the queue.
69                        return [].concat(q);
70                };
71        };
72        return dxc.Queue;
73});
Note: See TracBrowser for help on using the repository browser.