mirror of
https://github.com/bisq-network/bisq.git
synced 2025-02-22 06:41:41 +01:00
Delete DaoEventCoordinator (we will handle coordination in
DaoStateSnapshotService instead in next commits) Let DaoStateSnapshotService implement DaoSetupService (impl in next commits)
This commit is contained in:
parent
8e3f95383e
commit
5a8a9e9be8
4 changed files with 17 additions and 77 deletions
|
@ -1,69 +0,0 @@
|
|||
/*
|
||||
* This file is part of Bisq.
|
||||
*
|
||||
* Bisq is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* Bisq is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
|
||||
* License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with Bisq. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package bisq.core.dao;
|
||||
|
||||
import bisq.core.dao.monitoring.DaoStateMonitoringService;
|
||||
import bisq.core.dao.state.DaoStateListener;
|
||||
import bisq.core.dao.state.DaoStateService;
|
||||
import bisq.core.dao.state.DaoStateSnapshotService;
|
||||
import bisq.core.dao.state.model.blockchain.Block;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
public class DaoEventCoordinator implements DaoSetupService, DaoStateListener {
|
||||
private final DaoStateService daoStateService;
|
||||
private final DaoStateSnapshotService daoStateSnapshotService;
|
||||
private final DaoStateMonitoringService daoStateMonitoringService;
|
||||
|
||||
@Inject
|
||||
public DaoEventCoordinator(DaoStateService daoStateService,
|
||||
DaoStateSnapshotService daoStateSnapshotService,
|
||||
DaoStateMonitoringService daoStateMonitoringService) {
|
||||
this.daoStateService = daoStateService;
|
||||
this.daoStateSnapshotService = daoStateSnapshotService;
|
||||
this.daoStateMonitoringService = daoStateMonitoringService;
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
// DaoSetupService
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@Override
|
||||
public void addListeners() {
|
||||
this.daoStateService.addDaoStateListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start() {
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
// DaoStateListener
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// We listen onDaoStateChanged to ensure the dao state has been processed from listener clients after parsing.
|
||||
// We need to listen during batch processing as well to write snapshots during that process.
|
||||
@Override
|
||||
public void onDaoStateChanged(Block block) {
|
||||
// We need to execute first the daoStateMonitoringService
|
||||
daoStateMonitoringService.createHashFromBlock(block);
|
||||
daoStateSnapshotService.maybeCreateSnapshot(block);
|
||||
}
|
||||
}
|
|
@ -102,7 +102,6 @@ public class DaoModule extends AppModule {
|
|||
protected void configure() {
|
||||
bind(DaoSetup.class).in(Singleton.class);
|
||||
bind(DaoFacade.class).in(Singleton.class);
|
||||
bind(DaoEventCoordinator.class).in(Singleton.class);
|
||||
bind(DaoKillSwitch.class).in(Singleton.class);
|
||||
|
||||
// Node, parser
|
||||
|
|
|
@ -39,6 +39,7 @@ import bisq.core.dao.node.BsqNode;
|
|||
import bisq.core.dao.node.BsqNodeProvider;
|
||||
import bisq.core.dao.node.explorer.ExportJsonFilesService;
|
||||
import bisq.core.dao.state.DaoStateService;
|
||||
import bisq.core.dao.state.DaoStateSnapshotService;
|
||||
|
||||
import com.google.inject.Inject;
|
||||
|
||||
|
@ -78,16 +79,11 @@ public class DaoSetup {
|
|||
DaoStateMonitoringService daoStateMonitoringService,
|
||||
ProposalStateMonitoringService proposalStateMonitoringService,
|
||||
BlindVoteStateMonitoringService blindVoteStateMonitoringService,
|
||||
DaoEventCoordinator daoEventCoordinator) {
|
||||
DaoStateSnapshotService daoStateSnapshotService) {
|
||||
|
||||
bsqNode = bsqNodeProvider.getBsqNode();
|
||||
|
||||
// We need to take care of order of execution.
|
||||
|
||||
// For order critical event flow we use the daoEventCoordinator to delegate the calls from anonymous listeners
|
||||
// to concrete clients.
|
||||
daoSetupServices.add(daoEventCoordinator);
|
||||
|
||||
daoSetupServices.add(daoStateService);
|
||||
daoSetupServices.add(cycleService);
|
||||
daoSetupServices.add(ballotListService);
|
||||
|
@ -110,6 +106,7 @@ public class DaoSetup {
|
|||
daoSetupServices.add(daoStateMonitoringService);
|
||||
daoSetupServices.add(proposalStateMonitoringService);
|
||||
daoSetupServices.add(blindVoteStateMonitoringService);
|
||||
daoSetupServices.add(daoStateSnapshotService);
|
||||
|
||||
daoSetupServices.add(bsqNodeProvider.getBsqNode());
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
|
||||
package bisq.core.dao.state;
|
||||
|
||||
import bisq.core.dao.DaoSetupService;
|
||||
import bisq.core.dao.monitoring.DaoStateMonitoringService;
|
||||
import bisq.core.dao.monitoring.model.DaoStateHash;
|
||||
import bisq.core.dao.state.model.DaoState;
|
||||
|
@ -50,7 +51,7 @@ import javax.annotation.Nullable;
|
|||
* SNAPSHOT_GRID old not less than 2 times the SNAPSHOT_GRID old.
|
||||
*/
|
||||
@Slf4j
|
||||
public class DaoStateSnapshotService {
|
||||
public class DaoStateSnapshotService implements DaoSetupService {
|
||||
private static final int SNAPSHOT_GRID = 20;
|
||||
|
||||
private final DaoStateService daoStateService;
|
||||
|
@ -88,6 +89,18 @@ public class DaoStateSnapshotService {
|
|||
this.storageDir = storageDir;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
// DaoSetupService
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@Override
|
||||
public void addListeners() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start() {
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
// API
|
||||
|
|
Loading…
Add table
Reference in a new issue