1 package SmartLightsController;
3 import java.io.IOException;
5 import java.util.ArrayList;
6 import java.util.Arrays;
7 import iotrmi.Java.IoTRMICall;
8 import iotrmi.Java.IoTRMIObject;
10 import iotcode.interfaces.*;
12 public class CameraSmartCallback_CallbackStub implements CameraSmartCallback {
14 private IoTRMICall rmiCall;
15 private String callbackAddress;
18 private int objectId = 0;
19 // Callback properties
20 private IoTRMIObject rmiObj;
21 List<Camera> listCallbackObj;
22 private static int objIdCnt = 0;
23 private final static int object0Id = 0; //CameraSmart
24 private static Integer[] object0Permission = { 8, 7, 9, 6, 2, 1, 4, 3, 0, 10, 5 };
25 private static List<Integer> set0Allowed;
28 public CameraSmartCallback_CallbackStub(IoTRMICall _rmiCall, String _callbackAddress, int _objectId, int[] _ports) throws Exception {
29 callbackAddress = _callbackAddress;
33 set0Allowed = new ArrayList<Integer>(Arrays.asList(object0Permission));
34 listCallbackObj = new ArrayList<Camera>();
38 public void newCameraFrameAvailable(Camera _camera) {
40 Camera_CallbackSkeleton skel0 = new Camera_CallbackSkeleton(_camera, callbackAddress, objIdCnt++);
41 listCallbackObj.add(skel0);
42 } catch (Exception ex) {
44 throw new Error("Exception when generating skeleton objects!");
48 Class<?> retType = void.class;
49 Class<?>[] paramCls = new Class<?>[] { int.class };
50 Object[] paramObj = new Object[] { new Integer(1) };
51 rmiCall.remoteCall(objectId, methodId, retType, null, paramCls, paramObj);
54 public void ___initCallBack() {
55 Thread thread = new Thread() {
58 rmiObj = new IoTRMIObject(ports[1]);
60 byte[] method = rmiObj.getMethodBytes();
61 int methodId = IoTRMIObject.getMethodId(method);
62 if (!set0Allowed.contains(methodId)) {
63 throw new Error("Callback object for Camera is not allowed to access method: " + methodId);
65 int objId = IoTRMIObject.getObjectId(method);
66 Camera_CallbackSkeleton skel = (Camera_CallbackSkeleton) listCallbackObj.get(objId);
68 skel.invokeMethod(rmiObj);
70 throw new Error("Camera: Object with Id " + objId + " not found!");
73 } catch (Exception ex) {
75 throw new Error("Error instantiating class Camera_CallbackSkeleton!");
82 Class<?> retType = void.class;
83 Class<?>[] paramCls = new Class<?>[] { int[].class, String.class, int.class };
84 Object[] paramObj = new Object[] { ports, callbackAddress, 0 };
85 rmiCall.remoteCall(objectId, methodId, retType, null, paramCls, paramObj);