1 package org.opendaylight.controller.sal.dom.broker;
3 import java.util.concurrent.atomic.AtomicLong;
5 import org.opendaylight.controller.md.sal.common.api.data.DataReader;
6 import org.opendaylight.controller.md.sal.common.impl.service.AbstractDataBroker;
7 import org.opendaylight.controller.sal.common.DataStoreIdentifier;
8 import org.opendaylight.controller.sal.core.api.data.DataChangeListener;
9 import org.opendaylight.controller.sal.core.api.data.DataProviderService;
10 import org.opendaylight.controller.sal.core.api.data.DataValidator;
11 import org.opendaylight.controller.sal.dom.broker.impl.DataReaderRouter;
12 import org.opendaylight.yangtools.concepts.Registration;
13 import org.opendaylight.yangtools.yang.data.api.CompositeNode;
14 import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier;
16 import com.google.common.util.concurrent.MoreExecutors;
18 public class DataBrokerImpl extends AbstractDataBroker<InstanceIdentifier, CompositeNode, DataChangeListener> implements
19 DataProviderService, AutoCloseable {
21 private AtomicLong nextTransaction = new AtomicLong();
22 private final AtomicLong createdTransactionsCount = new AtomicLong();
24 public DataBrokerImpl() {
25 setDataReadRouter(new DataReaderRouter());
26 setExecutor(MoreExecutors.sameThreadExecutor());
29 public AtomicLong getCreatedTransactionsCount() {
30 return createdTransactionsCount;
34 public DataTransactionImpl beginTransaction() {
35 String transactionId = "DOM-" + nextTransaction.getAndIncrement();
36 createdTransactionsCount.getAndIncrement();
37 return new DataTransactionImpl(transactionId,this);
41 public Registration<DataReader<InstanceIdentifier, CompositeNode>> registerConfigurationReader(
42 InstanceIdentifier path, DataReader<InstanceIdentifier, CompositeNode> reader) {
43 return getDataReadRouter().registerConfigurationReader(path, reader);
47 public Registration<DataReader<InstanceIdentifier, CompositeNode>> registerOperationalReader(
48 InstanceIdentifier path, DataReader<InstanceIdentifier, CompositeNode> reader) {
49 return getDataReadRouter().registerOperationalReader(path, reader);
54 public void addValidator(DataStoreIdentifier store, DataValidator validator) {
55 throw new UnsupportedOperationException("Deprecated");
61 public void removeValidator(DataStoreIdentifier store, DataValidator validator) {
62 throw new UnsupportedOperationException("Deprecated");
67 public void addRefresher(DataStoreIdentifier store, DataRefresher refresher) {
68 throw new UnsupportedOperationException("Deprecated");
73 public void removeRefresher(DataStoreIdentifier store, DataRefresher refresher) {
74 throw new UnsupportedOperationException("Deprecated");
78 public void close() throws Exception {