Porting and compiling SmartLightsController
[iot2.git] / benchmarks / SmartLightsController / CameraCallback_CallbackSkeleton.java
1 package SmartLightsController;
2
3 import java.io.IOException;
4 import java.util.List;
5 import java.util.ArrayList;
6 import java.util.Arrays;
7 import iotrmi.Java.IoTRMICall;
8 import iotrmi.Java.IoTRMIObject;
9
10 import iotcode.interfaces.*;
11
12 public class CameraCallback_CallbackSkeleton implements CameraCallback {
13
14         private CameraCallback mainObj;
15         private int objectId = 0;
16         private String callbackAddress;
17         private static int objIdCnt = 0;
18         private IoTRMICall rmiCall;
19         private int[] ports;
20
21         
22
23         public CameraCallback_CallbackSkeleton(CameraCallback _mainObj, String _callbackAddress, int _objectId) throws Exception {
24                 callbackAddress = _callbackAddress;
25                 mainObj = _mainObj;
26                 objectId = _objectId;
27         }
28
29         public void newCameraFrameAvailable(CameraSmart _camera) {
30                 mainObj.newCameraFrameAvailable(_camera);
31         }
32
33         public void ___regCB(IoTRMIObject rmiObj) throws IOException {
34                 Object[] paramObj = rmiObj.getMethodParams(new Class<?>[] { int[].class, String.class, int.class },new Class<?>[] { null, null, null });
35                 ports = (int[]) paramObj[0];
36                 rmiCall = new IoTRMICall((int) paramObj[0], (String) paramObj[1], ports[1]);
37         }
38
39         public void ___newCameraFrameAvailable(IoTRMIObject rmiObj) {
40                 Object[] paramObj = rmiObj.getMethodParams(new Class<?>[] { int.class }, 
41                 new Class<?>[] { null });
42                 try {
43                         CameraSmart stub0 = new CameraSmart_CallbackStub(rmiCall, callbackAddress, objIdCnt, ports);
44                         objIdCnt++;
45                         newCameraFrameAvailable(stub0);
46                 } catch(Exception ex) {
47                         ex.printStackTrace();
48                         throw new Error("Exception from callback object instantiation!");
49                 }
50         }
51
52         public void invokeMethod(IoTRMIObject rmiObj) throws IOException {
53                 int methodId = rmiObj.getMethodId();
54                 switch (methodId) {
55                         case 0: ___newCameraFrameAvailable(rmiObj); break;
56                         case -9999: ___regCB(rmiObj); break;
57                         default: 
58                         throw new Error("Method Id " + methodId + " not recognized!");
59                 }
60         }
61
62 }