testing/xpcshell/node-spdy/lib/spdy/zlib-pool.js

Wed, 31 Dec 2014 06:55:46 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:55:46 +0100
changeset 1
ca08bd8f51b2
permissions
-rw-r--r--

Added tag TORBROWSER_REPLICA for changeset 6474c204b198

     1 var zlibpool = exports,
     2     spdy = require('../spdy');
     4 //
     5 // ### function Pool ()
     6 // Zlib streams pool
     7 //
     8 function Pool() {
     9   this.pool = {
    10     'spdy/2': [],
    11     'spdy/3': []
    12   };
    13 }
    15 //
    16 // ### function create ()
    17 // Returns instance of Pool
    18 //
    19 zlibpool.create = function create() {
    20   return new Pool();
    21 };
    23 var x = 0;
    24 //
    25 // ### function get ()
    26 // Returns pair from pool or a new one
    27 //
    28 Pool.prototype.get = function get(version, callback) {
    29   if (this.pool[version].length > 0) {
    30     return this.pool[version].pop();
    31   } else {
    32     var id = version.split('/', 2)[1];
    34     return {
    35       version: version,
    36       deflate: spdy.utils.createDeflate(id),
    37       inflate: spdy.utils.createInflate(id)
    38     };
    39   }
    40 };
    42 //
    43 // ### function put (pair)
    44 // Puts pair into pool
    45 //
    46 Pool.prototype.put = function put(pair) {
    47   var self = this,
    48       waiting = 2;
    50   spdy.utils.resetZlibStream(pair.inflate, done);
    51   spdy.utils.resetZlibStream(pair.deflate, done);
    53   function done() {
    54     if (--waiting === 0) {
    55       self.pool[pair.version].push(pair);
    56     }
    57   }
    58 };

mercurial