]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.db.procore/src/org/simantics/db/procore/cluster/ClusterBig.java
Merge "Multiple reader thread support for db client"
[simantics/platform.git] / bundles / org.simantics.db.procore / src / org / simantics / db / procore / cluster / ClusterBig.java
index 0520ec3e67a709b746b208c507e60a320d790dcb..4cedb79470d93a18abadb846296f04dd40041cc3 100644 (file)
@@ -13,6 +13,7 @@ package org.simantics.db.procore.cluster;
 
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
+import java.util.function.Consumer;
 
 import org.simantics.db.Resource;
 import org.simantics.db.exception.DatabaseException;
@@ -30,10 +31,9 @@ import org.simantics.db.impl.Table;
 import org.simantics.db.impl.TableHeader;
 import org.simantics.db.impl.graph.ReadGraphImpl;
 import org.simantics.db.impl.query.QueryProcessor;
-import org.simantics.db.procedure.AsyncContextMultiProcedure;
-import org.simantics.db.procedure.AsyncMultiProcedure;
+import org.simantics.db.procedure.SyncContextMultiProcedure;
+import org.simantics.db.procedure.SyncMultiProcedure;
 import org.simantics.db.service.ClusterUID;
-import org.simantics.utils.datastructures.Callback;
 
 import fi.vtt.simantics.procore.DebugPolicy;
 import fi.vtt.simantics.procore.internal.ClusterChange;
@@ -98,7 +98,7 @@ final public class ClusterBig extends ClusterImpl {
         this.clusterMap = new ClusterMap(foreignTable, flatTable);
         this.clusterSupport = support;
         this.clusterBits = ClusterTraitsBase.getClusterBits(clusterKey);
-        this.importance = clusterTable.timeCounter();
+        this.importance = -clusterTable.timeCounter();
         clusterTable.markImmutable(this, getImmutable());
     }
     void analyse() {
@@ -250,7 +250,7 @@ final public class ClusterBig extends ClusterImpl {
         return objectTable.getSingleObject(objectIndex, support, this);
     }
 
-    public void forObjects(int resourceKey, int predicateKey, int objectIndex, QueryProcessor processor, ReadGraphImpl graph, AsyncMultiProcedure<Resource> procedure,
+    public void forObjects(int resourceKey, int predicateKey, int objectIndex, QueryProcessor processor, ReadGraphImpl graph, SyncMultiProcedure<Resource> procedure,
             ClusterSupport support) throws DatabaseException {
         if (DEBUG)
             System.out.println("Cluster.forObjects1: rk=" + resourceKey + " pk=" + predicateKey);
@@ -263,7 +263,7 @@ final public class ClusterBig extends ClusterImpl {
         }
         objectTable.foreachObject(graph, objectIndex, procedure, this);
     }
-    public <C> void forObjects(int resourceKey, int predicateKey, int objectIndex, QueryProcessor processor, ReadGraphImpl graph, C context, AsyncContextMultiProcedure<C, Resource> procedure,
+    public <C> void forObjects(int resourceKey, int predicateKey, int objectIndex, QueryProcessor processor, ReadGraphImpl graph, C context, SyncContextMultiProcedure<C, Resource> procedure,
             ClusterSupport support) throws DatabaseException {
         if (DEBUG)
             System.out.println("Cluster.forObjects1: rk=" + resourceKey + " pk=" + predicateKey);
@@ -342,7 +342,7 @@ final public class ClusterBig extends ClusterImpl {
 
     @Override
     public void forObjects(ReadGraphImpl graph, int resourceKey,
-            int predicateKey, AsyncMultiProcedure<Resource> procedure)
+            int predicateKey, SyncMultiProcedure<Resource> procedure)
             throws DatabaseException {
 
         SessionImplSocket session = (SessionImplSocket)graph.getSession();
@@ -812,7 +812,7 @@ final public class ClusterBig extends ClusterImpl {
     }
 
     @Override
-    public void load(Callback<DatabaseException> r) {
+    public void load(Consumer<DatabaseException> r) {
         throw new Error("Not supported.");
     }