2
0
mirror of https://github.com/esiur/esiur-js.git synced 2025-05-06 12:32:58 +00:00
This commit is contained in:
Ahmed Zamil 2019-12-02 03:25:54 +03:00
parent 7d2bcc60f7
commit fb6276d6e5
15 changed files with 153 additions and 123 deletions

View File

@ -1,4 +1,4 @@
# Esiur.JS
Esiur Library for Javascript
# Esyur.JS
Esyur Library for Javascript
# Usage

View File

@ -1,5 +1,5 @@
exports.printMsg = function() {
console.log("Esiur 1.1");
console.log("Esyur 1.1");
}
module.exports = { wh };

1
src/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
node_modules/

View File

@ -36,7 +36,7 @@ export default class AsyncException extends Error
raise(type, code, message)
{
this.type = (type == 0 ? "Management" : "Execusion");
this.type = type;
this.code = code;
if (type == 0)
@ -56,6 +56,6 @@ export default class AsyncException extends Error
toString()
{
return this.type + " (" + this.code + ") : " + this.message;
return (this.type == 0 ? "Management" : "Exception") + " (" + this.code + ") : " + this.message;
}
}

View File

@ -30,12 +30,20 @@ import AsyncException from './AsyncException.js';
export default class AsyncReply extends Promise
{
then(callback)
then(callback, onError)
{
if (callback != undefined)
{
this.callbacks.push(callback);
if (this.ready)
callback(this.result, this);
}
if (onError != undefined)
{
this.error(onError);
}
return this;
}
@ -46,11 +54,6 @@ export default class AsyncReply extends Promise
this.then(callback);
}
// Alias for error()
catch(callback)
{
return this.error(callback);
}
error(callback)
{

View File

@ -200,7 +200,7 @@ export default class Codec {
}
static parseResource(data, offset) {
return Warehouse.get(data.getUint32(offset));
return Warehouse.getById(data.getUint32(offset));
}
static parseDistributedResource(data, offset, connection) {
@ -210,7 +210,7 @@ export default class Codec {
// find the object
var iid = data.getUint32(offset);
return connection.fetch(iid);// Warehouse.Get(iid);
return connection.fetch(iid);// Warehouse.getById(iid);
}
/// <summary>
@ -241,7 +241,7 @@ export default class Codec {
previous = new AsyncReply(null);
else if (result == ResourceComparisonResult.Local)
{
previous = Warehouse.get(data.getUint32(offset));
previous = Warehouse.getById(data.getUint32(offset));
offset += 4;
}
else if (result == ResourceComparisonResult.Distributed)
@ -269,7 +269,7 @@ export default class Codec {
}
else if (result == ResourceComparisonResult.Local)
{
current = Warehouse.get(data.getUint32(offset));
current = Warehouse.getById(data.getUint32(offset));
offset += 4;
}
else if (result == ResourceComparisonResult.Distributed)
@ -766,7 +766,7 @@ static isLocalResource(resource, connection) {
static getDataType(value) {
static getDataType(value, connection) {
switch (typeof value) {
case "number":
// float or ?

View File

@ -68,7 +68,15 @@ import { ResourceTrigger } from '../../Resource/IResource.js';
export default class DistributedConnection extends IStore {
send(data) {
if (this.holdSending)
{
//console.log("hold ", data.length);
this.sendBuffer.writeAll(data);
}
else
//console.log("Send", data.length);
this.socket.send(data.buffer);
}
@ -516,6 +524,25 @@ export default class DistributedConnection extends IStore {
}
}
hold()
{
this.holdSending = true;
}
unhold()
{
if (this.holdSending)
{
var msg = this.sendBuffer.read();
if (msg == null || msg.length == 0)
return;
this.socket.send(msg);
this.holdSending = false;
}
}
trigger(trigger)
{
if (trigger == ResourceTrigger.Open)
@ -576,9 +603,10 @@ export default class DistributedConnection extends IStore {
self.lastAction = new Date();
self.hold();
while (this.networkBuffer.available > 0 && !this.networkBuffer.protected)
self.receive(this.networkBuffer);
self.unhold();
};
@ -873,7 +901,7 @@ export default class DistributedConnection extends IStore {
var self = this;
Warehouse.get(resourceId).then(function (r) {
Warehouse.getById(resourceId).then(function (r) {
if (r != null) {
if (r.instance.applicable(self.session, ActionType.Attach, null) == Ruling.Denied)
@ -916,7 +944,7 @@ export default class DistributedConnection extends IStore {
IIPRequestReattachResource(callback, resourceId, resourceAge) {
var self = this;
Warehouse.get(resourceId).then(function (r) {
Warehouse.getById(resourceId).then(function (r) {
if (res != null) {
r.instance.on("ResourceEventOccurred", self.instance_eventOccurred, self);
r.instance.on("ResourceModified", self.instance_propertyModified, self);
@ -937,7 +965,7 @@ export default class DistributedConnection extends IStore {
IIPRequestDetachResource(callback, resourceId) {
var self = this;
Warehouse.get(resourceId).then(function (r) {
Warehouse.getById(resourceId).then(function (r) {
if (r != null) {
r.instance.off("ResourceEventOccurred", self.instance_eventOccurred);
r.instance.off("ResourceModified", self.instance_propertyModified);
@ -955,7 +983,7 @@ export default class DistributedConnection extends IStore {
IIPRequestCreateResource(callback, storeId, parentId, content) {
var self = this;
Warehouse.get(storeId).then(function(store)
Warehouse.getById(storeId).then(function(store)
{
if (store == null)
{
@ -976,7 +1004,7 @@ export default class DistributedConnection extends IStore {
return;
}
Warehouse.get(parentId).then(function(parent)
Warehouse.getById(parentId).then(function(parent)
{
// check security
@ -1039,7 +1067,7 @@ export default class DistributedConnection extends IStore {
IIPRequestDeleteResource(callback, resourceId) {
var self = this;
Warehouse.get(resourceId).then(function(r)
Warehouse.getById(resourceId).then(function(r)
{
if (r == null)
{
@ -1096,7 +1124,7 @@ export default class DistributedConnection extends IStore {
var self = this;
Warehouse.get(resourceId).then(function (r) {
Warehouse.getById(resourceId).then(function (r) {
if (r != null)
self.sendReply(IIPPacketAction.TemplateFromResourceId, callback)
.addUint32(r.instance.template.content.length)
@ -1113,7 +1141,7 @@ export default class DistributedConnection extends IStore {
var self = this;
Warehouse.get(resourceId).then(function (r) {
Warehouse.getById(resourceId).then(function (r) {
if (r != null) {
Codec.parseVarArray(content, 0, content.length, self).then(function (args) {
var ft = r.instance.template.getFunctionTemplateByIndex(index);
@ -1194,7 +1222,7 @@ export default class DistributedConnection extends IStore {
var self = this;
Warehouse.get(resourceId).then(function (r) {
Warehouse.getById(resourceId).then(function (r) {
if (r != null) {
Codec.parseStructure(content, 0, content.Length, self).then(function (namedArgs) {
var ft = r.instance.template.getFunctionTemplateByIndex(index);
@ -1282,7 +1310,7 @@ export default class DistributedConnection extends IStore {
var self = this;
Warehouse.get(resourceId).then(function (r) {
Warehouse.getById(resourceId).then(function (r) {
if (r != null) {
var pt = r.instance.template.getFunctionTemplateByIndex(index);
if (pt != null) {
@ -1312,7 +1340,7 @@ export default class DistributedConnection extends IStore {
var self = this;
Warehouse.get(resourceId).then(function (r) {
Warehouse.getById(resourceId).then(function (r) {
if (r != null) {
var pt = r.instance.template.getFunctionTemplateByIndex(index);
if (pt != null) {
@ -1343,7 +1371,7 @@ export default class DistributedConnection extends IStore {
var self = this;
Warehouse.get(resourceId).then(function (r) {
Warehouse.getById(resourceId).then(function (r) {
if (r != null) {
@ -1399,7 +1427,7 @@ export default class DistributedConnection extends IStore {
IIPRequestInquireResourceHistory(callback, resourceId, fromDate, toDate)
{
var self = this;
Warehouse.get(resourceId).then(function(r)
Warehouse.getById(resourceId).then(function(r)
{
if (r != null)
{
@ -1678,7 +1706,7 @@ export default class DistributedConnection extends IStore {
IIPRequestAddChild(callback, parentId, childId)
{
var self = this;
Warehouse.get(parentId).then(function(parent)
Warehouse.getById(parentId).then(function(parent)
{
if (parent == null)
{
@ -1686,7 +1714,7 @@ export default class DistributedConnection extends IStore {
return;
}
Warehouse.get(childId).then(function(child)
Warehouse.getById(childId).then(function(child)
{
if (child == null)
{
@ -1720,7 +1748,7 @@ export default class DistributedConnection extends IStore {
{
var self = this;
Warehouse.get(parentId).then(function(parent)
Warehouse.getById(parentId).then(function(parent)
{
if (parent == null)
{
@ -1728,7 +1756,7 @@ export default class DistributedConnection extends IStore {
return;
}
Warehouse.get(childId).then(function(child)
Warehouse.getById(childId).then(function(child)
{
if (child == null)
{
@ -1761,7 +1789,7 @@ export default class DistributedConnection extends IStore {
IIPRequestRenameResource(callback, resourceId, name)
{
var self = this;
Warehouse.get(resourceId).then(function(resource)
Warehouse.getById(resourceId).then(function(resource)
{
if (resource == null)
{
@ -1784,7 +1812,7 @@ export default class DistributedConnection extends IStore {
IIPRequestResourceChildren(callback, resourceId)
{
var self = this;
Warehouse.get(resourceId).then(function(resource)
Warehouse.getById(resourceId).then(function(resource)
{
if (resource == null)
{
@ -1803,7 +1831,7 @@ export default class DistributedConnection extends IStore {
{
var self = this;
Warehouse.get(resourceId).then(function(resource)
Warehouse.getById(resourceId).then(function(resource)
{
if (resource == null)
{
@ -1819,7 +1847,7 @@ export default class DistributedConnection extends IStore {
IIPRequestClearAttributes(callback, resourceId, attributes, all = false)
{
Warehouse.get(resourceId).then(function(r)
Warehouse.getById(resourceId).then(function(r)
{
if (r == null)
{
@ -1851,7 +1879,7 @@ export default class DistributedConnection extends IStore {
{
var self = this;
Warehouse.get(resourceId).then(function(r)
Warehouse.getById(resourceId).then(function(r)
{
if (r == null)
{

View File

@ -59,7 +59,8 @@ export default class IIPPacket
{
if (offset + needed > ends)
{
this.dataLengthNeeded = needed - (ends - this.originalOffset);
this.dataLengthNeeded = needed - (ends - offset);
// this.dataLengthNeeded = needed - (ends - this.originalOffset);
return true;
}
else

View File

@ -54,7 +54,7 @@ export default class IResource extends IDestructible
static getTemplate()
{
return {
namespace: "Esiur",
namespace: "Esyur",
properties: [],
functions: [],
events: []

View File

@ -60,17 +60,14 @@ export class WH extends IEventHandler
return res;
}
getById(id)
{
return new AsyncReply(this.resources.item(id));
}
get(id, attributes = null, parent = null, manager = null)
{
if (Number.isInteger(id))
{
//if (Warehouse.resources.contains(id))
return new AsyncReply(this.resources.item(id));
//else
// return null;
}
else
{
var p = id.split('/');
var res = null;
@ -136,7 +133,6 @@ export class WH extends IEventHandler
return new AsyncReply(null);
}
}
remove(resource)

2
src/package-lock.json generated
View File

@ -1,5 +1,5 @@
{
"name": "esiur",
"name": "esyur",
"version": "1.2.2",
"lockfileVersion": 1,
"requires": true,

View File

@ -1,21 +1,21 @@
{
"name": "esiur",
"name": "Esyur",
"version": "1.3.0",
"description": "Distributed Object Framework",
"main": "esiur.js",
"main": "Esyur.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/esiur/esiur-js.git"
"url": "git+https://github.com/esyur/esyur-js.git"
},
"author": "Ahmed Zamil",
"license": "MIT",
"bugs": {
"url": "https://github.com/esiur/esiur-js/issues"
"url": "https://github.com/esyur/esyur-js/issues"
},
"homepage": "https://github.com/esiur/esiur-js#readme",
"homepage": "https://github.com/esyur/esyur-js#readme",
"dependencies": {
"ws": "^6.2.0"
}

View File

@ -10,7 +10,8 @@ class MyStore extends IStore
async function load()
{
window.x = await wh.get("iip://localhost:5001/db/my", {username: "demo", password: "1234"});
// window.x = await wh.get("iip://localhost:5001/db/my", {username: "demo", password: "1234"});
window.x = await wh.get("iip://chat.go.iq:5001/sys/hd", {username: "admin", password: "delta"});
console.log(window.x);
}

View File

@ -55,7 +55,7 @@
<script src="/iui-js/iui.js"></script>
<script src="viewers/Esiur.Stores.MemoryStore.js"></script>
<script src="viewers/Esyur.Stores.MemoryStore.js"></script>
<script src="js/browser.js"></script>
<script src="js/app.js"></script>

View File

@ -1,4 +1,4 @@
class Esiur_Stores_MemoryStore extends IUIWidget
class Esyur_Stores_MemoryStore extends IUIWidget
{
constuctor()
{
@ -6,4 +6,4 @@ class Esiur_Stores_MemoryStore extends IUIWidget
}
}
IUI.module("Esiur.Stores.MemoryStore", Esiur_Stores_MemoryStore);
IUI.module("Esyur.Stores.MemoryStore", Esyur_Stores_MemoryStore);