queue.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. // Generated by IcedCoffeeScript 1.7.1-c
  2. (function() {
  3. var Queue, iced, __iced_k, __iced_k_noop;
  4. iced = require('iced-runtime').iced;
  5. __iced_k = __iced_k_noop = function() {};
  6. exports.Queue = Queue = (function() {
  7. function Queue() {
  8. this._buffers = [];
  9. this._n = 0;
  10. this._eof = false;
  11. }
  12. Queue.prototype.set_eof = function() {
  13. return this._eof = true;
  14. };
  15. Queue.prototype.push = function(b) {
  16. var c;
  17. this._buffers.push(b);
  18. this._n += b.length;
  19. if ((c = this._cb) != null) {
  20. this._cb = null;
  21. return c();
  22. }
  23. };
  24. Queue.prototype.flush = function() {
  25. var ret;
  26. ret = Buffer.concat(this._buffers);
  27. this._buffers = [];
  28. this._n = 0;
  29. return ret;
  30. };
  31. Queue.prototype.pop_bytes = function(n) {
  32. var b, l, m, n_needed, ret;
  33. ret = [];
  34. m = 0;
  35. while ((n_needed = n - m) > 0 && this._buffers.length) {
  36. b = this._buffers[0];
  37. l = b.length;
  38. if (l > n_needed) {
  39. l = n_needed;
  40. b = this._buffers[0].slice(0, l);
  41. this._buffers[0] = this._buffers[0].slice(l);
  42. } else {
  43. this._buffers.shift();
  44. }
  45. m += l;
  46. this._n -= l;
  47. ret.push(b);
  48. }
  49. return Buffer.concat(ret);
  50. };
  51. Queue.prototype.read = function(n, cb) {
  52. var b, ___iced_passed_deferral, __iced_deferrals, __iced_k;
  53. __iced_k = __iced_k_noop;
  54. ___iced_passed_deferral = iced.findDeferral(arguments);
  55. (function(_this) {
  56. return (function(__iced_k) {
  57. var _results, _while;
  58. _results = [];
  59. _while = function(__iced_k) {
  60. var _break, _continue, _next;
  61. _break = function() {
  62. return __iced_k(_results);
  63. };
  64. _continue = function() {
  65. return iced.trampoline(function() {
  66. return _while(__iced_k);
  67. });
  68. };
  69. _next = function(__iced_next_arg) {
  70. _results.push(__iced_next_arg);
  71. return _continue();
  72. };
  73. if (!(_this._n < n && !_this._eof)) {
  74. return _break();
  75. } else {
  76. (function(__iced_k) {
  77. __iced_deferrals = new iced.Deferrals(__iced_k, {
  78. parent: ___iced_passed_deferral,
  79. filename: "/Users/max/src/keybase/node-client/src/queue.iced",
  80. funcname: "Queue.read"
  81. });
  82. _this._cb = __iced_deferrals.defer({
  83. lineno: 63
  84. });
  85. __iced_deferrals._fulfill();
  86. })(_next);
  87. }
  88. };
  89. _while(__iced_k);
  90. });
  91. })(this)((function(_this) {
  92. return function() {
  93. b = _this.pop_bytes(n);
  94. return cb(b);
  95. };
  96. })(this));
  97. };
  98. return Queue;
  99. })();
  100. }).call(this);