Merge "Added transactions statistics for BI Broker."
[controller.git] / opendaylight / md-sal / sal-dom-broker / src / main / java / org / opendaylight / controller / sal / dom / broker / DataBrokerImpl.java
1 package org.opendaylight.controller.sal.dom.broker;
2
3 import java.util.concurrent.atomic.AtomicLong;
4
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;
15
16 public class DataBrokerImpl extends AbstractDataBroker<InstanceIdentifier, CompositeNode, DataChangeListener> implements
17         DataProviderService, AutoCloseable {
18
19     private AtomicLong nextTransaction = new AtomicLong();
20     private final AtomicLong createdTransactionsCount = new AtomicLong();
21     
22     public DataBrokerImpl() {
23         setDataReadRouter(new DataReaderRouter());
24     }
25     
26     public AtomicLong getCreatedTransactionsCount() {
27         return createdTransactionsCount;
28     }
29     
30     @Override
31     public DataTransactionImpl beginTransaction() {
32         String transactionId = "DOM-" + nextTransaction.getAndIncrement();
33         createdTransactionsCount.getAndIncrement();
34         return new DataTransactionImpl(transactionId,this);
35     }
36
37     @Override
38     public Registration<DataReader<InstanceIdentifier, CompositeNode>> registerConfigurationReader(
39             InstanceIdentifier path, DataReader<InstanceIdentifier, CompositeNode> reader) {
40         return getDataReadRouter().registerConfigurationReader(path, reader);
41     }
42
43     @Override
44     public Registration<DataReader<InstanceIdentifier, CompositeNode>> registerOperationalReader(
45             InstanceIdentifier path, DataReader<InstanceIdentifier, CompositeNode> reader) {
46         return getDataReadRouter().registerOperationalReader(path, reader);
47     }
48
49     @Deprecated
50     @Override
51     public void addValidator(DataStoreIdentifier store, DataValidator validator) {
52         throw new UnsupportedOperationException("Deprecated");
53
54     }
55
56     @Deprecated
57     @Override
58     public void removeValidator(DataStoreIdentifier store, DataValidator validator) {
59         throw new UnsupportedOperationException("Deprecated");
60     }
61
62     @Deprecated
63     @Override
64     public void addRefresher(DataStoreIdentifier store, DataRefresher refresher) {
65         throw new UnsupportedOperationException("Deprecated");
66     }
67
68     @Deprecated
69     @Override
70     public void removeRefresher(DataStoreIdentifier store, DataRefresher refresher) {
71         throw new UnsupportedOperationException("Deprecated");
72     }
73
74     @Override
75     public void close() throws Exception {
76         
77     }
78
79 }