src/cm/media/js/lib/yui/yui_3.0.0b1/build/queue/queue-base-debug.js
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 0 40c8f766c9b8
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
/*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
Copyright (c) 2009, Yahoo! Inc. All rights reserved.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
Code licensed under the BSD License:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
http://developer.yahoo.net/yui/license.txt
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
version: 3.0.0b1
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
build: 1163
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
YUI.add('queue-base', function(Y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
 * <p>The Queue module adds a common data structure for FIFO operations. In its
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
 * simplest form, it is little more than an array wrapper. Additional
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
 * submodules introduce more functionality such as promotion and removal of
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
 * queued items.</p>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
 *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
 * <p>An AsyncQueue class is provided in the queue-run submodule.  This class
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
 * affords a mechanism to do complex sequential and iterative callback
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
 * execution across configured timeouts.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
 *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
 * @module queue
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
 * A simple FIFO queue.  Items are added to the Queue with add(1..n items) and
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
 * removed using next().
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
 *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
 * @module queue
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
 * @submodule queue-base
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
 * @class Queue
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    30
 * @param item* {MIXED} 0..n items to seed the queue
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
function Queue() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
    this._init();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
    this.add.apply(this, arguments);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
Queue.prototype = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
     * Initialize the queue
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
     * @method _init
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
     * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
    _init : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
        /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
         * The collection of enqueued items
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
         *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
         * @property _q
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
         * @type {Array}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    50
         * @protected
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    51
         */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
        this._q = [];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    53
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    56
     * Get the next item in the queue.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
     * @method next
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
     * @return {MIXED} the next item in the queue
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    60
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    61
    next : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
        return this._q.shift();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    63
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    64
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    66
     * Add 0..n items to the end of the queue
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    67
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
     * @method add
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    69
     * @param item* {MIXED} 0..n items
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    70
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    71
    add : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    72
        Y.Array.each(Y.Array(arguments,0,true),function (fn) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    73
            this._q.push(fn);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    74
        },this);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    75
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    76
        return this;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    77
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    78
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    79
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    80
     * Returns the current number of queued items
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    81
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    82
     * @method size
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    83
     * @return {Number}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    84
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    85
    size : function () {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    86
        return this._q.length;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    87
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    88
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    89
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    90
Y.Queue = Queue;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    91
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    92
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    93
}, '3.0.0b1' ,{requires:['widget','dd-constrain']});