First commit
This commit is contained in:
101
framework/server/objectManager.js
Normal file
101
framework/server/objectManager.js
Normal file
@@ -0,0 +1,101 @@
|
||||
/*
|
||||
|
||||
Copyright (c) 2020, 2023, The Unified Company.
|
||||
|
||||
This code is part of Unify.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the ESA Software Community License - Strong Copyleft LICENSE,
|
||||
as published by the ESA.
|
||||
See the ESA Software Community License - Strong Copyleft LICENSE, for more details.
|
||||
|
||||
https://unifyjs.org
|
||||
|
||||
*/
|
||||
|
||||
import unify from '../unify/unify.js';
|
||||
|
||||
import tools from '../unify/tools.js';
|
||||
|
||||
import Console from './console.js';
|
||||
|
||||
import cacheManager from "./objectCacheManager.js";
|
||||
|
||||
|
||||
export default class objectManager{
|
||||
|
||||
clientObjects = new Array(); // clientObjects[ className ] [ id ] --> [ clientObjects ]
|
||||
|
||||
cacheManager = new cacheManager();
|
||||
|
||||
registerObject( object, socketClient ) {
|
||||
|
||||
this.registerChildren( object, socketClient );
|
||||
|
||||
}
|
||||
|
||||
removeObjectsByClientID( userID ) {
|
||||
|
||||
this.cacheManager.removeObjectsByClientID( userID );
|
||||
|
||||
// todo : delete object when client disconnects
|
||||
|
||||
}
|
||||
|
||||
registerChildren( object, socketClient ) {
|
||||
|
||||
var clientObject = new Object();
|
||||
|
||||
clientObject.socketClient = socketClient;
|
||||
|
||||
clientObject.object = object;
|
||||
|
||||
this.cacheManager.addClientObject( clientObject, socketClient.userID );
|
||||
|
||||
if( object.getChildren ) {
|
||||
|
||||
var children = object.getChildren();
|
||||
|
||||
for( var c = 0; c< children.length;c++ ) {
|
||||
|
||||
var child = children[c];
|
||||
|
||||
this.registerChildren( child, socketClient );
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
updateClient( object, clientA, eventName ) {
|
||||
|
||||
var clientObjects = this.cacheManager.getClientObjects( object.getApplicationPathString(), object.id );
|
||||
|
||||
if( clientObjects ) {
|
||||
|
||||
for( var c = 0; c < clientObjects.length; c++ ) {
|
||||
|
||||
var clientObject = clientObjects[c];
|
||||
|
||||
if( clientObject ) {
|
||||
|
||||
var clientB = clientObject.socketClient;
|
||||
|
||||
if( clientB.userID != clientA.userID || object.getClassName() == "collection" ) {
|
||||
|
||||
clientB.updateMessage( 10, object, eventName ); //registeredObject.object
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user