2 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.controller.md.sal.common.api.data;
10 import java.util.EventListener;
12 import org.opendaylight.yangtools.concepts.Path;
15 * Listener of data change events on particular subtree.
18 * User-supplied implementations of this listener interface MUST register via
19 * {@link AsyncDataBroker#registerDataChangeListener(LogicalDatastoreType, Path, AsyncDataChangeListener, AsyncDataBroker.DataChangeScope)}
20 * in order to start receiving data change events, which capture state changes
24 * <b>Implementation Note:</b> This interface is intended to be implemented
28 * Type of path (subtree identifier), which represents location in
31 * Type of data (payload), which represents data payload
33 public interface AsyncDataChangeListener<P extends Path<P>, D> extends EventListener {
36 * Invoked when there is data change for the particular path, which was used to
37 * register this listener.
39 * This method may be also invoked during registration of the listener if
40 * there is any preexisting data in the conceptual data tree for supplied path.
41 * This initial event will contain all preexisting data as created.
44 * <b>Note</b> that this method may be invoked from a shared thread pool, so
45 * implementations SHOULD NOT perform CPU-intensive operations and they
46 * definitely MUST NOT invoke any potentially blocking operations.
49 * Data Change Event being delivered.
51 void onDataChanged(AsyncDataChangeEvent<P, D> change);