initial commit
This commit is contained in:
commit
4b60ece582
327 changed files with 28286 additions and 0 deletions
121
libjs/wType/event.js
Normal file
121
libjs/wType/event.js
Normal file
|
@ -0,0 +1,121 @@
|
|||
"use strict";
|
||||
var Object = require("./object");
|
||||
var Uint64 = require("./uint64");
|
||||
var Address = require("./address");
|
||||
var Boolean = require("./boolean");
|
||||
|
||||
var Event = Object.inherit({
|
||||
"className": "Event",
|
||||
"constructor": function(addr, object, isSystem) {
|
||||
Object.fn.constructor.call(this);
|
||||
|
||||
if (!(object instanceof Object) && object !== undefined) {
|
||||
throw new Error("Wrong arguments to construct Event");
|
||||
}
|
||||
if (!(addr instanceof Address) && addr !== undefined) {
|
||||
throw new Error("Wrong arguments to construct Event");
|
||||
}
|
||||
|
||||
this._destination = addr !== undefined ? addr : new Address();
|
||||
this._data = object !== undefined ? object : new Object();
|
||||
this._senderId = new Uint64();
|
||||
this._system = new Boolean(isSystem);
|
||||
},
|
||||
"destructor": function() {
|
||||
this.clear();
|
||||
|
||||
Object.fn.destructor.call(this);
|
||||
},
|
||||
"==": function(other) {
|
||||
if (this.getType() !== other.getType()) {
|
||||
return false;
|
||||
}
|
||||
return this._destination["=="](other._destination) &&
|
||||
this._system["=="](other._system) &&
|
||||
this._senderId["=="](other._senderId) &&
|
||||
this._data["=="](other._data)
|
||||
},
|
||||
"clear": function() {
|
||||
this._system.destructor();
|
||||
this._destination.destructor();
|
||||
this._senderId.destructor();
|
||||
this._data.destructor();
|
||||
},
|
||||
"clone": function() {
|
||||
var clone = new Event();
|
||||
|
||||
clone._destination = this._destination.clone();
|
||||
clone._data = this._data.clone();
|
||||
clone._senderId = this._senderId.clone();
|
||||
clone._system = this._system.clone();
|
||||
|
||||
return clone;
|
||||
},
|
||||
"deserialize": function(ba) {
|
||||
this._system = new Boolean();
|
||||
this._system.deserialize(ba);
|
||||
|
||||
if (!this.isSystem()) {
|
||||
this._destination = new Address();
|
||||
this._destination.deserialize(ba);
|
||||
|
||||
this._senderId = new Uint64();
|
||||
this._senderId.deserialize(ba);
|
||||
}
|
||||
|
||||
this._data = Object.fromByteArray(ba);
|
||||
},
|
||||
"getData": function() {
|
||||
return this._data;
|
||||
},
|
||||
"getDestination": function() {
|
||||
return this._destination;
|
||||
},
|
||||
"getSenderId": function() {
|
||||
return this._senderId;
|
||||
},
|
||||
"isSystem": function() {
|
||||
return this._system.valueOf();
|
||||
},
|
||||
"length": function() {
|
||||
return 2 + this._destination.length() + this._data.length();
|
||||
},
|
||||
"serialize": function(ba) {
|
||||
this._system.serialize(ba);
|
||||
|
||||
if (!this.isSystem()) {
|
||||
this._destination.serialize(ba);
|
||||
this._senderId.serialize(ba);
|
||||
}
|
||||
|
||||
ba.push8(this._data.getType());
|
||||
this._data.serialize(ba);
|
||||
},
|
||||
"setSenderId": function(id) {
|
||||
if (!(id instanceof Uint64)) {
|
||||
throw new Error("Can't set id, which is not Uint64");
|
||||
}
|
||||
this._senderId = id;
|
||||
},
|
||||
"size": function() {
|
||||
var size = this._system.size() + this._data.size() + 1
|
||||
if (!this.isSystem()) {
|
||||
size += this._senderId.size() + this._destination.size();
|
||||
}
|
||||
return size;
|
||||
},
|
||||
"toString": function() {
|
||||
var str = "{";
|
||||
|
||||
str += "system: " + this._system.toString();
|
||||
str += " destination: " + this._destination.toString();
|
||||
str += " sender: " + this._senderId.toString();
|
||||
str += " data: " + this._data.toString();
|
||||
|
||||
str += "}";
|
||||
|
||||
return str;
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = Event;
|
Loading…
Add table
Add a link
Reference in a new issue