/* * 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 */ /** * @file IContainerListener.java * * @brief Set of methods needed to listen to changes in the Container * configuration * * Set of methods needed to listen to changes in the Container * configuration * * */ package org.opendaylight.controller.sal.core; /** * * Interface used to retrieve the status of a given Container */ public interface IContainerListener { /** * Called to notify a change in the tag assigned to a switch * * @param containerName container for which the update has been raised * @param n Node of the tag under notification * @param oldTag previous version of the tag, this differ from the * newTag only if the UpdateType is a modify * @param newTag new value for the tag, different from oldTag only * in case of modify operation * @param t type of update */ public void tagUpdated(String containerName, Node n, short oldTag, short newTag, UpdateType t); /** * Notification raised when the container flow layout changes * * @param containerName container for which the update has been raised * @param previousFlow previous value of the container flow under * update, differs from the currentFlow only and only if it's an * update operation * @param currentFlow current version of the container flow differs from * the previousFlow only in case of update * @param t type of update */ public void containerFlowUpdated(String containerName, ContainerFlow previousFlow, ContainerFlow currentFlow, UpdateType t); /** * Notification raised when a NodeConnector is added or removed in * the container. * * @param containerName container for which the update has been raised * @param p NodeConnector being updated * @param t type of modification, but among the types the modify * operation is not expected to be raised because the * nodeConnectors are anyway immutable so this is only used to * add/delete */ public void nodeConnectorUpdated(String containerName, NodeConnector p, UpdateType t); /** * Notification raised when the container mode has changed * This notification is needed for some bundle in the default container * to cleanup some HW state when switching from non-slicing to * slicing case and vice-versa * * @param t ADDED when first container is created, REMOVED when last container is removed */ public void containerModeUpdated(UpdateType t); }