Sha256: 94f14ad4dfc6ca7418c53ff6b543d26921adfe19400e3c28800fa6d0b294289c

Contents?: true

Size: 1.42 KB

Versions: 33

Compression:

Stored size: 1.42 KB

Contents

'use strict'

var zlibpool = exports
var zlib = require('zlib')

var transport = require('../../../spdy-transport')

// TODO(indutny): think about it, why has it always been Z_SYNC_FLUSH here.
// It should be possible to manually flush stuff after the write instead
function createDeflate (version, compression) {
  var deflate = zlib.createDeflate({
    dictionary: transport.protocol.spdy.dictionary[version],
    flush: zlib.Z_SYNC_FLUSH,
    windowBits: 11,
    level: compression ? zlib.Z_DEFAULT_COMPRESSION : zlib.Z_NO_COMPRESSION
  })

  // For node.js v0.8
  deflate._flush = zlib.Z_SYNC_FLUSH

  return deflate
}

function createInflate (version) {
  var inflate = zlib.createInflate({
    dictionary: transport.protocol.spdy.dictionary[version],
    flush: zlib.Z_SYNC_FLUSH
  })

  // For node.js v0.8
  inflate._flush = zlib.Z_SYNC_FLUSH

  return inflate
}

function Pool (compression) {
  this.compression = compression
  this.pool = {
    2: [],
    3: [],
    3.1: []
  }
}

zlibpool.create = function create (compression) {
  return new Pool(compression)
}

Pool.prototype.get = function get (version) {
  if (this.pool[version].length > 0) {
    return this.pool[version].pop()
  } else {
    var id = version

    return {
      version: version,
      compress: createDeflate(id, this.compression),
      decompress: createInflate(id)
    }
  }
}

Pool.prototype.put = function put (pair) {
  this.pool[pair.version].push(pair)
}

Version data entries

33 entries across 32 versions & 11 rubygems

Version Path
optimacms-0.1.61 spec/dummy/node_modules/spdy-transport/lib/spdy-transport/protocol/spdy/zlib-pool.js
disco_app-0.18.0 test/dummy/node_modules/spdy-transport/lib/spdy-transport/protocol/spdy/zlib-pool.js
disco_app-0.18.2 test/dummy/node_modules/spdy-transport/lib/spdy-transport/protocol/spdy/zlib-pool.js
disco_app-0.16.1 test/dummy/node_modules/spdy-transport/lib/spdy-transport/protocol/spdy/zlib-pool.js
disco_app-0.15.2 test/dummy/node_modules/spdy-transport/lib/spdy-transport/protocol/spdy/zlib-pool.js
disco_app-0.18.4 test/dummy/node_modules/spdy-transport/lib/spdy-transport/protocol/spdy/zlib-pool.js
disco_app-0.18.1 test/dummy/node_modules/spdy-transport/lib/spdy-transport/protocol/spdy/zlib-pool.js
disco_app-0.12.7.pre.puma.pre.3 test/dummy/node_modules/spdy-transport/lib/spdy-transport/protocol/spdy/zlib-pool.js
disco_app-0.14.0 test/dummy/node_modules/spdy-transport/lib/spdy-transport/protocol/spdy/zlib-pool.js
disco_app-0.13.6.pre.puma.pre.3 test/dummy/node_modules/spdy-transport/lib/spdy-transport/protocol/spdy/zlib-pool.js
tang-0.2.1 spec/tang_app/node_modules/spdy-transport/lib/spdy-transport/protocol/spdy/zlib-pool.js
groonga-client-model-6.0.0 test/apps/rails6.0.3.5/node_modules/spdy-transport/lib/spdy-transport/protocol/spdy/zlib-pool.js
groonga-client-model-6.0.0 test/apps/rails6.1.3/node_modules/spdy-transport/lib/spdy-transport/protocol/spdy/zlib-pool.js
ruby2js-4.0.4 lib/tasks/testrails/node_modules/spdy-transport/lib/spdy-transport/protocol/spdy/zlib-pool.js
ruby2js-4.0.3 lib/tasks/testrails/node_modules/spdy-transport/lib/spdy-transport/protocol/spdy/zlib-pool.js
tang-0.2.0 spec/tang_app/node_modules/spdy-transport/lib/spdy-transport/protocol/spdy/zlib-pool.js
tang-0.1.0 spec/tang_app/node_modules/spdy-transport/lib/spdy-transport/protocol/spdy/zlib-pool.js
tang-0.0.9 spec/tang_app/node_modules/spdy-transport/lib/spdy-transport/protocol/spdy/zlib-pool.js
enju_library-0.3.8 spec/dummy/node_modules/spdy-transport/lib/spdy-transport/protocol/spdy/zlib-pool.js
ilog-0.4.1 node_modules/spdy-transport/lib/spdy-transport/protocol/spdy/zlib-pool.js