lib/utils/event_sequencer.js
function eventSequencer() {
  var self = object.create(eventSequencer.prototype);
  EventEmitter.call(self);

  self.sequences = {};
  self.received = {};

  self.pipedEmitter = null;

  return self;
}
function eventSequencer() {
  var self = object.create(eventSequencer.prototype);
  EventEmitter.call(self);

  self.sequences = {};
  self.received = {};

  self.pipedEmitter = null;

  return self;
}
function eventSequencer ( ) { var self = object . create ( eventSequencer . prototype ) ; EventEmitter . call ( self ) ; self . sequences = { } ; self . received = { } ; self . pipedEmitter = null ; return self ; }
Controls the sequence of events, accepts events in any sequence and re-emits
them in the right sequence once it gets all the events in the sequence.
If no sequence is defined the event is re-emitted immediatelly.

Useful to abstract transport layer timming issues and garantee a given
event sequence

Assumed that there is a single event of each time on each the sequence
The sequences are assumed to be compatible, that is to say the sequence of
shared events must be the same in every sequence
Controls the sequence of events accepts events in any sequence and re - emits them in the right sequence once it gets all the events in the sequence . If no sequence is defined the event is re - emitted immediatelly .