mirror of
https://github.com/esiur/esiur-js.git
synced 2025-05-06 12:32:58 +00:00
1.7.2
This commit is contained in:
parent
ba4d841aa5
commit
8eb67ae4fb
14
.eslintrc.cjs
Normal file
14
.eslintrc.cjs
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
module.exports = {
|
||||||
|
"env": {
|
||||||
|
"browser": true,
|
||||||
|
"es2021": true,
|
||||||
|
"node": true
|
||||||
|
},
|
||||||
|
"extends": "eslint:recommended",
|
||||||
|
"parserOptions": {
|
||||||
|
"ecmaVersion": 12,
|
||||||
|
"sourceType": "module"
|
||||||
|
},
|
||||||
|
"rules": {
|
||||||
|
}
|
||||||
|
};
|
@ -4,7 +4,7 @@ import { createRequire } from 'module'
|
|||||||
import AsyncReply from "../../src/Core/AsyncReply.js";
|
import AsyncReply from "../../src/Core/AsyncReply.js";
|
||||||
import DistributedServer from "../../src/Net/IIP/DistributedServer.js";
|
import DistributedServer from "../../src/Net/IIP/DistributedServer.js";
|
||||||
import IMembership from "../../src/Security/Membership/IMembership.js";
|
import IMembership from "../../src/Security/Membership/IMembership.js";
|
||||||
import WSSocket from "../../src/Net/Sockets/WSSocket.js";
|
import WSocket from "../../src/Net/Sockets/WSocket.js";
|
||||||
import MemoryStore from "../../src/Stores/MemoryStore.js";
|
import MemoryStore from "../../src/Stores/MemoryStore.js";
|
||||||
import DC from "../../src/Data/DataConverter.js";
|
import DC from "../../src/Data/DataConverter.js";
|
||||||
import IResource from "../../src/Resource/IResource.js";
|
import IResource from "../../src/Resource/IResource.js";
|
||||||
@ -72,7 +72,7 @@ server = await Warehouse.new(DistributedServer, "dss", sys, null, null, {members
|
|||||||
wss.on('connection', function connection(ws)
|
wss.on('connection', function connection(ws)
|
||||||
{
|
{
|
||||||
let con = server.add();
|
let con = server.add();
|
||||||
con.assign(new WSSocket(ws));
|
con.assign(new WSocket(ws));
|
||||||
con.on("ready", (x)=>{
|
con.on("ready", (x)=>{
|
||||||
chat._emit("login", x.session.remoteAuthentication.username);
|
chat._emit("login", x.session.remoteAuthentication.username);
|
||||||
}).on("close", (x)=>{
|
}).on("close", (x)=>{
|
||||||
|
@ -4,7 +4,7 @@ import { createRequire } from 'module'
|
|||||||
import AsyncReply from "../../src/Core/AsyncReply.js";
|
import AsyncReply from "../../src/Core/AsyncReply.js";
|
||||||
import DistributedServer from "../../src/Net/IIP/DistributedServer.js";
|
import DistributedServer from "../../src/Net/IIP/DistributedServer.js";
|
||||||
import IMembership from "../../src/Security/Membership/IMembership.js";
|
import IMembership from "../../src/Security/Membership/IMembership.js";
|
||||||
import WSSocket from "../../src/Net/Sockets/WSSocket.js";
|
import WSocket from "../../src/Net/Sockets/WSocket.js";
|
||||||
import MemoryStore from "../../src/Stores/MemoryStore.js";
|
import MemoryStore from "../../src/Stores/MemoryStore.js";
|
||||||
import DC from "../../src/Data/DataConverter.js";
|
import DC from "../../src/Data/DataConverter.js";
|
||||||
import IResource from "../../src/Resource/IResource.js";
|
import IResource from "../../src/Resource/IResource.js";
|
||||||
|
792
package-lock.json
generated
792
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "esiur",
|
"name": "esiur",
|
||||||
"version": "1.7.1",
|
"version": "1.7.2",
|
||||||
"description": "Distributed Object Framework",
|
"description": "Distributed Object Framework",
|
||||||
"main": "esiur.js",
|
"main": "esiur.js",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
@ -27,6 +27,7 @@
|
|||||||
"@babel/core": "^7.14.6",
|
"@babel/core": "^7.14.6",
|
||||||
"@babel/preset-env": "^7.14.5",
|
"@babel/preset-env": "^7.14.5",
|
||||||
"babelify": "^10.0.0",
|
"babelify": "^10.0.0",
|
||||||
"browserify": "^17.0.0"
|
"browserify": "^17.0.0",
|
||||||
|
"eslint": "^7.31.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -42,6 +42,12 @@ import IResource from '../Resource/IResource.js';
|
|||||||
import RecordComparisonResult from './RecordComparisonResult.js';
|
import RecordComparisonResult from './RecordComparisonResult.js';
|
||||||
import IRecord from './IRecord.js';
|
import IRecord from './IRecord.js';
|
||||||
import Record from './Record.js';
|
import Record from './Record.js';
|
||||||
|
import ResourceArrayType from './ResourceArrayType.js';
|
||||||
|
import Warehouse from '../Resource/Warehouse.js';
|
||||||
|
import TemplateType from '../Resource/Template/TemplateType.js';
|
||||||
|
import NotModified from './NotModified.js';
|
||||||
|
import KeyList from './KeyList.js';
|
||||||
|
import StructureArray from './StructureArray.js';
|
||||||
|
|
||||||
export default class Codec {
|
export default class Codec {
|
||||||
|
|
||||||
@ -49,7 +55,7 @@ export default class Codec {
|
|||||||
|
|
||||||
var size;
|
var size;
|
||||||
|
|
||||||
var reply = new AsyncReply();
|
//var reply = new AsyncReply();
|
||||||
|
|
||||||
var isArray;
|
var isArray;
|
||||||
var t;
|
var t;
|
||||||
@ -205,8 +211,8 @@ export default class Codec {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @TODO: Throw exception
|
||||||
return null;
|
return new AsyncReply(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
static parseResource(data, offset) {
|
static parseResource(data, offset) {
|
||||||
@ -243,7 +249,30 @@ export default class Codec {
|
|||||||
var end = offset + length;
|
var end = offset + length;
|
||||||
|
|
||||||
//
|
//
|
||||||
var result = data[offset++];
|
//var result = data[offset++];
|
||||||
|
|
||||||
|
|
||||||
|
var type = data[offset] & 0xF0;
|
||||||
|
var result = data[offset++] & 0xF;
|
||||||
|
|
||||||
|
|
||||||
|
if (type == ResourceArrayType.Wrapper)
|
||||||
|
{
|
||||||
|
let classId = data.getGuid(offset);
|
||||||
|
offset += 16;
|
||||||
|
let tmp = Warehouse.getTemplateByClassId(classId, TemplateType.Resource);
|
||||||
|
// not mine, look if the type is elsewhere
|
||||||
|
if (tmp == null)
|
||||||
|
Warehouse.getTemplateByClassId(classId, TemplateType.Wrapper);
|
||||||
|
reply.arrayType = tmp?.definedType;
|
||||||
|
}
|
||||||
|
else if (type == ResourceArrayType.Static)
|
||||||
|
{
|
||||||
|
let classId = data.getGuid(offset);
|
||||||
|
offset += 16;
|
||||||
|
let tmp = Warehouse.getTemplateByClassId(classId, TemplateType.Wrapper);
|
||||||
|
reply.arrayType = tmp?.definedType;
|
||||||
|
}
|
||||||
|
|
||||||
var previous = null;
|
var previous = null;
|
||||||
|
|
||||||
@ -490,7 +519,7 @@ export default class Codec {
|
|||||||
while (contentLength > 0) {
|
while (contentLength > 0) {
|
||||||
typelist.push(data[offset]);
|
typelist.push(data[offset]);
|
||||||
|
|
||||||
var rt = {};
|
let rt = {};
|
||||||
bag.add(Codec.parse(data, offset, rt, connection));
|
bag.add(Codec.parse(data, offset, rt, connection));
|
||||||
contentLength -= rt.size;
|
contentLength -= rt.size;
|
||||||
offset += rt.size;
|
offset += rt.size;
|
||||||
@ -498,14 +527,14 @@ export default class Codec {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
for (var i = 0; i < keys.length; i++) {
|
for (let i = 0; i < keys.length; i++) {
|
||||||
keylist.push(keys[i]);
|
keylist.push(keys[i]);
|
||||||
typelist.push(types[i]);
|
typelist.push(types[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
var i = 0;
|
let i = 0;
|
||||||
while (contentLength > 0) {
|
while (contentLength > 0) {
|
||||||
var rt = {};
|
let rt = {};
|
||||||
bag.add(Codec.parse(data, offset, rt, connection, types[i]));
|
bag.add(Codec.parse(data, offset, rt, connection, types[i]));
|
||||||
contentLength -= rt.size;
|
contentLength -= rt.size;
|
||||||
offset += rt.size;
|
offset += rt.size;
|
||||||
@ -634,18 +663,18 @@ export default class Codec {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static composeStructure(value, connection, includeKeys = true, includeTypes = true, prependLength = false) {
|
static composeStructure(value, connection, includeKeys = true, includeTypes = true, prependLength = false) {
|
||||||
var rt = new BinaryList();
|
let rt = new BinaryList();
|
||||||
|
|
||||||
var keys = value.getKeys();
|
let keys = value.getKeys();
|
||||||
|
|
||||||
if (includeKeys) {
|
if (includeKeys) {
|
||||||
for (var i = 0; i < keys.length; i++) {
|
for (let i = 0; i < keys.length; i++) {
|
||||||
var key = DC.stringToBytes(keys[i]);
|
let key = DC.stringToBytes(keys[i]);
|
||||||
rt.addUint8(key.length).addUint8Array(key).addUint8Array(Codec.compose(value[keys[i]], connection));
|
rt.addUint8(key.length).addUint8Array(key).addUint8Array(Codec.compose(value[keys[i]], connection));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
for (var i = 0; i < keys.length; i++)
|
for (let i = 0; i < keys.length; i++)
|
||||||
rt.addUint8Array(Codec.compose(value[keys[i]], connection, includeTypes));
|
rt.addUint8Array(Codec.compose(value[keys[i]], connection, includeTypes));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -759,7 +788,7 @@ export default class Codec {
|
|||||||
else if (result == RecordComparisonResult.Record
|
else if (result == RecordComparisonResult.Record
|
||||||
|| result == RecordComparisonResult.RecordSameType)
|
|| result == RecordComparisonResult.RecordSameType)
|
||||||
{
|
{
|
||||||
var cs = data.getUint32(offset);
|
let cs = data.getUint32(offset);
|
||||||
offset += 4;
|
offset += 4;
|
||||||
previous = Codec.parseRecord(data, offset, cs, connection, classId);
|
previous = Codec.parseRecord(data, offset, cs, connection, classId);
|
||||||
offset += cs;
|
offset += cs;
|
||||||
@ -774,15 +803,15 @@ export default class Codec {
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var previous = null;
|
let previous = null;
|
||||||
var classId = null;
|
let classId = null;
|
||||||
|
|
||||||
if (result == RecordComparisonResult.Null)
|
if (result == RecordComparisonResult.Null)
|
||||||
previous = new AsyncReply(null);
|
previous = new AsyncReply(null);
|
||||||
else if (result == RecordComparisonResult.Record)
|
else if (result == RecordComparisonResult.Record)
|
||||||
{
|
{
|
||||||
var cs = data.getUint32(offset);
|
let cs = data.getUint32(offset);
|
||||||
var recordLength = cs - 16;
|
let recordLength = cs - 16;
|
||||||
offset += 4;
|
offset += 4;
|
||||||
classId = data.getGuid(offset);
|
classId = data.getGuid(offset);
|
||||||
offset += 16;
|
offset += 16;
|
||||||
@ -802,8 +831,8 @@ export default class Codec {
|
|||||||
previous = new AsyncReply(null);
|
previous = new AsyncReply(null);
|
||||||
else if (result == RecordComparisonResult.Record)
|
else if (result == RecordComparisonResult.Record)
|
||||||
{
|
{
|
||||||
var cs = data.getUint32(offset);
|
let cs = data.getUint32(offset);
|
||||||
var recordLength = cs - 16;
|
let recordLength = cs - 16;
|
||||||
offset += 4;
|
offset += 4;
|
||||||
classId = data.getGuid(offset);
|
classId = data.getGuid(offset);
|
||||||
offset += 16;
|
offset += 16;
|
||||||
@ -812,9 +841,9 @@ export default class Codec {
|
|||||||
}
|
}
|
||||||
else if (result == RecordComparisonResult.RecordSameType)
|
else if (result == RecordComparisonResult.RecordSameType)
|
||||||
{
|
{
|
||||||
var cs = data.getUint32(offset);
|
let cs = data.getUint32(offset);
|
||||||
offset += 4;
|
offset += 4;
|
||||||
previous = ParseRecord(data, offset, cs, connection, classId);
|
previous = this.parseRecord(data, offset, cs, connection, classId);
|
||||||
offset += cs;
|
offset += cs;
|
||||||
}
|
}
|
||||||
else if (result == RecordComparisonResult.Same)
|
else if (result == RecordComparisonResult.Same)
|
||||||
@ -915,17 +944,17 @@ export default class Codec {
|
|||||||
{
|
{
|
||||||
if (template.definedType != null)
|
if (template.definedType != null)
|
||||||
{
|
{
|
||||||
var record = new template.definedType();
|
let record = new template.definedType();
|
||||||
for (var i = 0; i < template.properties.length; i++)
|
for (let i = 0; i < template.properties.length; i++)
|
||||||
record[template.properties[i].name] = ar[i];
|
record[template.properties[i].name] = ar[i];
|
||||||
|
|
||||||
reply.trigger(record);
|
reply.trigger(record);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var record = new Record();
|
let record = new Record();
|
||||||
|
|
||||||
for (var i = 0; i < template.properties.Length; i++)
|
for (let i = 0; i < template.properties.Length; i++)
|
||||||
record[template.properties[i].name] = ar[i];
|
record[template.properties[i].name] = ar[i];
|
||||||
|
|
||||||
reply.trigger(record);
|
reply.trigger(record);
|
||||||
@ -1019,14 +1048,14 @@ export default class Codec {
|
|||||||
var previousKeys = previous.getKeys();
|
var previousKeys = previous.getKeys();
|
||||||
var nextKeys = next.getKeys();
|
var nextKeys = next.getKeys();
|
||||||
|
|
||||||
for (var i = 0; i < previousKeys.length; i++)
|
for (let i = 0; i < previousKeys.length; i++)
|
||||||
if (previousKeys[i] != nextKeys[i])
|
if (previousKeys[i] != nextKeys[i])
|
||||||
return StructureComparisonResult.Structure;
|
return StructureComparisonResult.Structure;
|
||||||
|
|
||||||
var previousTypes = Codec.getStructureDateTypes(previous, connection);
|
var previousTypes = Codec.getStructureDateTypes(previous, connection);
|
||||||
var nextTypes = Codec.getStructureDateTypes(next, connection);
|
var nextTypes = Codec.getStructureDateTypes(next, connection);
|
||||||
|
|
||||||
for (var i = 0; i < previousTypes.length; i++)
|
for (let i = 0; i < previousTypes.length; i++)
|
||||||
if (previousTypes[i] != nextTypes[i])
|
if (previousTypes[i] != nextTypes[i])
|
||||||
return StructureComparisonResult.StructureSameKeys;
|
return StructureComparisonResult.StructureSameKeys;
|
||||||
|
|
||||||
@ -1153,7 +1182,6 @@ static getDataType(value, connection) {
|
|||||||
// float or double
|
// float or double
|
||||||
return DataType.Float64;
|
return DataType.Float64;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
|
|
||||||
case "string":
|
case "string":
|
||||||
return DataType.String;
|
return DataType.String;
|
||||||
@ -1199,8 +1227,6 @@ static getDataType(value, connection) {
|
|||||||
return DataType.Void
|
return DataType.Void
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return DataType.Void;
|
return DataType.Void;
|
||||||
}
|
}
|
||||||
@ -1256,21 +1282,21 @@ static getDataType(value, connection) {
|
|||||||
previous = new AsyncReply(null);
|
previous = new AsyncReply(null);
|
||||||
else if (result == StructureComparisonResult.Structure)
|
else if (result == StructureComparisonResult.Structure)
|
||||||
{
|
{
|
||||||
var cs = data.getUint32(offset);
|
let cs = data.getUint32(offset);
|
||||||
offset += 4;
|
offset += 4;
|
||||||
previous = Codec.parseStructure(data, offset, cs, connection, metadata);
|
previous = Codec.parseStructure(data, offset, cs, connection, metadata);
|
||||||
offset += cs;
|
offset += cs;
|
||||||
}
|
}
|
||||||
else if (result == StructureComparisonResult.StructureSameKeys)
|
else if (result == StructureComparisonResult.StructureSameKeys)
|
||||||
{
|
{
|
||||||
var cs = data.getUint32(offset);
|
let cs = data.getUint32(offset);
|
||||||
offset += 4;
|
offset += 4;
|
||||||
previous = Codec.parseStructure(data, offset, cs, connection, metadata, metadata.keys);
|
previous = Codec.parseStructure(data, offset, cs, connection, metadata, metadata.keys);
|
||||||
offset += cs;
|
offset += cs;
|
||||||
}
|
}
|
||||||
else if (result == StructureComparisonResult.StructureSameTypes)
|
else if (result == StructureComparisonResult.StructureSameTypes)
|
||||||
{
|
{
|
||||||
var cs = data.getUint32(offset);
|
let cs = data.getUint32(offset);
|
||||||
offset += 4;
|
offset += 4;
|
||||||
previous = Codec.parseStructure(data, offset, cs, connection, metadata, metadata.keys, metadata.types);
|
previous = Codec.parseStructure(data, offset, cs, connection, metadata, metadata.keys, metadata.types);
|
||||||
offset += cs;
|
offset += cs;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
export default
|
export default
|
||||||
{
|
{
|
||||||
Dynamic = 0x0,
|
Dynamic: 0x0,
|
||||||
Static = 0x10,
|
Static: 0x10,
|
||||||
Wrapper = 0x20
|
Wrapper: 0x20
|
||||||
};
|
};
|
||||||
|
@ -69,12 +69,13 @@ import { ResourceTrigger } from '../../Resource/IResource.js';
|
|||||||
import Ruling from '../../Security/Permissions/Ruling.js';
|
import Ruling from '../../Security/Permissions/Ruling.js';
|
||||||
import ActionType from '../../Security/Permissions/ActionType.js';
|
import ActionType from '../../Security/Permissions/ActionType.js';
|
||||||
import AsyncException from '../../Core/AsyncException.js';
|
import AsyncException from '../../Core/AsyncException.js';
|
||||||
import WSSocket from '../Sockets/WSSocket.js';
|
import WSocket from '../Sockets/WSocket.js';
|
||||||
|
|
||||||
import ClientAuthentication from "../../Security/Authority/ClientAuthentication.js";
|
import ClientAuthentication from "../../Security/Authority/ClientAuthentication.js";
|
||||||
import HostAuthentication from "../../Security/Authority/HostAuthentication.js";
|
import HostAuthentication from "../../Security/Authority/HostAuthentication.js";
|
||||||
import SocketState from "../Sockets/SocketState.js";
|
import SocketState from "../Sockets/SocketState.js";
|
||||||
import TemplateType from '../../Resource/Template/TemplateType.js';
|
import TemplateType from '../../Resource/Template/TemplateType.js';
|
||||||
|
import AsyncBag from '../../Core/AsyncBag.js';
|
||||||
|
|
||||||
export default class DistributedConnection extends IStore {
|
export default class DistributedConnection extends IStore {
|
||||||
|
|
||||||
@ -1010,7 +1011,7 @@ export default class DistributedConnection extends IStore {
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return this.connect(AuthenticationMethod.None, null, address, port, null, 0, null, domain);
|
return this.connect(AuthenticationMethod.None, null, address, port, null, 0, null, domain, secure);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1043,7 +1044,7 @@ export default class DistributedConnection extends IStore {
|
|||||||
throw new AsyncException(ErrorType.Exception, 0, "Session not initialized");
|
throw new AsyncException(ErrorType.Exception, 0, "Session not initialized");
|
||||||
|
|
||||||
if (socket == null)
|
if (socket == null)
|
||||||
socket = new WSSocket();// TCPSocket();
|
socket = new WSocket();// TCPSocket();
|
||||||
|
|
||||||
if (port > 0)
|
if (port > 0)
|
||||||
this._port = port;
|
this._port = port;
|
||||||
@ -2847,7 +2848,7 @@ export default class DistributedConnection extends IStore {
|
|||||||
.addUint32(resource._p.instanceId)
|
.addUint32(resource._p.instanceId)
|
||||||
.done()
|
.done()
|
||||||
.then(function (d) {
|
.then(function (d) {
|
||||||
Codec.parseResourceArray(d, 0, d.length, this).then(function (resources) {
|
Codec.parseResourceArray(d, 0, d.length, self).then(function (resources) {
|
||||||
rt.trigger(resources);
|
rt.trigger(resources);
|
||||||
}).error(function (ex) { rt.triggerError(ex); });
|
}).error(function (ex) { rt.triggerError(ex); });
|
||||||
});
|
});
|
||||||
@ -2893,7 +2894,7 @@ export default class DistributedConnection extends IStore {
|
|||||||
.addUint32(resource._p.instanceId)
|
.addUint32(resource._p.instanceId)
|
||||||
.addUint8Array(Codec.composeStructure(attributes, this, true, true, true))
|
.addUint8Array(Codec.composeStructure(attributes, this, true, true, true))
|
||||||
.done()
|
.done()
|
||||||
.then(function (ar) {
|
.then(function () {
|
||||||
rt.trigger(true);
|
rt.trigger(true);
|
||||||
}).error(function (ex) { rt.triggerError(ex); });
|
}).error(function (ex) { rt.triggerError(ex); });
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ import ISocket from "./ISocket.js";
|
|||||||
import SocketState from "./SocketState.js";
|
import SocketState from "./SocketState.js";
|
||||||
import NetworkBuffer from "../NetworkBuffer.js";
|
import NetworkBuffer from "../NetworkBuffer.js";
|
||||||
|
|
||||||
export default class WSSocket extends ISocket
|
export default class WSocket extends ISocket
|
||||||
{
|
{
|
||||||
//SocketState State { get; }
|
//SocketState State { get; }
|
||||||
//INetworkReceiver<ISocket> Receiver { get; set; }
|
//INetworkReceiver<ISocket> Receiver { get; set; }
|
||||||
@ -37,7 +37,7 @@ export default class WSSocket extends ISocket
|
|||||||
this.receiveNetworkBuffer = null;
|
this.receiveNetworkBuffer = null;
|
||||||
|
|
||||||
this.receiver = null;
|
this.receiver = null;
|
||||||
thsi.ws = null;
|
this.ws = null;
|
||||||
this._emit("destroy");
|
this._emit("destroy");
|
||||||
}
|
}
|
||||||
|
|
@ -32,6 +32,8 @@ import TemplateDataType from "./TemplateDataType.js";
|
|||||||
import IResource from '../IResource.js';
|
import IResource from '../IResource.js';
|
||||||
import IRecord from '../../Data/IRecord.js';
|
import IRecord from '../../Data/IRecord.js';
|
||||||
import TemplateType from './TemplateType.js'
|
import TemplateType from './TemplateType.js'
|
||||||
|
import Warehouse from '../Warehouse.js';
|
||||||
|
import DistributedConnection from '../../Net/IIP/DistributedConnection.js';
|
||||||
|
|
||||||
export default class TypeTemplate {
|
export default class TypeTemplate {
|
||||||
|
|
||||||
@ -95,13 +97,13 @@ export default class TypeTemplate {
|
|||||||
|
|
||||||
|
|
||||||
static getTypeGuid(type) {
|
static getTypeGuid(type) {
|
||||||
return getTypeGuidByName(type.template.namespace + "." + type.prototype.constructor.name);
|
return this.getTypeGuidByName(type.template.namespace + "." + type.prototype.constructor.name);
|
||||||
}
|
}
|
||||||
|
|
||||||
static getTypeGuidByName(typeName)
|
static getTypeGuidByName(typeName)
|
||||||
{
|
{
|
||||||
return SHA256.compute(DC.stringToBytes(this.className)).getGuid(0);
|
return SHA256.compute(DC.stringToBytes(typeName)).getGuid(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static getDependencies(template)
|
static getDependencies(template)
|
||||||
@ -119,11 +121,11 @@ export default class TypeTemplate {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
// functions
|
// functions
|
||||||
for(var i = 0; i < tmp.functions.length; i++)
|
for(let i = 0; i < tmp.functions.length; i++)
|
||||||
{
|
{
|
||||||
f = tmp.functions[i];
|
let ft = tmp.functions[i];
|
||||||
|
|
||||||
var frtt = Warehouse.getTemplateByType(f.methodInfo.returnType);
|
var frtt = Warehouse.getTemplateByType(ft.methodInfo.returnType);
|
||||||
if (frtt != null)
|
if (frtt != null)
|
||||||
{
|
{
|
||||||
if (!bag.includes(frtt))
|
if (!bag.includes(frtt))
|
||||||
@ -133,11 +135,11 @@ export default class TypeTemplate {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var args = f.methodInfo.parameters;
|
var args = ft.methodInfo.parameters;
|
||||||
|
|
||||||
for(var i = 0; i < args.length - 1; i++)
|
for(let j = 0; j < args.length - 1; j++)
|
||||||
{
|
{
|
||||||
var fpt = Warehouse.getTemplateByType(args[i].parameterType);
|
var fpt = Warehouse.getTemplateByType(args[j].parameterType);
|
||||||
if (fpt != null)
|
if (fpt != null)
|
||||||
{
|
{
|
||||||
if (!bag.includes(fpt))
|
if (!bag.includes(fpt))
|
||||||
@ -154,7 +156,7 @@ export default class TypeTemplate {
|
|||||||
var last = args[args.length - 1];
|
var last = args[args.length - 1];
|
||||||
if (last.parameterType == DistributedConnection)
|
if (last.parameterType == DistributedConnection)
|
||||||
{
|
{
|
||||||
var fpt = Warehouse.getTemplateByType(last.parameterType);
|
let fpt = Warehouse.getTemplateByType(last.parameterType);
|
||||||
if (fpt != null)
|
if (fpt != null)
|
||||||
{
|
{
|
||||||
if (!bag.includes(fpt))
|
if (!bag.includes(fpt))
|
||||||
@ -169,7 +171,7 @@ export default class TypeTemplate {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// properties
|
// properties
|
||||||
for (var i = 0; i < tmp.properties.length; i++)
|
for (let i = 0; i < tmp.properties.length; i++)
|
||||||
{
|
{
|
||||||
var p = tmp.properties[i];
|
var p = tmp.properties[i];
|
||||||
var pt = Warehouse.getTemplateByType(p.propertyInfo.propertyType);
|
var pt = Warehouse.getTemplateByType(p.propertyInfo.propertyType);
|
||||||
@ -184,7 +186,7 @@ export default class TypeTemplate {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// events
|
// events
|
||||||
for(var i = 0; i < tmp.events.length; i++)
|
for(let i = 0; i < tmp.events.length; i++)
|
||||||
{
|
{
|
||||||
var e = tmp.events[i];
|
var e = tmp.events[i];
|
||||||
var et = Warehouse.getTemplateByType(e.eventInfo.eventHandlerType);
|
var et = Warehouse.getTemplateByType(e.eventInfo.eventHandlerType);
|
||||||
@ -204,6 +206,10 @@ export default class TypeTemplate {
|
|||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get type() {
|
||||||
|
return this.templateType;
|
||||||
|
}
|
||||||
|
|
||||||
constructor(type, addToWarehouse) {
|
constructor(type, addToWarehouse) {
|
||||||
|
|
||||||
|
|
||||||
@ -257,7 +263,7 @@ export default class TypeTemplate {
|
|||||||
|
|
||||||
if (template.events != null)
|
if (template.events != null)
|
||||||
{
|
{
|
||||||
for (var i = 0; i < template.events.length; i++) {
|
for (let i = 0; i < template.events.length; i++) {
|
||||||
|
|
||||||
// [name, type, {listenable: true/false, help: ""}]
|
// [name, type, {listenable: true/false, help: ""}]
|
||||||
var ei = template.events[i];
|
var ei = template.events[i];
|
||||||
@ -274,7 +280,7 @@ export default class TypeTemplate {
|
|||||||
|
|
||||||
if (template.functions != null)
|
if (template.functions != null)
|
||||||
{
|
{
|
||||||
for (var i = 0; i < template.functions.length; i++) {
|
for (let i = 0; i < template.functions.length; i++) {
|
||||||
|
|
||||||
var fi = template.functions[i];
|
var fi = template.functions[i];
|
||||||
|
|
||||||
@ -298,13 +304,13 @@ export default class TypeTemplate {
|
|||||||
|
|
||||||
|
|
||||||
// append signals
|
// append signals
|
||||||
for (var i = 0; i < this.events.length; i++)
|
for (let i = 0; i < this.events.length; i++)
|
||||||
this.members.push(this.events[i]);
|
this.members.push(this.events[i]);
|
||||||
// append slots
|
// append slots
|
||||||
for (var i = 0; i < this.functions.length; i++)
|
for (let i = 0; i < this.functions.length; i++)
|
||||||
this.members.push(this.functions[i]);
|
this.members.push(this.functions[i]);
|
||||||
// append properties
|
// append properties
|
||||||
for (var i = 0; i < this.properties.length; i++)
|
for (let i = 0; i < this.properties.length; i++)
|
||||||
this.members.push(this.properties[i]);
|
this.members.push(this.properties[i]);
|
||||||
|
|
||||||
// bake it binarily
|
// bake it binarily
|
||||||
@ -317,13 +323,13 @@ export default class TypeTemplate {
|
|||||||
.addUint32(template.version)
|
.addUint32(template.version)
|
||||||
.addUint16(this.members.length);
|
.addUint16(this.members.length);
|
||||||
|
|
||||||
for (var i = 0; i < this.functions.length; i++)
|
for (let i = 0; i < this.functions.length; i++)
|
||||||
b.addUint8Array(this.functions[i].compose());
|
b.addUint8Array(this.functions[i].compose());
|
||||||
|
|
||||||
for (var i = 0; i < this.properties.length; i++)
|
for (let i = 0; i < this.properties.length; i++)
|
||||||
b.addUint8Array(this.properties[i].compose());
|
b.addUint8Array(this.properties[i].compose());
|
||||||
|
|
||||||
for (var i = 0; i < this.events.length; i++)
|
for (let i = 0; i < this.events.length; i++)
|
||||||
b.addUint8Array(this.events[i].compose());
|
b.addUint8Array(this.events[i].compose());
|
||||||
|
|
||||||
this.content = b.toArray();
|
this.content = b.toArray();
|
||||||
@ -331,7 +337,8 @@ export default class TypeTemplate {
|
|||||||
|
|
||||||
static getFunctionParameters(func)
|
static getFunctionParameters(func)
|
||||||
{
|
{
|
||||||
var STRIP_COMMENTS = /(\/\/.*$)|(\/\*[\s\S]*?\*\/)|(\s*=[^,\)]*(('(?:\\'|[^'\r\n])*')|("(?:\\"|[^"\r\n])*"))|(\s*=[^,\)]*))/mg;
|
var STRIP_COMMENTS = /(\/\/.*$)|(\/\*[\s\S]*?\*\/)|(\s*=[^,)]*(('(?:\\'|[^'\r\n])*')|("(?:\\"|[^"\r\n])*"))|(\s*=[^,)]*))/mg;
|
||||||
|
//var STRIP_COMMENTS = /(\/\/.*$)|(\/\*[\s\S]*?\*\/)|(\s*=[^,\)]*(('(?:\\'|[^'\r\n])*')|("(?:\\"|[^"\r\n])*"))|(\s*=[^,\)]*))/mg;
|
||||||
var ARGUMENT_NAMES = /([^\s,]+)/g;
|
var ARGUMENT_NAMES = /([^\s,]+)/g;
|
||||||
|
|
||||||
var fnStr = func.toString().replace(STRIP_COMMENTS, '');
|
var fnStr = func.toString().replace(STRIP_COMMENTS, '');
|
||||||
@ -354,9 +361,8 @@ export default class TypeTemplate {
|
|||||||
if (contentLength == -1)
|
if (contentLength == -1)
|
||||||
contentLength = data.length;
|
contentLength = data.length;
|
||||||
|
|
||||||
var ends = offset + contentLength;
|
//var ends = offset + contentLength;
|
||||||
|
//var oOffset = offset;
|
||||||
var oOffset = offset;
|
|
||||||
|
|
||||||
// start parsing...
|
// start parsing...
|
||||||
|
|
||||||
@ -385,16 +391,16 @@ export default class TypeTemplate {
|
|||||||
|
|
||||||
if (type == 0) // function
|
if (type == 0) // function
|
||||||
{
|
{
|
||||||
var ft = new FunctionTemplate();
|
let ft = new FunctionTemplate();
|
||||||
ft.index = functionIndex++;
|
ft.index = functionIndex++;
|
||||||
var hasExpansion = ((data.getUint8(offset++) & 0x10) == 0x10);
|
let hasExpansion = ((data.getUint8(offset++) & 0x10) == 0x10);
|
||||||
|
|
||||||
var len = data.getUint8(offset++);
|
let len = data.getUint8(offset++);
|
||||||
ft.name = data.getString(offset, len);
|
ft.name = data.getString(offset, len);
|
||||||
offset += len;
|
offset += len;
|
||||||
|
|
||||||
// return type
|
// return type
|
||||||
var {size, value: returnType} = TemplateDataType.parse(data, offset);
|
let {size, value: returnType} = TemplateDataType.parse(data, offset);
|
||||||
offset += size;
|
offset += size;
|
||||||
|
|
||||||
ft.returnType = returnType;
|
ft.returnType = returnType;
|
||||||
@ -405,9 +411,9 @@ export default class TypeTemplate {
|
|||||||
|
|
||||||
for (var a = 0; a < argsCount; a++)
|
for (var a = 0; a < argsCount; a++)
|
||||||
{
|
{
|
||||||
var {size, value: argType} = ArgumentTemplate.parse(data, offset);
|
let {size: argSize, value: argType} = ArgumentTemplate.parse(data, offset);
|
||||||
args.push(argType);
|
args.push(argType);
|
||||||
offset += size;
|
offset += argSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
ft.arguments = args;
|
ft.arguments = args;
|
||||||
@ -425,17 +431,17 @@ export default class TypeTemplate {
|
|||||||
else if (type == 1) // property
|
else if (type == 1) // property
|
||||||
{
|
{
|
||||||
|
|
||||||
var pt = new PropertyTemplate();
|
let pt = new PropertyTemplate();
|
||||||
pt.index = propertyIndex++;
|
pt.index = propertyIndex++;
|
||||||
var hasReadExpansion = ((data.getUint8(offset) & 0x8) == 0x8);
|
let hasReadExpansion = ((data.getUint8(offset) & 0x8) == 0x8);
|
||||||
var hasWriteExpansion = ((data.getUint8(offset) & 0x10) == 0x10);
|
let hasWriteExpansion = ((data.getUint8(offset) & 0x10) == 0x10);
|
||||||
pt.recordable = ((data.getUint8(offset) & 1) == 1);
|
pt.recordable = ((data.getUint8(offset) & 1) == 1);
|
||||||
pt.permission = ((data.getUint8(offset++) >> 1) & 0x3);
|
pt.permission = ((data.getUint8(offset++) >> 1) & 0x3);
|
||||||
var len = data.getUint8(offset++);
|
let len = data.getUint8(offset++);
|
||||||
pt.name = data.getString(offset, len);
|
pt.name = data.getString(offset, len);
|
||||||
offset += len;
|
offset += len;
|
||||||
|
|
||||||
var {size, value: valueType} = TemplateDataType.parse(data, offset);
|
let {size, value: valueType} = TemplateDataType.parse(data, offset);
|
||||||
|
|
||||||
offset += size;
|
offset += size;
|
||||||
|
|
||||||
@ -443,7 +449,7 @@ export default class TypeTemplate {
|
|||||||
|
|
||||||
if (hasReadExpansion) // expansion ?
|
if (hasReadExpansion) // expansion ?
|
||||||
{
|
{
|
||||||
var cs = data.getUint32(offset);
|
let cs = data.getUint32(offset);
|
||||||
offset += 4;
|
offset += 4;
|
||||||
pt.readExpansion = data.getString(offset, cs);
|
pt.readExpansion = data.getString(offset, cs);
|
||||||
offset += cs;
|
offset += cs;
|
||||||
@ -451,7 +457,7 @@ export default class TypeTemplate {
|
|||||||
|
|
||||||
if (hasWriteExpansion) // expansion ?
|
if (hasWriteExpansion) // expansion ?
|
||||||
{
|
{
|
||||||
var cs = data.getUint32(offset);
|
let cs = data.getUint32(offset);
|
||||||
offset += 4;
|
offset += 4;
|
||||||
pt.writeExpansion = data.getString(offset, cs);
|
pt.writeExpansion = data.getString(offset, cs);
|
||||||
offset += cs;
|
offset += cs;
|
||||||
@ -461,23 +467,23 @@ export default class TypeTemplate {
|
|||||||
}
|
}
|
||||||
else if (type == 2) // Event
|
else if (type == 2) // Event
|
||||||
{
|
{
|
||||||
var et = new EventTemplate();
|
let et = new EventTemplate();
|
||||||
et.index = eventIndex++;
|
et.index = eventIndex++;
|
||||||
var hasExpansion = ((data.getUint8(offset) & 0x10) == 0x10);
|
let hasExpansion = ((data.getUint8(offset) & 0x10) == 0x10);
|
||||||
et.listenable = ((data.getUint8(offset++) & 0x8) == 0x8);
|
et.listenable = ((data.getUint8(offset++) & 0x8) == 0x8);
|
||||||
var len = data.getUint8(offset++);
|
let len = data.getUint8(offset++);
|
||||||
et.name = data.getString(offset, len);
|
et.name = data.getString(offset, len);
|
||||||
|
|
||||||
offset += len;
|
offset += len;
|
||||||
|
|
||||||
var {size, value: argType} = TemplateDataType.parse(data, offset);
|
let {size, value: argType} = TemplateDataType.parse(data, offset);
|
||||||
|
|
||||||
offset += size;
|
offset += size;
|
||||||
et.argumentType = argType;
|
et.argumentType = argType;
|
||||||
|
|
||||||
if (hasExpansion) // expansion ?
|
if (hasExpansion) // expansion ?
|
||||||
{
|
{
|
||||||
var cs = data.getUint32(offset);
|
let cs = data.getUint32(offset);
|
||||||
offset += 4;
|
offset += 4;
|
||||||
et.expansion = data.getString(offset, cs);
|
et.expansion = data.getString(offset, cs);
|
||||||
offset += cs;
|
offset += cs;
|
||||||
@ -489,13 +495,13 @@ export default class TypeTemplate {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// append signals
|
// append signals
|
||||||
for (var i = 0; i < od.events.length; i++)
|
for (let i = 0; i < od.events.length; i++)
|
||||||
od.members.push(od.events[i]);
|
od.members.push(od.events[i]);
|
||||||
// append slots
|
// append slots
|
||||||
for (var i = 0; i < od.functions.length; i++)
|
for (let i = 0; i < od.functions.length; i++)
|
||||||
od.members.push(od.functions[i]);
|
od.members.push(od.functions[i]);
|
||||||
// append properties
|
// append properties
|
||||||
for (var i = 0; i < od.properties.length; i++)
|
for (let i = 0; i < od.properties.length; i++)
|
||||||
od.members.push(od.properties[i]);
|
od.members.push(od.properties[i]);
|
||||||
|
|
||||||
|
|
||||||
|
@ -41,6 +41,7 @@ import ResourceProxy from '../Proxy/ResourceProxy.js';
|
|||||||
import AsyncBag from '../Core/AsyncBag.js';
|
import AsyncBag from '../Core/AsyncBag.js';
|
||||||
import IRecord from '../Data/IRecord.js';
|
import IRecord from '../Data/IRecord.js';
|
||||||
import TemplateType from './Template/TemplateType.js';
|
import TemplateType from './Template/TemplateType.js';
|
||||||
|
import DistributedResource from '../Net/IIP/DistributedResource.js';
|
||||||
|
|
||||||
export class WH extends IEventHandler
|
export class WH extends IEventHandler
|
||||||
{
|
{
|
||||||
@ -62,7 +63,9 @@ export class WH extends IEventHandler
|
|||||||
this._register("connected");
|
this._register("connected");
|
||||||
this._register("disconnected");
|
this._register("disconnected");
|
||||||
///this._urlRegex = /^(?:([\S]*):\/\/([^\/]*)\/?)/;
|
///this._urlRegex = /^(?:([\S]*):\/\/([^\/]*)\/?)/;
|
||||||
this._urlRegex = /^(?:([^\s|:]*):\/\/([^\/]*)\/?)/;
|
// this._urlRegex = /^(?:([^\s|:]*):\/\/([^\/]*)\/?)/;
|
||||||
|
this._urlRegex = /^(?:([^\s|:]*):\/\/([^/]*)\/?)/;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
newInstance(type, properties)
|
newInstance(type, properties)
|
||||||
@ -80,6 +83,9 @@ export class WH extends IEventHandler
|
|||||||
|
|
||||||
var res = new proxyType();
|
var res = new proxyType();
|
||||||
|
|
||||||
|
if (properties != null)
|
||||||
|
Object.assign(res, properties);
|
||||||
|
|
||||||
if (properties != null)
|
if (properties != null)
|
||||||
Object.assign(res, properties);
|
Object.assign(res, properties);
|
||||||
|
|
||||||
@ -88,7 +94,7 @@ export class WH extends IEventHandler
|
|||||||
var rt = new AsyncReply();
|
var rt = new AsyncReply();
|
||||||
|
|
||||||
this.put(name, res, store, parent, null, 0, manager, attributes)
|
this.put(name, res, store, parent, null, 0, manager, attributes)
|
||||||
.then((ok)=>rt.trigger(res))
|
.then(()=>rt.trigger(res))
|
||||||
.error((ex)=>rt.triggerError(ex));
|
.error((ex)=>rt.triggerError(ex));
|
||||||
|
|
||||||
return rt;
|
return rt;
|
||||||
@ -104,10 +110,10 @@ export class WH extends IEventHandler
|
|||||||
return new AsyncReply(this.resources.item(id));
|
return new AsyncReply(this.resources.item(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
get(path, attributes = null, parent = null, manager = null)
|
get(path, attributes = null)//, parent = null, manager = null)
|
||||||
{
|
{
|
||||||
var rt = new AsyncReply();
|
var rt = new AsyncReply();
|
||||||
var self = this;
|
// var self = this;
|
||||||
|
|
||||||
// Should we create a new store ?
|
// Should we create a new store ?
|
||||||
if (path.match(this._urlRegex))
|
if (path.match(this._urlRegex))
|
||||||
@ -134,7 +140,7 @@ export class WH extends IEventHandler
|
|||||||
{
|
{
|
||||||
if (!this.warehouseIsOpen)
|
if (!this.warehouseIsOpen)
|
||||||
{
|
{
|
||||||
this.open().then((ok)=>{
|
this.open().then(()=>{
|
||||||
initResource();
|
initResource();
|
||||||
}).error(ex=>rt.triggerError(ex));
|
}).error(ex=>rt.triggerError(ex));
|
||||||
}
|
}
|
||||||
@ -186,7 +192,7 @@ export class WH extends IEventHandler
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (toBeRemoved != null)
|
if (toBeRemoved != null)
|
||||||
for(var i = 0; i < toBeRemoved.length; i++)
|
for(let i = 0; i < toBeRemoved.length; i++)
|
||||||
this.remove(toBeRemoved[i]);
|
this.remove(toBeRemoved[i]);
|
||||||
|
|
||||||
this._emit("disconnected", resource);
|
this._emit("disconnected", resource);
|
||||||
@ -231,9 +237,9 @@ export class WH extends IEventHandler
|
|||||||
|
|
||||||
if (self.warehouseIsOpen)
|
if (self.warehouseIsOpen)
|
||||||
{
|
{
|
||||||
resource.trigger(ResourceTrigger.Initialize).then(x=>{
|
resource.trigger(ResourceTrigger.Initialize).then(()=>{
|
||||||
if (resource instanceof IStore)
|
if (resource instanceof IStore)
|
||||||
resource.trigger(ResourceTrigger.Open).then(y=>{ rt.trigger(true);
|
resource.trigger(ResourceTrigger.Open).then(()=>{ rt.trigger(true);
|
||||||
self._emit("connected", resource)
|
self._emit("connected", resource)
|
||||||
}).error(ex => {
|
}).error(ex => {
|
||||||
Warehouse.remove(resource);
|
Warehouse.remove(resource);
|
||||||
@ -261,7 +267,7 @@ export class WH extends IEventHandler
|
|||||||
initResource();
|
initResource();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
store.put(resource).then(ok=>{
|
store.put(resource).then(()=>{
|
||||||
initResource();
|
initResource();
|
||||||
}).error(ex=> {
|
}).error(ex=> {
|
||||||
// failed to put
|
// failed to put
|
||||||
@ -347,21 +353,21 @@ export class WH extends IEventHandler
|
|||||||
if (templateType == TemplateType.Unspecified)
|
if (templateType == TemplateType.Unspecified)
|
||||||
{
|
{
|
||||||
// look in resources
|
// look in resources
|
||||||
var template = templates.get(TemplateType.Resource).get(classId);
|
var template = this.templates.get(TemplateType.Resource).get(classId);
|
||||||
if (template != null)
|
if (template != null)
|
||||||
return template;
|
return template;
|
||||||
|
|
||||||
// look in records
|
// look in records
|
||||||
template = templates.get(TemplateType.Record).get(classId);
|
template = this.templates.get(TemplateType.Record).get(classId);
|
||||||
if (template != null)
|
if (template != null)
|
||||||
return template;
|
return template;
|
||||||
|
|
||||||
// look in wrappers
|
// look in wrappers
|
||||||
template = templates.get(TemplateType.Wrapper).get(classId);
|
template = this.templates.get(TemplateType.Wrapper).get(classId);
|
||||||
return template;
|
return template;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return templates.get(templateType).get(classId);
|
return this.templates.get(templateType).get(classId);
|
||||||
}
|
}
|
||||||
|
|
||||||
getTemplateByClassName(className, templateType = TemplateType.Unspecified)
|
getTemplateByClassName(className, templateType = TemplateType.Unspecified)
|
||||||
@ -369,22 +375,22 @@ export class WH extends IEventHandler
|
|||||||
if (templateType == TemplateType.Unspecified)
|
if (templateType == TemplateType.Unspecified)
|
||||||
{
|
{
|
||||||
// look in resources
|
// look in resources
|
||||||
var template = templates[TemplateType.Resource].values.find(x => x.className == className);
|
var template = this.templates.get(TemplateType.Resource).values.find(x => x.className == className);
|
||||||
if (template != null)
|
if (template != null)
|
||||||
return template;
|
return template;
|
||||||
|
|
||||||
// look in records
|
// look in records
|
||||||
template = templates[TemplateType.Record].values.find(x => x.className == className);
|
template = this.templates.get(TemplateType.Record).values.find(x => x.className == className);
|
||||||
if (template != null)
|
if (template != null)
|
||||||
return template;
|
return template;
|
||||||
|
|
||||||
// look in wrappers
|
// look in wrappers
|
||||||
template = templates[TemplateType.Wrapper].values.find(x => x.className == className);
|
template = this.templates.get(TemplateType.Wrapper).values.find(x => x.className == className);
|
||||||
return template;
|
return template;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return templates[templateType].values.find(x => x.className == className);
|
return this.templates.get(templateType).values.find(x => x.className == className);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -395,15 +401,15 @@ export class WH extends IEventHandler
|
|||||||
if (index == path.length - 1)
|
if (index == path.length - 1)
|
||||||
{
|
{
|
||||||
if (path[index] == "")
|
if (path[index] == "")
|
||||||
for(var i = 0; i < resources.length; i++)
|
for(let i = 0; i < resources.length; i++)
|
||||||
rt.push(resources.at(i));
|
rt.push(resources.at(i));
|
||||||
else
|
else
|
||||||
for(var i = 0; i < resources.length; i++)
|
for(let i = 0; i < resources.length; i++)
|
||||||
if (resources.at(i).instance.name == path[index])
|
if (resources.at(i).instance.name == path[index])
|
||||||
rt.push(resources.at(i));
|
rt.push(resources.at(i));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
for(var i = 0; i < resources.length; i++)
|
for(let i = 0; i < resources.length; i++)
|
||||||
if (resources.at(i).instance.name == path[index])
|
if (resources.at(i).instance.name == path[index])
|
||||||
rt = rt.concat(this._qureyIn(path, index+1, resources.at(i).instance.children));
|
rt = rt.concat(this._qureyIn(path, index+1, resources.at(i).instance.children));
|
||||||
|
|
||||||
@ -488,13 +494,13 @@ export class WH extends IEventHandler
|
|||||||
|
|
||||||
initBag.then(ar => {
|
initBag.then(ar => {
|
||||||
|
|
||||||
for(var i = 0; i < ar.length; i++)
|
for(let i = 0; i < ar.length; i++)
|
||||||
if (!ar[i])
|
if (!ar[i])
|
||||||
console.log(`Resource failed at Initialize ${self.resources.at(i).instance.name} [${self.resources.at(i).instance.template.className}]`);
|
console.log(`Resource failed at Initialize ${self.resources.at(i).instance.name} [${self.resources.at(i).instance.template.className}]`);
|
||||||
|
|
||||||
var sysBag = new AsyncBag();
|
var sysBag = new AsyncBag();
|
||||||
|
|
||||||
for (var i = 0; i < this.resources.length; i++)
|
for (let i = 0; i < this.resources.length; i++)
|
||||||
{
|
{
|
||||||
var r = this.resources.at(i);
|
var r = this.resources.at(i);
|
||||||
sysBag.add(r.trigger(ResourceTrigger.SystemInitialized));
|
sysBag.add(r.trigger(ResourceTrigger.SystemInitialized));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user