]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.db.common/src/org/simantics/db/common/service/ServiceActivityUpdaterForWriteTransactions.java
Fixed multiple issues causing dangling references to discarded queries
[simantics/platform.git] / bundles / org.simantics.db.common / src / org / simantics / db / common / service / ServiceActivityUpdaterForWriteTransactions.java
1 package org.simantics.db.common.service;
2
3 import org.simantics.db.Session;
4 import org.simantics.db.common.session.SessionEventListenerAdapter;
5 import org.simantics.db.service.ServiceActivityMonitor;
6 import org.simantics.db.service.SessionEventSupport;
7
8 public class ServiceActivityUpdaterForWriteTransactions
9         extends SessionEventListenerAdapter {
10
11     private final ServiceActivityMonitor serviceActivityMonitor;
12     
13     public ServiceActivityUpdaterForWriteTransactions(
14             ServiceActivityMonitor serviceActivityMonitor) {
15         this.serviceActivityMonitor = serviceActivityMonitor;
16     }
17
18     @Override
19     public void writeTransactionStarted() {
20         serviceActivityMonitor.registerActivity(this);
21     }
22
23     @Override
24     public void writeTransactionFinished() {
25         serviceActivityMonitor.unregisterActivity(this);
26     }
27     
28     public static void register(Session session) {
29         ServiceActivityUpdaterForWriteTransactions updater =
30                 new ServiceActivityUpdaterForWriteTransactions(
31                         session.getService(ServiceActivityMonitor.class));
32         session.getService(SessionEventSupport.class).addListener(updater);
33     }
34
35 }