This will deliver all notifications in one go, leading to faster
flushing.
Change-Id: I7a5023fadbfc67a19348963c15ae332986cd18d8
Signed-off-by: Robert Varga <rovarga@cisco.com>
import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier;
import org.opendaylight.mdsal.dom.spi.AbstractDOMDataTreeChangeListenerRegistration;
import org.opendaylight.yangtools.util.concurrent.QueuedNotificationManager;
import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier;
import org.opendaylight.mdsal.dom.spi.AbstractDOMDataTreeChangeListenerRegistration;
import org.opendaylight.yangtools.util.concurrent.QueuedNotificationManager;
-import org.opendaylight.yangtools.util.concurrent.QueuedNotificationManager.Invoker;
+import org.opendaylight.yangtools.util.concurrent.QueuedNotificationManager.BatchedInvoker;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
private static final Logger LOG = LoggerFactory.getLogger(InMemoryDOMDataTreeShardChangePublisher.class);
private static final Logger LOG = LoggerFactory.getLogger(InMemoryDOMDataTreeShardChangePublisher.class);
- private static final Invoker<AbstractDOMDataTreeChangeListenerRegistration<?>, DataTreeCandidate>
- MANAGER_INVOKER = (listener, notification) -> {
+ private static final BatchedInvoker<AbstractDOMDataTreeChangeListenerRegistration<?>, DataTreeCandidate>
+ MANAGER_INVOKER = (listener, notifications) -> {
final DOMDataTreeChangeListener inst = listener.getInstance();
if (inst != null) {
final DOMDataTreeChangeListener inst = listener.getInstance();
if (inst != null) {
- inst.onDataTreeChanged(ImmutableList.of(notification));
+ inst.onDataTreeChanged(ImmutableList.copyOf(notifications));
final YangInstanceIdentifier rootPath,
final Map<DOMDataTreeIdentifier, ChildShardContext> childShards) {
super(dataTree, rootPath, childShards);
final YangInstanceIdentifier rootPath,
final Map<DOMDataTreeIdentifier, ChildShardContext> childShards) {
super(dataTree, rootPath, childShards);
- notificationManager = new QueuedNotificationManager<>(
+ notificationManager = QueuedNotificationManager.create(
executor, MANAGER_INVOKER, maxQueueSize, "DataTreeChangeListenerQueueMgr");
}
executor, MANAGER_INVOKER, maxQueueSize, "DataTreeChangeListenerQueueMgr");
}