1 package org
.argeo
.slc
.detached
.drivers
;
3 import org
.argeo
.slc
.detached
.DetachedAnswer
;
4 import org
.argeo
.slc
.detached
.DetachedDriver
;
5 import org
.argeo
.slc
.detached
.DetachedExecutionServer
;
6 import org
.argeo
.slc
.detached
.DetachedRequest
;
7 import org
.argeo
.slc
.detached
.DetachedXmlConverter
;
9 public abstract class AbstractDriver
implements DetachedDriver
{
10 private boolean active
= true;
11 private DetachedExecutionServer executionServer
= null;
12 private long receiveAnswerTimeout
= 10000l;
14 private DetachedXmlConverter xmlConverter
= null;
16 public synchronized void start() {
18 Thread driverThread
= new Thread(new Runnable() {
23 DetachedRequest request
= receiveRequest();
26 DetachedAnswer answer
= executionServer
27 .executeRequest(request
);
29 } catch (Exception e
) {
30 if (e
instanceof RuntimeException
)
31 throw (RuntimeException
) e
;
38 }, "driverThread ("+getClass()+")");
43 public void setExecutionServer(DetachedExecutionServer executionServer
) {
44 this.executionServer
= executionServer
;
47 public synchronized void stop() {
52 public synchronized boolean isActive() {
56 public synchronized void setActive(boolean active
) {
60 public DetachedXmlConverter
getXmlConverter() {
64 public void setXmlConverter(DetachedXmlConverter xmlConverter
) {
65 this.xmlConverter
= xmlConverter
;
68 public long getReceiveAnswerTimeout() {
69 return receiveAnswerTimeout
;
72 public void setReceiveAnswerTimeout(long reveiveTimeout
) {
73 this.receiveAnswerTimeout
= reveiveTimeout
;