1 package iotrmi.Java.sample;
3 import java.io.IOException;
4 import iotrmi.Java.IoTRMICall;
5 import iotruntime.master.CommunicationHandler;
7 import java.util.Arrays;
9 public class TestClass_Stub implements TestClassInterface {
14 private IoTRMICall rmiCall;
15 private String address;
21 private final static int NUM_CB_OBJ = 1;
23 private String[] methodSignatures = {
30 "intsetACAndGetA(string,int)",
32 "voidregisterCallBack(CallBackInterface)"
38 public TestClass_Stub(int _port, String _address, int _rev, int[] _ports) throws IOException {
42 rmiCall = new IoTRMICall(_port, _address, _rev, methodSignatures);
47 * Instantiation of callback objects
49 public static int numCallbackObjects() {
51 return NUM_CB_OBJ; // Generated by the IoTCompiler
55 public void registerCallback(CallBackInterface _cb) {
57 //int port = 5011; // Send this info to the other end to start the stub
58 //String address = "localhost";
60 Thread thread = new Thread() {
63 CallBack_Skeleton cbskel = new CallBack_Skeleton(_cb, ports[0]);
64 cbskel.waitRequestInvokeMethod();
65 } catch (Exception ex){
67 throw new Error("Error instantiating class CallBack_Skeleton!");
73 String sign = "voidregisterCallBack(CallBackInterface)";
74 Class<?> retType = void.class;
75 // port, address, and rev
76 Class<?>[] paramCls = new Class<?>[] { int.class, String.class, int.class };
77 Object[] paramObj = new Object[] { ports[0], address, 0 };
78 rmiCall.remoteCall(sign, retType, null, null, paramCls, paramObj);
82 public void setA(int _int) {
84 String sign = "voidsetA(int)";
85 Class<?> retType = void.class;
86 Class<?>[] paramCls = new Class<?>[] { int.class };
87 Object[] paramObj = new Object[] { _int };
88 rmiCall.remoteCall(sign, retType, null, null, paramCls, paramObj);
92 public void setB(float _float) {
94 String sign = "voidsetB(float)";
95 Class<?> retType = void.class;
96 Class<?>[] paramCls = new Class<?>[] { float.class };
97 Object[] paramObj = new Object[] { _float };
98 rmiCall.remoteCall(sign, retType, null, null, paramCls, paramObj);
102 public void setC(String _string) {
104 String sign = "voidsetC(string)";
105 Class<?> retType = void.class;
106 Class<?>[] paramCls = new Class<?>[] { String.class };
107 Object[] paramObj = new Object[] { _string };
108 rmiCall.remoteCall(sign, retType, null, null, paramCls, paramObj);
113 public String sumArray(String[] newA) {
115 String sign = "sumArray(string[])";
116 Class<?> retType = String.class;
117 Class<?>[] paramCls = new Class<?>[] { String[].class };
118 Object[] paramObj = new Object[] { newA };
119 Object retObj = rmiCall.remoteCall(sign, retType, null, null, paramCls, paramObj);
120 return (String)retObj;
124 public int setAndGetA(int newA) {
125 String sign = "intsetAndGetA(int)";
126 Class<?> retType = int.class;
127 Class<?>[] paramCls = new Class<?>[] { int.class };
128 Object[] paramObj = new Object[] { newA };
129 Object retObj = rmiCall.remoteCall(sign, retType, null, null, paramCls, paramObj);
134 public int setACAndGetA(String newC, int newA) {
136 String sign = "intsetACAndGetA(string,int)";
137 Class<?> retType = int.class;
138 Class<?>[] paramCls = new Class<?>[] { String.class, int.class };
139 Object[] paramObj = new Object[] { newC, newA };
140 Object retObj = rmiCall.remoteCall(sign, retType, null, null, paramCls, paramObj);
145 public int callBack() {
147 String sign = "intcallBack()";
148 Class<?> retType = int.class;
149 Class<?>[] paramCls = new Class<?>[] { };
150 Object[] paramObj = new Object[] { };
151 Object retObj = rmiCall.remoteCall(sign, retType, null, null, paramCls, paramObj);
157 public static void main(String[] args) throws Exception {
159 CommunicationHandler comHan = new CommunicationHandler(true);
160 int numOfPorts = TestClass_Stub.numCallbackObjects();
161 int[] ports = comHan.getCallbackPorts(numOfPorts);
163 System.out.println("Allocated ports: " + Arrays.toString(ports));
166 String address = "localhost";
169 TestClass_Stub tcstub = new TestClass_Stub(port, address, rev, ports);
170 System.out.println("Return value: " + tcstub.setAndGetA(123));
171 System.out.println("Return value: " + tcstub.setACAndGetA("string", 123));
172 System.out.println("Return value: " + tcstub.sumArray(new String[] { "123", "456", "987" }));
174 /*CallBack cb = new CallBack(23);
175 tcstub.registerCallback(cb);
176 System.out.println("Return value from callback: " + tcstub.callBack());*/
177 //System.out.println("Return value: " + tcstub.setAndGetA(1234));