Class DataTreeEventCallbackRegistrarImpl
- java.lang.Object
-
- org.opendaylight.genius.datastoreutils.listeners.internal.DataTreeEventCallbackRegistrarImpl
-
- All Implemented Interfaces:
DataTreeEventCallbackRegistrar
@Beta @Singleton public class DataTreeEventCallbackRegistrarImpl extends java.lang.Object implements DataTreeEventCallbackRegistrar
Implementation of DataTreeEventCallbackRegistrar.- Author:
- Josh original idea and design feedback, Michael Vorburger.ch API design and first implementation, Tom Pantelis review and feedback on concurrency issue in implementation
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.opendaylight.genius.datastoreutils.listeners.DataTreeEventCallbackRegistrar
DataTreeEventCallbackRegistrar.NextAction
-
-
Constructor Summary
Constructors Constructor Description DataTreeEventCallbackRegistrarImpl(org.opendaylight.controller.md.sal.binding.api.DataBroker dataBroker)
DataTreeEventCallbackRegistrarImpl(org.opendaylight.controller.md.sal.binding.api.DataBroker dataBroker, java.util.concurrent.ScheduledExecutorService scheduledExecutorService)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T extends org.opendaylight.yangtools.yang.binding.DataObject>
voidonAdd(org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType store, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> path, java.util.function.Function<T,DataTreeEventCallbackRegistrar.NextAction> callback)
<T extends org.opendaylight.yangtools.yang.binding.DataObject>
voidonAdd(org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType store, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> path, java.util.function.Function<T,DataTreeEventCallbackRegistrar.NextAction> callback, java.time.Duration timeoutDuration, java.util.function.Consumer<org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier<T>> timedOutCallback)
<T extends org.opendaylight.yangtools.yang.binding.DataObject>
voidonAddOrUpdate(org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType store, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> path, java.util.function.BiFunction<@Nullable T,T,DataTreeEventCallbackRegistrar.NextAction> callback, java.time.Duration timeoutDuration, java.util.function.Consumer<org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier<T>> timedOutCallback)
<T extends org.opendaylight.yangtools.yang.binding.DataObject>
voidonAddOrUpdate(org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType store, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> path, java.util.function.BiFunction<T,T,DataTreeEventCallbackRegistrar.NextAction> callback)
Call back when expected instance was added or updated, with NextAction support.<T extends org.opendaylight.yangtools.yang.binding.DataObject>
voidonRemove(org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType store, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> path, java.util.function.Function<T,DataTreeEventCallbackRegistrar.NextAction> callback)
<T extends org.opendaylight.yangtools.yang.binding.DataObject>
voidonRemove(org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType store, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> path, java.util.function.Function<T,DataTreeEventCallbackRegistrar.NextAction> callback, java.time.Duration timeoutDuration, java.util.function.Consumer<org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier<T>> timedOutCallback)
<T extends org.opendaylight.yangtools.yang.binding.DataObject>
voidonUpdate(org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType store, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> path, java.util.function.BiFunction<T,T,DataTreeEventCallbackRegistrar.NextAction> callback)
<T extends org.opendaylight.yangtools.yang.binding.DataObject>
voidonUpdate(org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType store, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> path, java.util.function.BiFunction<T,T,DataTreeEventCallbackRegistrar.NextAction> callback, java.time.Duration timeoutDuration, java.util.function.Consumer<org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier<T>> timedOutCallback)
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.opendaylight.genius.datastoreutils.listeners.DataTreeEventCallbackRegistrar
onAdd, onAdd, onAddOrUpdate, onAddOrUpdate, onRemove, onRemove, onUpdate, onUpdate
-
-
-
-
Constructor Detail
-
DataTreeEventCallbackRegistrarImpl
@Inject public DataTreeEventCallbackRegistrarImpl(org.opendaylight.controller.md.sal.binding.api.DataBroker dataBroker)
-
DataTreeEventCallbackRegistrarImpl
public DataTreeEventCallbackRegistrarImpl(org.opendaylight.controller.md.sal.binding.api.DataBroker dataBroker, java.util.concurrent.ScheduledExecutorService scheduledExecutorService)
-
-
Method Detail
-
onUpdate
public <T extends org.opendaylight.yangtools.yang.binding.DataObject> void onUpdate(org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType store, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> path, java.util.function.BiFunction<T,T,DataTreeEventCallbackRegistrar.NextAction> callback)
- Specified by:
onUpdate
in interfaceDataTreeEventCallbackRegistrar
-
onUpdate
public <T extends org.opendaylight.yangtools.yang.binding.DataObject> void onUpdate(org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType store, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> path, java.util.function.BiFunction<T,T,DataTreeEventCallbackRegistrar.NextAction> callback, java.time.Duration timeoutDuration, java.util.function.Consumer<org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier<T>> timedOutCallback)
- Specified by:
onUpdate
in interfaceDataTreeEventCallbackRegistrar
-
onAdd
public <T extends org.opendaylight.yangtools.yang.binding.DataObject> void onAdd(org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType store, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> path, java.util.function.Function<T,DataTreeEventCallbackRegistrar.NextAction> callback)
- Specified by:
onAdd
in interfaceDataTreeEventCallbackRegistrar
-
onAdd
public <T extends org.opendaylight.yangtools.yang.binding.DataObject> void onAdd(org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType store, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> path, java.util.function.Function<T,DataTreeEventCallbackRegistrar.NextAction> callback, java.time.Duration timeoutDuration, java.util.function.Consumer<org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier<T>> timedOutCallback)
- Specified by:
onAdd
in interfaceDataTreeEventCallbackRegistrar
-
onAddOrUpdate
public <T extends org.opendaylight.yangtools.yang.binding.DataObject> void onAddOrUpdate(org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType store, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> path, java.util.function.BiFunction<T,T,DataTreeEventCallbackRegistrar.NextAction> callback)
Description copied from interface:DataTreeEventCallbackRegistrar
Call back when expected instance was added or updated, with NextAction support.- Specified by:
onAddOrUpdate
in interfaceDataTreeEventCallbackRegistrar
- Parameters:
store
- the expected data storepath
- the path to watch for changes oncallback
- the callback asBiFunction
, where the first argument is the data before the update or null in case of an add, the second argument is the data after the update (or add; never null), and the returned value determines whether to keep listening for changes or not anymore.
-
onAddOrUpdate
public <T extends org.opendaylight.yangtools.yang.binding.DataObject> void onAddOrUpdate(org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType store, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> path, java.util.function.BiFunction<@Nullable T,T,DataTreeEventCallbackRegistrar.NextAction> callback, java.time.Duration timeoutDuration, java.util.function.Consumer<org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier<T>> timedOutCallback)
- Specified by:
onAddOrUpdate
in interfaceDataTreeEventCallbackRegistrar
-
onRemove
public <T extends org.opendaylight.yangtools.yang.binding.DataObject> void onRemove(org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType store, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> path, java.util.function.Function<T,DataTreeEventCallbackRegistrar.NextAction> callback)
- Specified by:
onRemove
in interfaceDataTreeEventCallbackRegistrar
-
onRemove
public <T extends org.opendaylight.yangtools.yang.binding.DataObject> void onRemove(org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType store, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> path, java.util.function.Function<T,DataTreeEventCallbackRegistrar.NextAction> callback, java.time.Duration timeoutDuration, java.util.function.Consumer<org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier<T>> timedOutCallback)
- Specified by:
onRemove
in interfaceDataTreeEventCallbackRegistrar
-
-