X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fsal%2Fapi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Ftopology%2FIListenTopoUpdates.java;fp=opendaylight%2Fsal%2Fapi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Ftopology%2FIListenTopoUpdates.java;h=8a640f1e9bec8c2a2c6b34d1d358e11fcf0054ad;hb=42210c03b0a4c54706320ba9f55794c0abd4d201;hp=0000000000000000000000000000000000000000;hpb=7576b38152b393793b1c9ec3df0ff86685f95236;p=controller.git diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/topology/IListenTopoUpdates.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/topology/IListenTopoUpdates.java new file mode 100644 index 0000000000..8a640f1e9b --- /dev/null +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/topology/IListenTopoUpdates.java @@ -0,0 +1,58 @@ + +/* + * Copyright (c) 2013 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.sal.topology; + +import java.util.Set; + +import org.opendaylight.controller.sal.core.Edge; +import org.opendaylight.controller.sal.core.Property; +import org.opendaylight.controller.sal.core.UpdateType; + +/** + * @file IListenTopoUpdates.java + * + * @brief Topology notifications provided by SAL toward the application + * + * For example an application that wants to keep up to date with the + * updates coming from SAL it will register in the OSGi service + * registry this interface (on a per-container base) and SAL will call it + * providing the update + */ + +/** + * Topology notifications provided by SAL toward the application + * + */ +public interface IListenTopoUpdates { + /** + * Called to update on Edge in the topology graph + * + * @param e Edge being updated + * @param type Type of update + * @param props Properties of the edge, like BandWidth and/or Latency etc. + */ + public void edgeUpdate(Edge e, UpdateType type, Set props); + + /** + * Called when an Edge utilization is above the safety threshold + * configured on the controller + * + * @param edge The edge which bandwidth usage is above the safety level + */ + public void edgeOverUtilized(Edge edge); + + /** + * Called when the Edge utilization is back to normal, below the safety + * threshold level configured on the controller + * + * @param edge + */ + public void edgeUtilBackToNormal(Edge edge); +}