Bug:Fix file validation issue
[vnfsdk/refrepo.git] / vnfmarket / src / main / webapp / vnfmarket / node_modules / socket.io / lib / transports / http-polling.js
1
2 /*!
3  * socket.io-node
4  * Copyright(c) 2011 LearnBoost <dev@learnboost.com>
5  * MIT Licensed
6  */
7
8 /**
9  * Module requirements.
10  */
11
12 var HTTPTransport = require('./http');
13
14 /**
15  * Exports the constructor.
16  */
17
18 exports = module.exports = HTTPPolling;
19
20 /**
21  * HTTP polling constructor.
22  *
23  * @api public.
24  */
25
26 function HTTPPolling (mng, data, req) {
27   HTTPTransport.call(this, mng, data, req);
28 };
29
30 /**
31  * Inherits from HTTPTransport.
32  *
33  * @api public.
34  */
35
36 HTTPPolling.prototype.__proto__ = HTTPTransport.prototype;
37
38 /**
39  * Transport name
40  *
41  * @api public
42  */
43
44 HTTPPolling.prototype.name = 'httppolling';
45
46 /**
47  * Override setHandlers
48  *
49  * @api private
50  */
51
52 HTTPPolling.prototype.setHandlers = function () {
53   HTTPTransport.prototype.setHandlers.call(this);
54   this.socket.removeListener('end', this.bound.end);
55   this.socket.removeListener('close', this.bound.close);
56 };
57
58 /**
59  * Removes heartbeat timeouts for polling.
60  */
61
62 HTTPPolling.prototype.setHeartbeatInterval = function () {
63   return this;
64 };
65
66 /**
67  * Handles a request
68  *
69  * @api private
70  */
71
72 HTTPPolling.prototype.handleRequest = function (req) {
73   HTTPTransport.prototype.handleRequest.call(this, req);
74
75   if (req.method == 'GET') {
76     var self = this;
77
78     this.pollTimeout = setTimeout(function () {
79       self.packet({ type: 'noop' });
80       self.log.debug(self.name + ' closed due to exceeded duration');
81     }, this.manager.get('polling duration') * 1000);
82
83     this.log.debug('setting poll timeout');
84   }
85 };
86
87 /**
88  * Clears polling timeout
89  *
90  * @api private
91  */
92
93 HTTPPolling.prototype.clearPollTimeout = function () {
94   if (this.pollTimeout) {
95     clearTimeout(this.pollTimeout);
96     this.pollTimeout = null;
97     this.log.debug('clearing poll timeout');
98   }
99
100   return this;
101 };
102
103 /**
104  * Override clear timeouts to clear the poll timeout
105  *
106  * @api private
107  */
108
109 HTTPPolling.prototype.clearTimeouts = function () {
110   HTTPTransport.prototype.clearTimeouts.call(this);
111
112   this.clearPollTimeout();
113 };
114
115 /**
116  * doWrite to clear poll timeout
117  *
118  * @api private
119  */
120
121 HTTPPolling.prototype.doWrite = function () {
122   this.clearPollTimeout();
123 };
124
125 /**
126  * Performs a write.
127  *
128  * @api private.
129  */
130
131 HTTPPolling.prototype.write = function (data, close) {
132   this.doWrite(data);
133   this.response.end();
134   this.onClose();
135 };
136
137 /**
138  * Override end.
139  *
140  * @api private
141  */
142
143 HTTPPolling.prototype.end = function (reason) {
144   this.clearPollTimeout();
145   return HTTPTransport.prototype.end.call(this, reason);
146 };
147