/** * Erzeugt aus param1 ein byte-Array, legt es in einer Liste in die MessageADT zusammen mit der * Internetadresse des CommunicationModule, dem Methodennamen, dem MessageTyp (Request) und der * rawObjRef und sendet die MessageADT �ber das Kommunikationsmodul an den Host auf dem das Objekt * ist, dass diese Methode implementiert. Wartet anschlie�end auf ein Ergebnis und liefert dieses * zur�ck. */ public int methodOne(double param1) throws SomeException110 { // TODO Auto-generated method stub byte[] p1 = new byte[Double.BYTES]; ByteBuffer.wrap(p1).putDouble(param1); ArrayList<byte[]> arguments = new ArrayList<byte[]>(Arrays.asList(p1)); MessageADT m = new MessageADT( CommunicationModule.getLocalHost(), CommunicationModule.getCommunicationmoduleport(), CommunicationModule.messageIDCounter(), "methodOne", REQUEST, rawObjRef, null, arguments, null); MessageADT received = sendRequest(m); Integer result = null; if (received.getReturnVal() != null) { result = (int) unmarshals(received, UNMARSHAL_TYPE.METHOD_ONE); } else { for (Exception e : received.getExceptionList()) { throw (SomeException110) e; } } return result; }
/** * Erzeugt eine MessageADT mit der Internetadresse des CommunicationModule, dem Methodennamen, dem * MessageTyp (Request) und der rawObjRef und sendet die MessageADT �ber das Kommunikationsmodul * an den Host auf dem das Objekt ist, dass diese Methode implementiert. Wartet anschlie�end auf * ein Ergebnis und liefert dieses zur�ck. */ public double methodTwo() throws SomeException112 { MessageADT m = new MessageADT( CommunicationModule.getLocalHost(), -1, CommunicationModule.messageIDCounter(), "methodTwo", REQUEST, rawObjRef, null, null, null); MessageADT received = sendRequest(m); Double result = null; if (received.getReturnVal() != null) { result = (double) unmarshals(received, UNMARSHAL_TYPE.METHOD_TWO); } else { for (Exception e : received.getExceptionList()) { throw (SomeException112) e; } } return result; }
/** * Entpackt den R�ckgabewert aus der nachricht und liefert ihn zur�ck. * * @param m Die Antwortnachricht. * @return r Das Ergebnis. */ private Object unmarshals(MessageADT m, UNMARSHAL_TYPE type) { if (type == UNMARSHAL_TYPE.METHOD_ONE) { byte[] returnval = m.getReturnVal(); return ByteBuffer.wrap(returnval).getInt(); } else if (type == UNMARSHAL_TYPE.METHOD_TWO) { byte[] returnval = m.getReturnVal(); return ByteBuffer.wrap(returnval).getDouble(); } return null; }