X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=tests%2Forg.simantics.db.tests%2Fsrc%2Forg%2Fsimantics%2Fdb%2Ftests%2Fperformance%2Fread%2FHierarchicalNames.java;h=088f15667d6044d344985c66afe24b3a356f1bba;hp=18d6ce537940607764bf3b291b2606d323feb64a;hb=0d9b90834ce56b292c00b1a39850ed842c3e4d42;hpb=e5db6157fd8722c946613d4e46d7aaf6bfa92609 diff --git a/tests/org.simantics.db.tests/src/org/simantics/db/tests/performance/read/HierarchicalNames.java b/tests/org.simantics.db.tests/src/org/simantics/db/tests/performance/read/HierarchicalNames.java index 18d6ce537..088f15667 100644 --- a/tests/org.simantics.db.tests/src/org/simantics/db/tests/performance/read/HierarchicalNames.java +++ b/tests/org.simantics.db.tests/src/org/simantics/db/tests/performance/read/HierarchicalNames.java @@ -21,6 +21,7 @@ import org.simantics.db.Session; import org.simantics.db.VirtualGraph; import org.simantics.db.WriteGraph; import org.simantics.db.WriteOnlyGraph; +import org.simantics.db.common.request.AsyncReadRequest; import org.simantics.db.common.request.ReadRequest; import org.simantics.db.common.request.WriteOnlyResultRequest; import org.simantics.db.common.request.WriteResultRequest; @@ -28,6 +29,9 @@ import org.simantics.db.exception.AssumptionException; import org.simantics.db.exception.DatabaseException; import org.simantics.db.procedure.AsyncMultiProcedure; import org.simantics.db.procedure.AsyncProcedure; +import org.simantics.db.procedure.SyncContextProcedure; +import org.simantics.db.procedure.SyncMultiProcedure; +import org.simantics.db.procedure.SyncProcedure; import org.simantics.db.request.AsyncRead; import org.simantics.db.request.Read; import org.simantics.db.service.ClusterBuilder; @@ -688,7 +692,7 @@ public class HierarchicalNames { } } - public static Read readAsync(final Resource resource) { + public static AsyncRead readAsync(final Resource resource) { if(VALIDATE) { for(int i=0;i<244*64*64;i++) criteria.add("name"); @@ -697,46 +701,46 @@ public class HierarchicalNames { class Process { - final AsyncMultiProcedure structure; - final AsyncProcedure names; + final SyncMultiProcedure structure; + final SyncProcedure names; - Process(ReadGraph graph, Resource resource) { + Process(ReadGraph graph, Resource resource) throws DatabaseException { final Layer0 L0 = Layer0.getInstance(graph); final DirectQuerySupport dqs = graph.getService(DirectQuerySupport.class); final QueryControl control = graph.getService(QueryControl.class); - names = dqs.compilePossibleRelatedValue(graph, L0.HasName, new AsyncProcedure() { + names = dqs.compilePossibleRelatedValue(graph, L0.HasName, new SyncProcedure() { @Override - public void execute(AsyncReadGraph graph, String name) { + public void execute(ReadGraph graph, String name) { if(VALIDATE) validation.add(name); // System.err.println("af=" + name); } @Override - public void exception(AsyncReadGraph graph, Throwable throwable) { + public void exception(ReadGraph graph, Throwable throwable) { throwable.printStackTrace(); } }); - structure = dqs.compileForEachObject(graph, L0.ConsistsOf, new AsyncMultiProcedure() { + structure = dqs.compileForEachObject(graph, L0.ConsistsOf, new SyncMultiProcedure() { @Override - public void execute(AsyncReadGraph graph, Resource child) { - if(control.scheduleByCluster(graph, child, this)) { + public void execute(ReadGraph graph, Resource child) { + //if(control.scheduleByCluster(graph, child, this)) { dqs.forEachObjectCompiled(graph, child, structure); dqs.forPossibleRelatedValueCompiled(graph, child, names); - } + //} } @Override - public void finished(AsyncReadGraph graph) { + public void finished(ReadGraph graph) { } @Override - public void exception(AsyncReadGraph graph, Throwable throwable) { + public void exception(ReadGraph graph, Throwable throwable) { throwable.printStackTrace(); } @@ -749,12 +753,16 @@ public class HierarchicalNames { } - return new ReadRequest() { + return new AsyncReadRequest() { @Override - public void run(ReadGraph graph) { + public void run(AsyncReadGraph graph) { - new Process(graph, resource); + try { + new Process(graph, resource); + } catch (DatabaseException e) { + e.printStackTrace(); + } } @@ -767,12 +775,12 @@ public class HierarchicalNames { graph.forPossibleRelatedValue(resource, L0.HasName, FastStringBinding.INSTANCE, procedure2); } - public static ReadRequest readAsync2(final Resource resource) { + public static AsyncReadRequest readAsync2(final Resource resource) { - return new ReadRequest() { + return new AsyncReadRequest() { @Override - public void run(ReadGraph graph) { + public void run(AsyncReadGraph graph) { final Layer0 L0 = Layer0.getInstance(graph); @@ -825,21 +833,22 @@ public class HierarchicalNames { public static void readAsyncTypesLoop(final DirectQuerySupport dqs, final Layer0 L0, AsyncReadGraph graph, final Resource resource, final RelationInfo consistsOf, final AsyncMultiProcedure procedure, final RelationInfo name, final Serializer serializer, final AsyncProcedure procedure2) { - dqs.forPossibleType(graph, resource, new AsyncProcedure() { + dqs.forPossibleDirectType(graph, resource, dqs, new SyncContextProcedure() { @Override - public void execute(AsyncReadGraph graph, Resource type) { + public void execute(ReadGraph graph, DirectQuerySupport dqs, Resource type) { // System.err.println("affa"); - graph.asyncRequest(new TypeSetAndString(type), new AsyncProcedure, String>>() { + try { + graph.syncRequest(new TypeSetAndString(type), new SyncProcedure, String>>() { - @Override - public void execute(AsyncReadGraph graph, Pair, String> typeInfo) { - - Set types = typeInfo.first; - if(types.contains(L0.Ontology)) { + @Override + public void execute(ReadGraph graph, Pair, String> typeInfo) { + Set types = typeInfo.first; + if(types.contains(L0.Ontology)) { + // dqs.forPossibleRelatedValue(graph, resource, name, serializer, new AsyncProcedure() { // // @Override @@ -852,25 +861,28 @@ public class HierarchicalNames { // } // // }); + + } else if (types.contains(L0.Library)) { + //dqs.forEachObject(graph, resource, consistsOf, procedure); + } - } else if (types.contains(L0.Library)) { - //dqs.forEachObject(graph, resource, consistsOf, procedure); } - - } - @Override - public void exception(AsyncReadGraph graph, Throwable throwable) { - } - - }); + @Override + public void exception(ReadGraph graph, Throwable throwable) { + } + + }); + } catch (DatabaseException e) { + e.printStackTrace(); + } } @Override - public void exception(AsyncReadGraph graph, Throwable throwable) { + public void exception(ReadGraph graph, Throwable throwable) { } - + }); @@ -895,7 +907,12 @@ public class HierarchicalNames { @Override public void perform(AsyncReadGraph graph, AsyncProcedure procedure) { - dqs.forRelationInfo(graph, L0.ConsistsOf, procedure); + try { + RelationInfo ri = dqs.getRelationInfo(graph, L0.ConsistsOf); + procedure.execute(graph, ri); + } catch (DatabaseException e) { + procedure.exception(graph, e); + } } @Override @@ -913,7 +930,12 @@ public class HierarchicalNames { @Override public void perform(AsyncReadGraph graph, AsyncProcedure procedure) { - dqs.forRelationInfo(graph, L0.HasName, procedure); + try { + RelationInfo ri = dqs.getRelationInfo(graph, L0.HasName); + procedure.execute(graph, ri); + } catch (DatabaseException e) { + procedure.exception(graph, e); + } } @Override