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;
*
* @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);
/**
@Deprecated
Future<RpcResult<Void>> commit(DataStoreIdentifier store);
-
- DataObject getData(InstanceIdentifier data);
-
- DataObject getConfigurationData(InstanceIdentifier data);
+ @Deprecated
+ DataObject getData(InstanceIdentifier<? extends DataObject> data);
-
+ @Deprecated
+ DataObject getConfigurationData(InstanceIdentifier<?> data);
/**
* Creates a data modification transaction.
*
* @return new blank data modification transaction.
*/
- DataModification beginTransaction();
+ DataModificationTransaction beginTransaction();
- public void registerChangeListener(InstanceIdentifier path, DataChangeListener changeListener);
-
- public void unregisterChangeListener(InstanceIdentifier path, DataChangeListener changeListener);
+ @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);
}