import java.util.concurrent.Future;
+import org.opendaylight.controller.md.sal.common.api.data.DataChangePublisher;
+import org.opendaylight.controller.md.sal.common.api.data.DataModificationTransactionFactory;
+import org.opendaylight.controller.md.sal.common.api.data.DataReader;
import org.opendaylight.controller.sal.binding.api.BindingAwareService;
import org.opendaylight.controller.sal.common.DataStoreIdentifier;
+import org.opendaylight.yangtools.concepts.ListenerRegistration;
+import org.opendaylight.yangtools.yang.binding.DataObject;
import org.opendaylight.yangtools.yang.binding.DataRoot;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.common.RpcResult;
/**
*
* @see DataProviderService
*/
-public interface DataBrokerService extends BindingAwareService {
+public interface DataBrokerService extends //
+ BindingAwareService, //
+ DataModificationTransactionFactory<InstanceIdentifier<? extends DataObject>, DataObject>, //
+ DataReader<InstanceIdentifier<? extends DataObject>, DataObject>, //
+ DataChangePublisher<InstanceIdentifier<? extends DataObject>, DataObject, DataChangeListener> {
/**
* Returns a data from specified Data Store.
* Identifier of the store, from which will be data retrieved
* @return data visible to the consumer
*/
+ @Deprecated
<T extends DataRoot> T getData(DataStoreIdentifier store, Class<T> rootType);
/**
* Data tree filter similar to the NETCONF filter
* @return
*/
+ @Deprecated
<T extends DataRoot> T getData(DataStoreIdentifier store, T filter);
/**
* Identifier of the store, from which will be data retrieved
* @return
*/
+ @Deprecated
<T extends DataRoot> T getCandidateData(DataStoreIdentifier store, Class<T> rootType);
/**
* A filter data root
* @return
*/
+ @Deprecated
<T extends DataRoot> T getCandidateData(DataStoreIdentifier store, T filter);
/**
* @return Result object containing the modified data tree if the operation
* was successful, otherwise list of the encountered errors.
*/
+ @Deprecated
RpcResult<DataRoot> editCandidateData(DataStoreIdentifier store, DataRoot changeSet);
/**
* @return Result of the commit, containing success information or list of
* encountered errors, if commit was not successful.
*/
+ @Deprecated
Future<RpcResult<Void>> commit(DataStoreIdentifier store);
+
+ @Deprecated
+ DataObject getData(InstanceIdentifier<? extends DataObject> data);
+
+ @Deprecated
+ DataObject getConfigurationData(InstanceIdentifier<?> data);
+ /**
+ * Creates a data modification transaction.
+ *
+ * @return new blank data modification transaction.
+ */
+ DataModificationTransaction beginTransaction();
+
+ @Deprecated
+ public void registerChangeListener(InstanceIdentifier<? extends DataObject> path, DataChangeListener changeListener);
+
+ @Deprecated
+ public void unregisterChangeListener(InstanceIdentifier<? extends DataObject> path, DataChangeListener changeListener);
+
+ /**
+ * Reads data subtree from configurational store.
+ * (Store which is populated by consumer, which is usually used to
+ * inject state into providers. E.g. Flow configuration)-
+ *
+ */
+ @Override
+ public DataObject readConfigurationData(InstanceIdentifier<? extends DataObject> path);
+
+ /**
+ * Reads data subtree from operational store.
+ * (Store which is populated by providers, which is usually used to
+ * capture state of providers. E.g. Topology)
+ *
+ */
+ @Override
+ public DataObject readOperationalData(InstanceIdentifier<? extends DataObject> path);
+
+ /**
+ * Register a data change listener for particular subtree.
+ *
+ * Callback is invoked each time data in subtree changes.
+ *
+ */
+ @Override
+ public ListenerRegistration<DataChangeListener> registerDataChangeListener(
+ InstanceIdentifier<? extends DataObject> path, DataChangeListener listener);
}