diff options
Diffstat (limited to 'signaling-server/node_modules/redis/lib/parser/hiredis.js')
-rw-r--r-- | signaling-server/node_modules/redis/lib/parser/hiredis.js | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/signaling-server/node_modules/redis/lib/parser/hiredis.js b/signaling-server/node_modules/redis/lib/parser/hiredis.js new file mode 100644 index 0000000..940bfee --- /dev/null +++ b/signaling-server/node_modules/redis/lib/parser/hiredis.js @@ -0,0 +1,46 @@ +var events = require("events"), + util = require("../util"), + hiredis = require("hiredis"); + +exports.debug_mode = false; +exports.name = "hiredis"; + +function HiredisReplyParser(options) { + this.name = exports.name; + this.options = options || {}; + this.reset(); + events.EventEmitter.call(this); +} + +util.inherits(HiredisReplyParser, events.EventEmitter); + +exports.Parser = HiredisReplyParser; + +HiredisReplyParser.prototype.reset = function () { + this.reader = new hiredis.Reader({ + return_buffers: this.options.return_buffers || false + }); +}; + +HiredisReplyParser.prototype.execute = function (data) { + var reply; + this.reader.feed(data); + while (true) { + try { + reply = this.reader.get(); + } catch (err) { + this.emit("error", err); + break; + } + + if (reply === undefined) { + break; + } + + if (reply && reply.constructor === Error) { + this.emit("reply error", reply); + } else { + this.emit("reply", reply); + } + } +}; |