]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.db.impl/src/org/simantics/db/impl/query/MultiReadEntry.java
Working towards multiple readers.
[simantics/platform.git] / bundles / org.simantics.db.impl / src / org / simantics / db / impl / query / MultiReadEntry.java
index f2fff24cfc7ac213de3890331806509d68808575..5bc318de1b26fd27dd7cb567ef3ce2c6f3e68c4f 100644 (file)
@@ -14,16 +14,16 @@ package org.simantics.db.impl.query;
 import java.util.ArrayList;
 
 import org.simantics.db.AsyncReadGraph;
+import org.simantics.db.ReadGraph;
 import org.simantics.db.common.exception.DebugException;
 import org.simantics.db.exception.DatabaseException;
 import org.simantics.db.impl.graph.ReadGraphImpl;
-import org.simantics.db.impl.query.QueryProcessor.AsyncBarrier;
 import org.simantics.db.procedure.AsyncMultiProcedure;
+import org.simantics.db.procedure.SyncMultiProcedure;
 import org.simantics.db.request.MultiRead;
 import org.simantics.db.request.RequestFlags;
-import org.simantics.utils.datastructures.Pair;
 
-final public class MultiReadEntry<T> extends CacheEntryBase<AsyncMultiProcedure<T>> {
+final public class MultiReadEntry<T> extends CacheEntryBase<SyncMultiProcedure<T>> {
 
     protected MultiRead<T> request;
     
@@ -48,13 +48,11 @@ final public class MultiReadEntry<T> extends CacheEntryBase<AsyncMultiProcedure<
        setResult(null);
     }
     
-    synchronized public void finish(AsyncReadGraph graph) {
+    synchronized public void finish(ReadGraph graph) {
        
        assert(isPending());
 
-        ArrayList<Pair<AsyncMultiProcedure<T>, AsyncBarrier>> p = null;
-
-        synchronized(this) {
+       synchronized(this) {
                setReady();
         }
         
@@ -84,19 +82,19 @@ final public class MultiReadEntry<T> extends CacheEntryBase<AsyncMultiProcedure<
                                
                                try {
 
-                                   request.perform(graph , new AsyncMultiProcedure<T>() {
+                                   request.perform(graph , new SyncMultiProcedure<T>() {
 
                         @Override
-                        public void execute(AsyncReadGraph graph, T result) {
+                        public void execute(ReadGraph graph, T result) {
                             addOrSet(result);
                         }
                         
-                        public void finished(AsyncReadGraph graph) {
+                        public void finished(ReadGraph graph) {
                                finish(graph);
                         };
                                        
                                        @Override
-                                       public void exception(AsyncReadGraph graph, Throwable t) {
+                                       public void exception(ReadGraph graph, Throwable t) {
                             except(t);
                            }
 
@@ -165,7 +163,7 @@ final public class MultiReadEntry<T> extends CacheEntryBase<AsyncMultiProcedure<
     }
     
        @Override
-       public Object performFromCache(ReadGraphImpl graph, AsyncMultiProcedure<T> proc) {
+       public Object performFromCache(ReadGraphImpl graph, SyncMultiProcedure<T> proc) {
                
         if(isExcepted()) {
             
@@ -205,7 +203,7 @@ final public class MultiReadEntry<T> extends CacheEntryBase<AsyncMultiProcedure<
        }
 
        //@Override
-       public Object compute(ReadGraphImpl graph, AsyncMultiProcedure<T> procedure) throws DatabaseException {
+       public Object compute(ReadGraphImpl graph, SyncMultiProcedure<T> procedure) throws DatabaseException {
        return graph.processor.cache.performQuery(graph, request, this, procedure);
        }