/** * Callback from InvocationHandler. */ public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { return store.invokeRemoteMethod(this, method, args); }
public void exposeObject(String name, Object obj) throws IOException{ // Create a local object LocalObject localObj = new LocalObject(); localObj.objectName = name; localObj.objectId = objectIdCounter++; localObj.theObject = obj; //localObj.methods = obj.getClass().getMethods(); ArrayList<Method> methodList = new ArrayList<Method>(); for (Method method : obj.getClass().getMethods()){ if (method.getDeclaringClass() == obj.getClass()){ methodList.add(method); } } localObj.methods = methodList.toArray(new Method[methodList.size()]); // Put it in the store localObjects.put(localObj.objectId, localObj); // Inform the others of its existence RemoteObjectDefMessage defMsg = new RemoteObjectDefMessage(); defMsg.objects = new ObjectDef[]{ makeObjectDef(localObj) }; if (client != null) { client.send(defMsg); logger.log(Level.FINE, "Client: Sending {0}", defMsg); } else { server.broadcast(defMsg); logger.log(Level.FINE, "Server: Sending {0}", defMsg); } }
public static void createServer(){ serverApp = new SimpleApplication() { @Override public void simpleInitApp() { } }; serverApp.start(); try { Server server = Network.createServer(5110); server.start(); ObjectStore store = new ObjectStore(server); store.exposeObject("access", new ServerAccessImpl()); } catch (IOException ex) { ex.printStackTrace(); } }
public static void main(String[] args) throws IOException, InterruptedException{ Serializer.registerClass(Savable.class, new SavableSerializer()); createServer(); Client client = Network.connectToServer("localhost", 5110); client.start(); ObjectStore store = new ObjectStore(client); ServerAccess access = store.getExposedObject("access", ServerAccess.class, true); boolean result = access.attachChild("Models/Oto/Oto.mesh.xml"); System.out.println(result); } }
private void onConnection(HostedConnection conn) { if (localObjects.size() > 0){ // send a object definition message ObjectDef[] defs = new ObjectDef[localObjects.size()]; int i = 0; for (Entry<LocalObject> entry : localObjects){ defs[i] = makeObjectDef(entry.getValue()); i++; } RemoteObjectDefMessage defMsg = new RemoteObjectDefMessage(); defMsg.objects = defs; if (this.client != null){ this.client.send(defMsg); logger.log(Level.FINE, "Client: Sending {0}", defMsg); } else{ conn.send(defMsg); logger.log(Level.FINE, "Server: Sending {0}", defMsg); } } }
/** * Callback from InvocationHandler. */ public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { return store.invokeRemoteMethod(this, method, args); }
public void exposeObject(String name, Object obj) throws IOException{ // Create a local object LocalObject localObj = new LocalObject(); localObj.objectName = name; localObj.objectId = objectIdCounter++; localObj.theObject = obj; //localObj.methods = obj.getClass().getMethods(); ArrayList<Method> methodList = new ArrayList<Method>(); for (Method method : obj.getClass().getMethods()){ if (method.getDeclaringClass() == obj.getClass()){ methodList.add(method); } } localObj.methods = methodList.toArray(new Method[methodList.size()]); // Put it in the store localObjects.put(localObj.objectId, localObj); // Inform the others of its existence RemoteObjectDefMessage defMsg = new RemoteObjectDefMessage(); defMsg.objects = new ObjectDef[]{ makeObjectDef(localObj) }; if (client != null) { client.send(defMsg); logger.log(Level.FINE, "Client: Sending {0}", defMsg); } else { server.broadcast(defMsg); logger.log(Level.FINE, "Server: Sending {0}", defMsg); } }
/** * Callback from InvocationHandler. */ public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { return store.invokeRemoteMethod(this, method, args); }
public void exposeObject(String name, Object obj) throws IOException{ // Create a local object LocalObject localObj = new LocalObject(); localObj.objectName = name; localObj.objectId = objectIdCounter++; localObj.theObject = obj; //localObj.methods = obj.getClass().getMethods(); ArrayList<Method> methodList = new ArrayList<Method>(); for (Method method : obj.getClass().getMethods()){ if (method.getDeclaringClass() == obj.getClass()){ methodList.add(method); } } localObj.methods = methodList.toArray(new Method[methodList.size()]); // Put it in the store localObjects.put(localObj.objectId, localObj); // Inform the others of its existence RemoteObjectDefMessage defMsg = new RemoteObjectDefMessage(); defMsg.objects = new ObjectDef[]{ makeObjectDef(localObj) }; if (client != null) { client.send(defMsg); logger.log(Level.INFO, "Client: Sending {0}", defMsg); } else { server.broadcast(defMsg); logger.log(Level.INFO, "Server: Sending {0}", defMsg); } }
private void onConnection(HostedConnection conn) { if (localObjects.size() > 0){ // send a object definition message ObjectDef[] defs = new ObjectDef[localObjects.size()]; int i = 0; for (Entry<LocalObject> entry : localObjects){ defs[i] = makeObjectDef(entry.getValue()); i++; } RemoteObjectDefMessage defMsg = new RemoteObjectDefMessage(); defMsg.objects = defs; if (this.client != null){ this.client.send(defMsg); logger.log(Level.INFO, "Client: Sending {0}", defMsg); } else{ conn.send(defMsg); logger.log(Level.INFO, "Server: Sending {0}", defMsg); } } }
private void onConnection(HostedConnection conn) { if (localObjects.size() > 0){ // send a object definition message ObjectDef[] defs = new ObjectDef[localObjects.size()]; int i = 0; for (Entry<LocalObject> entry : localObjects){ defs[i] = makeObjectDef(entry.getValue()); i++; } RemoteObjectDefMessage defMsg = new RemoteObjectDefMessage(); defMsg.objects = defs; if (this.client != null){ this.client.send(defMsg); logger.log(Level.FINE, "Client: Sending {0}", defMsg); } else{ conn.send(defMsg); logger.log(Level.FINE, "Server: Sending {0}", defMsg); } } }