| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- 'use strict'
- var util = require('util')
- var transport = require('../../../spdy-transport')
- var base = require('./')
- var Scheduler = base.Scheduler
- function Framer (options) {
- Scheduler.call(this)
- this.version = null
- this.compress = null
- this.window = options.window
- this.timeout = options.timeout
- // Wait for `enablePush`
- this.pushEnabled = null
- }
- util.inherits(Framer, Scheduler)
- module.exports = Framer
- Framer.prototype.setVersion = function setVersion (version) {
- this.version = version
- this.emit('version')
- }
- Framer.prototype.setCompression = function setCompresion (pair) {
- this.compress = new transport.utils.LockStream(pair.compress)
- }
- Framer.prototype.enablePush = function enablePush (enable) {
- this.pushEnabled = enable
- this.emit('_pushEnabled')
- }
- Framer.prototype._checkPush = function _checkPush (callback) {
- if (this.pushEnabled === null) {
- this.once('_pushEnabled', function () {
- this._checkPush(callback)
- })
- return
- }
- var err = null
- if (!this.pushEnabled) {
- err = new Error('PUSH_PROMISE disabled by other side')
- }
- process.nextTick(function () {
- return callback(err)
- })
- }
- Framer.prototype._resetTimeout = function _resetTimeout () {
- if (this.timeout) {
- this.timeout.reset()
- }
- }
|