X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.detached%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fdetached%2Fdrivers%2FMemoryDriver.java;h=3d252d6e5d9362731168afcc311241482c4d1ccb;hb=91defd68bfb8d5b253469fd54e627b861d71d031;hp=f8c03ae35b28489ab897723a43ab496a23f1f192;hpb=cb6c9116f75a6941f6f968bf2757260ae8a5dbda;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.detached/src/main/java/org/argeo/slc/detached/drivers/MemoryDriver.java b/runtime/org.argeo.slc.detached/src/main/java/org/argeo/slc/detached/drivers/MemoryDriver.java index f8c03ae35..3d252d6e5 100644 --- a/runtime/org.argeo.slc.detached/src/main/java/org/argeo/slc/detached/drivers/MemoryDriver.java +++ b/runtime/org.argeo.slc.detached/src/main/java/org/argeo/slc/detached/drivers/MemoryDriver.java @@ -1,34 +1,39 @@ package org.argeo.slc.detached.drivers; -import java.util.Stack; - import org.argeo.slc.detached.DetachedAnswer; import org.argeo.slc.detached.DetachedClient; import org.argeo.slc.detached.DetachedRequest; public class MemoryDriver extends AbstractDriver implements DetachedClient { - private final static Stack stack = new Stack(); + private DetachedRequest currentRequest = null; + private DetachedAnswer currentAnswer = null; // DRIVER - public DetachedRequest receiveRequest() throws Exception { - // TODO Auto-generated method stub - return null; + public synchronized DetachedRequest receiveRequest() throws Exception { + while (currentRequest == null) + this.wait(500); + return currentRequest; } - public void sendAnswer(DetachedAnswer answer) throws Exception { - // TODO Auto-generated method stub - + public synchronized void sendAnswer(DetachedAnswer answer) throws Exception { + currentAnswer = answer; + this.notify(); } // CLIENT - public DetachedAnswer receiveAnswer() throws Exception { - // TODO Auto-generated method stub - return null; + public synchronized DetachedAnswer receiveAnswer() throws Exception { + while (currentAnswer == null) + this.wait(500); + DetachedAnswer answer = currentAnswer; + currentAnswer = null; + currentRequest = null; + return answer; } - public void sendRequest(DetachedRequest request) throws Exception { - // TODO Auto-generated method stub - + public synchronized void sendRequest(DetachedRequest request) + throws Exception { + currentRequest = request; + this.notify(); } }