-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.controller.md.sal.dom.broker.impl;
-
-import static java.util.Objects.requireNonNull;
-
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.SettableFuture;
-import com.lmax.disruptor.EventFactory;
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
-import java.util.Collection;
-import org.opendaylight.controller.md.sal.dom.api.DOMNotification;
-import org.opendaylight.controller.md.sal.dom.api.DOMNotificationListener;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * A single notification event in the disruptor ringbuffer. These objects are reused,
- * so they do have mutable state.
- */
-@Deprecated(forRemoval = true)
-final class DOMNotificationRouterEvent {
- private static final Logger LOG = LoggerFactory.getLogger(DOMNotificationRouterEvent.class);
- public static final EventFactory<DOMNotificationRouterEvent> FACTORY = DOMNotificationRouterEvent::new;
-
- private Collection<ListenerRegistration<? extends DOMNotificationListener>> subscribers;
- private DOMNotification notification;
- private SettableFuture<Void> future;
-
- private DOMNotificationRouterEvent() {
- // Hidden on purpose, initialized in initialize()
- }
-
- @SuppressWarnings("checkstyle:hiddenField")
- ListenableFuture<Void> initialize(final DOMNotification notification,
- final Collection<ListenerRegistration<? extends DOMNotificationListener>>
- subscribers) {
- this.notification = requireNonNull(notification);
- this.subscribers = requireNonNull(subscribers);
- this.future = SettableFuture.create();
- return this.future;
- }
-
- void deliverNotification() {
- LOG.trace("Start delivery of notification {}", notification);
- for (ListenerRegistration<? extends DOMNotificationListener> r : subscribers) {
- final DOMNotificationListener listener = r.getInstance();
- LOG.trace("Notifying listener {}", listener);
- listener.onNotification(notification);
- LOG.trace("Listener notification completed");
- }
- LOG.trace("Delivery completed");
- }
-
- @SuppressFBWarnings(value = "NP_NONNULL_PARAM_VIOLATION", justification = "Void is the only allowed value")
- void setFuture() {
- future.set(null);
- notification = null;
- subscribers = null;
- future = null;
- }
-}