hiredis.js 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. var events = require("events"),
  2. util = require("../util"),
  3. hiredis = require("hiredis");
  4. exports.debug_mode = false;
  5. exports.name = "hiredis";
  6. function HiredisReplyParser(options) {
  7. this.name = exports.name;
  8. this.options = options || {};
  9. this.reset();
  10. events.EventEmitter.call(this);
  11. }
  12. util.inherits(HiredisReplyParser, events.EventEmitter);
  13. exports.Parser = HiredisReplyParser;
  14. HiredisReplyParser.prototype.reset = function () {
  15. this.reader = new hiredis.Reader({
  16. return_buffers: this.options.return_buffers || false
  17. });
  18. };
  19. HiredisReplyParser.prototype.execute = function (data) {
  20. var reply;
  21. this.reader.feed(data);
  22. while (true) {
  23. try {
  24. reply = this.reader.get();
  25. } catch (err) {
  26. this.emit("error", err);
  27. break;
  28. }
  29. if (reply === undefined) {
  30. break;
  31. }
  32. if (reply && reply.constructor === Error) {
  33. this.emit("reply error", reply);
  34. } else {
  35. this.emit("reply", reply);
  36. }
  37. }
  38. };