X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=iotjava%2Fiotrmi%2FJava%2Fsample%2FTestClass_Skeleton.java;h=822e0644c318090528f08697baf85a3b6f9a2198;hb=8e565033fd19c4696f67862ade27f0ebbacf5682;hp=c16b1241a32ba7e03644bcbdbdbd2eacb0e579a5;hpb=85fe913ad1c6f10b89ad73476315ed8e2453e080;p=iot2.git diff --git a/iotjava/iotrmi/Java/sample/TestClass_Skeleton.java b/iotjava/iotrmi/Java/sample/TestClass_Skeleton.java index c16b124..822e064 100644 --- a/iotjava/iotrmi/Java/sample/TestClass_Skeleton.java +++ b/iotjava/iotrmi/Java/sample/TestClass_Skeleton.java @@ -2,9 +2,8 @@ package iotrmi.Java.sample; import java.io.IOException; import java.util.Arrays; -import java.util.Set; -import java.util.Map; -import java.util.HashMap; + +import java.util.List; import iotrmi.Java.IoTRMIObject; import iotrmi.Java.IoTRMICall; @@ -14,14 +13,20 @@ public class TestClass_Skeleton implements TestClassInterface { /** * Class Constants */ - private int objectId = 0; // Default value is 0 - private static int objIdCnt = 0; // Counter for callback object Ids private TestClassInterface tc; private int port; private IoTRMIObject rmiObj; + + // Callback stuff + private static int objIdCnt = 0; // Counter for callback object Ids private IoTRMICall rmiCall; private CallBackInterface cbstub; + // Object permission + private int object0Id = 0; + private static Integer[] object0Permission = { 0, 1, 2, 3, 4, 5 }; + private List set0Allowed; + /** * Constructors @@ -33,6 +38,7 @@ public class TestClass_Skeleton implements TestClassInterface { tc = _tc; port = _port; rmiObj = new IoTRMIObject(_port); + set0Allowed = Arrays.asList(object0Permission); ___waitRequestInvokeMethod(); } @@ -290,30 +296,39 @@ public class TestClass_Skeleton implements TestClassInterface { rmiObj.getMethodBytes(); int _objectId = rmiObj.getObjectId(); - if (_objectId == objectId) { + int methodId = rmiObj.getMethodId(); + if (_objectId == object0Id) { // Multiplex based on object Id - int methodId = rmiObj.getMethodId(); - switch (methodId) { - - case 0: ___setA(); break; - case 1: ___setB(); break; - case 2: ___setC(); break; - case 3: ___sumArray(); break; - case 4: ___setAndGetA(); break; - case 5: ___setACAndGetA(); break; - case 6: ___callBack(); break; - case 7: ___registerCallback(); break; - case 8: ____registerCallback(); break; - // Special option to register callback - case 9: ___regCB(); break; - // Struct handling (3 is the size of the struct) - case 10: ___handleStruct(structSize1); break; - case 11: structSize1 = ___structSize(); break; - case 12: ___handleEnum(); break; - default: - throw new Error("Method Id not recognized!"); - } + // Complain if the method is not allowed + if (!set0Allowed.contains(methodId)) + throw new Error("TestClass_Skeleton: This object is not allowed to access method " + methodId); + // If we have more than 1 object Id... + //else if (_objectId == object1Id) { + + } else + throw new Error("TestClass_Skeleton: Unrecognizable object Id: " + _objectId); + + switch (methodId) { + + case 0: ___setA(); break; + case 1: ___setB(); break; + case 2: ___setC(); break; + case 3: ___sumArray(); break; + case 4: ___setAndGetA(); break; + case 5: ___setACAndGetA(); break; + case 6: ___callBack(); break; + case 7: ___registerCallback(); break; + case 8: ____registerCallback(); break; + // Special option to register callback + case 9: ___regCB(); break; + // Struct handling (3 is the size of the struct) + case 10: ___handleStruct(structSize1); break; + case 11: structSize1 = ___structSize(); break; + case 12: ___handleEnum(); break; + default: + throw new Error("Method Id " + methodId + " not recognized!"); } + } }