From 7661fd7b5f83738208f612b5c29ef5013567d197 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Sat, 10 Apr 2010 10:35:44 +0000 Subject: [PATCH] Introduce memory driver git-svn-id: https://svn.argeo.org/slc/trunk@3446 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../slc/detached/drivers/MemoryDriver.java | 32 ++++++++++++------- 1 file changed, 20 insertions(+), 12 deletions(-) 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 ffae5efda..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 @@ -5,27 +5,35 @@ import org.argeo.slc.detached.DetachedClient; import org.argeo.slc.detached.DetachedRequest; public class MemoryDriver extends AbstractDriver implements DetachedClient { + 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(); } } -- 2.39.5