oboe.js-demo
Version:
A website for Oboe.js
45 lines (33 loc) • 1.08 kB
JavaScript
var Message = extend(Thing, function Message() {
Thing.apply(this, arguments);
this.events('reset').on(this.done.bind(this));
});
Message.newEvent = 'Message';
Message.prototype.transmittedOver = function(packetHolder){
this.holder = packetHolder;
return this;
};
Message.prototype._withRequestStart = function(firstPacket){
firstPacket.events('move').on(function(){
this.events('requestStartMove').emit.apply(this, arguments);
}.bind(this));
return this; // chaining
};
Message.prototype._withResponseClose = function(lastPacket){
lastPacket.events('move').on(function(){
this.events('responseCloseMove').emit.apply(this, arguments);
}.bind(this));
lastPacket.events('done').on(function(){
this.done();
}.bind(this));
return this; // chaining
};
Message.prototype.includes = function(packet) {
if( packet.startsRequest() ) {
this._withRequestStart(packet);
}
if( packet.closesResponse() ) {
this._withResponseClose(packet);
}
return this; // chaining
};