1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/testing/xpcshell/node-spdy/lib/spdy/zlib-pool.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,58 @@ 1.4 +var zlibpool = exports, 1.5 + spdy = require('../spdy'); 1.6 + 1.7 +// 1.8 +// ### function Pool () 1.9 +// Zlib streams pool 1.10 +// 1.11 +function Pool() { 1.12 + this.pool = { 1.13 + 'spdy/2': [], 1.14 + 'spdy/3': [] 1.15 + }; 1.16 +} 1.17 + 1.18 +// 1.19 +// ### function create () 1.20 +// Returns instance of Pool 1.21 +// 1.22 +zlibpool.create = function create() { 1.23 + return new Pool(); 1.24 +}; 1.25 + 1.26 +var x = 0; 1.27 +// 1.28 +// ### function get () 1.29 +// Returns pair from pool or a new one 1.30 +// 1.31 +Pool.prototype.get = function get(version, callback) { 1.32 + if (this.pool[version].length > 0) { 1.33 + return this.pool[version].pop(); 1.34 + } else { 1.35 + var id = version.split('/', 2)[1]; 1.36 + 1.37 + return { 1.38 + version: version, 1.39 + deflate: spdy.utils.createDeflate(id), 1.40 + inflate: spdy.utils.createInflate(id) 1.41 + }; 1.42 + } 1.43 +}; 1.44 + 1.45 +// 1.46 +// ### function put (pair) 1.47 +// Puts pair into pool 1.48 +// 1.49 +Pool.prototype.put = function put(pair) { 1.50 + var self = this, 1.51 + waiting = 2; 1.52 + 1.53 + spdy.utils.resetZlibStream(pair.inflate, done); 1.54 + spdy.utils.resetZlibStream(pair.deflate, done); 1.55 + 1.56 + function done() { 1.57 + if (--waiting === 0) { 1.58 + self.pool[pair.version].push(pair); 1.59 + } 1.60 + } 1.61 +};