First version of skeleton-stub communication using queue and 2 sockets (one send...
[iot2.git] / iotjava / iotrmi / Java / IoTRMIObject.java
index dfbe9c6b348484a6dcc5bc16430571bf05c60e04..7ac2c3e36a7a766b20e054d261df533743728c87 100644 (file)
@@ -311,11 +311,16 @@ public class IoTRMIObject {
        /**
         * sendReturnObj() overloaded to send multiple return objects for structs
         */
-       public void sendReturnObj(Class<?>[] retCls, Object[] retObj) throws IOException {
+       public void sendReturnObj(Class<?>[] retCls, Object[] retObj, byte[] methodBytes) throws IOException {
 
                // Send back return value
                byte[] retObjBytes = returnToBytes(retCls, retObj);
-               rmiServer.sendBytes(retObjBytes);
+               // Send return value together with OBJECT_ID and METHOD_ID for arbitration
+               byte[] retAllBytes = new byte[IoTRMIUtil.OBJECT_ID_LEN + IoTRMIUtil.METHOD_ID_LEN + retObjBytes.length];
+               // Copy OBJECT_ID and METHOD_ID
+               System.arraycopy(methodBytes, 0, retAllBytes, 0, IoTRMIUtil.OBJECT_ID_LEN + IoTRMIUtil.METHOD_ID_LEN);
+               // Copy array of bytes (return object)
+               rmiServer.sendBytes(retAllBytes);
        }