X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.db.impl%2Fsrc%2Forg%2Fsimantics%2Fdb%2Fimpl%2FBlockingAsyncProcedure.java;fp=bundles%2Forg.simantics.db.impl%2Fsrc%2Forg%2Fsimantics%2Fdb%2Fimpl%2FBlockingAsyncProcedure.java;h=8f96bb9e6d3a51a48c7b98baa40f962fc83f5617;hp=ecb66ff91e3ea5df7aea462e57e5d578608ee970;hb=472f4b2af82d02fb46f9a929fb6c8090bb4c5301;hpb=a88c02c2d0f4250caf887a130b9f4314c6564722 diff --git a/bundles/org.simantics.db.impl/src/org/simantics/db/impl/BlockingAsyncProcedure.java b/bundles/org.simantics.db.impl/src/org/simantics/db/impl/BlockingAsyncProcedure.java index ecb66ff91..8f96bb9e6 100644 --- a/bundles/org.simantics.db.impl/src/org/simantics/db/impl/BlockingAsyncProcedure.java +++ b/bundles/org.simantics.db.impl/src/org/simantics/db/impl/BlockingAsyncProcedure.java @@ -18,19 +18,19 @@ import org.simantics.db.impl.graph.ReadGraphImpl; import org.simantics.db.impl.query.AsyncReadEntry; import org.simantics.db.impl.query.PendingTaskSupport; import org.simantics.db.procedure.AsyncProcedure; - +import org.simantics.db.request.AsyncRead; public class BlockingAsyncProcedure implements AsyncProcedure { private static final Object NO_RESULT = new Object(); - public final Object key; - public final ReadGraphImpl queryGraph; - public final ReadGraphImpl callerGraph; - public final AsyncProcedure procedure; - public PendingTaskSupport pendingTaskSupport; - public final boolean needsToBlock; - public Object result = NO_RESULT; - public Throwable exception = null; + private final Object key; + private final ReadGraphImpl queryGraph; + private final ReadGraphImpl callerGraph; + private final AsyncProcedure procedure; + private PendingTaskSupport pendingTaskSupport; + private final boolean needsToBlock; + private Object result = NO_RESULT; + private Throwable exception = null; private ReadGraphImpl queryGraph() { return queryGraph; @@ -147,5 +147,33 @@ public class BlockingAsyncProcedure implements AsyncProcedure { } } + + public void print() { + System.err.println("BlockingAsyncProcedure"); + System.err.println("-key: " + key); + System.err.println("-queryGraph: " + queryGraph); + System.err.println("-callerGraph: " + callerGraph); + System.err.println("-procedure: " + procedure); + System.err.println("-pendingTaskSupport: " + pendingTaskSupport); + System.err.println("-result: " + result); + System.err.println("-exception: " + exception); + } + + public Result performSync(AsyncRead request) throws DatabaseException { + try { + request.perform(queryGraph, this); + } finally { + dec(); + } + return get(); + } + + public void performAsync(AsyncRead request) throws DatabaseException { + try { + request.perform(queryGraph, this); + } finally { + dec(); + } + } }